
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@linux.vnet.ibm.com Ehrhardt@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