[Libvir] big-endian support for libvirt - introduce GUEST_HANDLE infrastructure ?

Christian Ehrhardt ehrhardt at linux.vnet.ibm.com
Tue Jul 10 12:02:19 UTC 2007


>   Really ? I did a quick scan in xen_internal.c , that's the only place where
> the problem might be raised, and found only 3 structure where the problem
> was likely to occur: xen_v2s3_getdomaininfolistop, xen_v2d5_cpumap, and
> xen_v2_setschedinfo, the two first ones clearly the last one is less clear.
> Detecting big-endian vs. little can easilly be done in configure or inherited
> from a system include and a couple of
>
>   
Thats right - after looking around more in detail I also see not more 
than the listed places at the moment.
I did not expect that it is only such a small subset, but it is good 
that way in reference to the current issue ;-)

> struct xen_v2d5_cpumap {
> #ifdef LITTLE_ENDIAN
>     union {
>         uint8_t    *v;
>         uint64_t   pad ALIGN_64;
>     } bitmap;
> #else
>     struct {
>         uint8_t    *pad;
>         uint8_t    *v;
>     } bitmap;
> #endif
>     uint32_t    nr_cpus;
> };
>
>   Might be easier to understand than the GUEST_HANDLE complex macros.
>
>   
[...]
>   How many places in libvirt are really affected ? I count 3, we use a 
> very small subset of the hypercalls, but I may be wrong. If there is really
> more places then maybe a macro based mechanism is better maintainance wise
> but in any case it would have to be rewritten from scratch to avoid nervosity
> from our Xensource friends.
>   
You are right, for the moment it is really sufficient to fix 
xen_v2s3_getdomaininfolistop and xen_v2d5_cpumap.
I'll do something that way dependent on configure&ifdef and send a patch 
(low prio since we have a workaround in the kernel)
> Daniel
>   
BTW here is a short status which libvirt functions are working on xenppc 
as seen on my first sniff test:
working
     *monitor load
     *remove network interface
     *remove hard disk
     *access serial console
     *define existing xen domains from/to xml file
     *run/shutdown domains
partially working
     *add network device (work but cause a libvirt trace&hang afterwards)
     *add hard disk (work but cause a libvirt trace&hang afterwards)
not working
     *sometimes xend hangs and only /etc/init.d/xend restart helps, 
there are related tracebacks in xend.log
     *change number of cpu's
     *create virtual network

-- 

Grüsse / regards, 
Christian Ehrhardt

IBM Linux Technology Center, Open Virtualization
+49 7031/16-3385
Ehrhardt at linux.vnet.ibm.com
Ehrhardt at de.ibm.com

IBM Deutschland Entwicklung GmbH
Vorsitzender des Aufsichtsrats: Johann Weihen 
Geschäftsführung: Herbert Kircher 
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294




More information about the libvir-list mailing list