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

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




  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


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