[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: 32/64-bit hypercall interface

"Ian Pratt" <m+Ian.Pratt@xxxxxxxxxxxx> writes:
> Just changing the tools API to all u64 seems pointless, as if you're
> using a 64 bit hypervisor it seems perfectly reasonable to insist on
> using 64 bit tools -- every other system binary on your 64 bit
> redhat/suse install is going to be specially compiled for 64 bit, so why
> not yout hypervisor tools! 

Actually a 64bit kernel works just fine with a full 32bit userland
(with only a few minor exception of some tools which were too broken
to be emulated - most notable one is iptables) People using
distributions where using true 64bit is unusually hard or broken (like on a
unnamed particular big community distribution) tend to use this setup.

I use it also regularly for testing.

On the other hand if the people need some tools as 64bit anyways
then they can install 64bit hypervisor tools too. If you do that
you should make it easy to install under a different prefix though.

> If we're going to make a change at all, switching to using ureg (or
> similar) rather than 'long' is the thing to do to. This makes the job of
> implementing some future compat layer very slightly easier, and helps
> the Power guys do their funky 64-bit-tools-as-a-32-bit-binary thing. [*]

There are some traps. e.g. i386 has a different alignment for u64 (4
bytes) rather than the natural 8 bytes used on 64bits which causes
many problems (like the iptables issue mentioned above). If you use
this way use a new type which is long long
__attribute__((aligned(8))), not just long long.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.