[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