[libvirt] [PATCH] Fix legacy xen driver when building without modules

Jim Fehlig jfehlig at suse.com
Wed Aug 29 21:59:17 UTC 2012


Jim Fehlig wrote:
> When building without driver modules, I've noticed that the legacy xen
> driver no longer works.  The attached patch fixes it, but I'm not sure
> if this is the correct fix.

Sorry, I should have elaborated here.  I don't think this is the correct
fix because now libvirt.so has a dependency on xen libs, e.g.
libxenstore, which (I think) defeats the purpose of modularizing the build.

>   I need to do some more testing with and
> without modules, but wanted to raise this on the list for
> comments/suggestions.
>   

When building libvirt without driver modules, I'm not able to connect to
the legacy xen driver

# virsh version
Compiled against library: libvirt 0.10.0
Using library: libvirt 0.10.0
Using API: QEMU 0.10.0
error: failed to get the hypervisor version
error: internal error Cannot find suitable emulator for x86_64

# virsh -c xen:/// version
error: internal error libxenlight state driver is not active
error: failed to connect to the hypervisor

Which is correct, since the libxl driver won't load if xend is active. 
But why is the legacy xen driver not tried?  I can connect to the libxl
one when xend is not active

# virsh version
Compiled against library: libvirt 0.10.0
Using library: libvirt 0.10.0
Using API: xenlight 0.10.0
Running hypervisor: xenlight 4.1.0

When building with driver modules and trying to connect to the legacy
xen driver

# virsh version
Compiled against library: libvirt 0.10.0
Using library: libvirt 0.10.0
Using API: QEMU 0.10.0
error: failed to get the hypervisor version
error: internal error Cannot find suitable emulator for x86_64

# virsh -c xen:/// version
Compiled against library: libvirt 0.10.0
Using library: libvirt 0.10.0
Using API: Xen 0.10.0
Running hypervisor: Xen 4.1.0

So this is a change in behavior, where the connection must now be
explicitly specified.  Same goes for connecting to the libxl driver when
built with driver modules

# virsh version
Compiled against library: libvirt 0.10.0
Using library: libvirt 0.10.0
Using API: QEMU 0.10.0
error: failed to get the hypervisor version
error: internal error Cannot find suitable emulator for x86_64

# virsh -c xen:/// version
Compiled against library: libvirt 0.10.0
Using library: libvirt 0.10.0
Using API: xenlight 0.10.0
Running hypervisor: xenlight 4.1.0

Suggestions on how to go about fixing all of this would be much
appreciated :).

Thanks,
Jim




More information about the libvir-list mailing list