On Thu, Apr 12, 2007 at 10:02:45AM +0100, Richard W.M. Jones wrote:
A Man Without A Country Daniel P. Berrange wrote:
>I've been doing some testing with current xen-unstable (ie what will very
>shortly be 3.0.5) and came across a whole bunch of things which needed
>fixing - some expected, others not expected. The attached patch addresses
>the following issues:
As a general question about policy, are we going to support every rev of
the HV interface? If Xen change the interface again before 3.0.5 will
we support this "pre-3.0.5" and the final interface?
Yeah we aim to support pretty much all HV versions in 3.0.x It isn't actually
as bad as it sounds. In v2 of the hypercall ABI, there have been 3 revisions
of the sysctl ABI, and 5 of the domctl ABI. For the limited set of hypercalls
that libvirt makes though, there were no changes in domctl 1->4, or in the
sysctl 1->2. So we only need 2 code branches to deal with those 5 revisions
of the ABI.
> - Many of the hypercalls have their structs changed so that int64_t
> or 'foo *' members are always 64-bit aligned even on 32-bit platforms.
> This is part of the work to allow 32-bit Dom0/DomU to work on 64-bit
> hypervisor.
>
> For the int64_t types I had to annotate with
> __attribute__((aligned(8))).
> This did not work for pointer data types, so I for those I had to do
> a more complex hack with
>
> union {
> foo *v;
> int64_t pad __attribute__((aligned(8)))
> }
What is the problem here? I did some tests and it seems to work just fine:
I'm not sure - all I know is that it didn't work - all I got back from the
hypervisor was complete garbage. I will try it again, but I'm not hopeful
and its near impossible to debug.
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules:
http://search.cpan.org/~danberr/ -=|
|=- Projects:
http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|