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

Re: [Xen-devel] libxl drivers for libvirt?



George Dunlap wrote:
> Hey Jim,
>
> I was wondering if you or someone on your team could give me an idea
> what the status of libxl support is in libvirt, particularly wrt
> various releases?
>
> I'm asking because I'm going to UDS next week to talk about the 13.04
> release, and it would be good to get Xen 4.2 in; but that in part
> depends on whether there will be libvirt support for 4.2 in whatever
> version of libvirt they ship as well.  I know Dario has been facing
> the same kind of questions for Fedora 18.
>
> It appears that libvirt 0.10.2 has limited support for the 4.1 libxl
> driver; but:
> * This doesn't include some core features, like live migration

Right.  Chunyan has some patches to implement migration against 4.1
libxl, but IIRC she is still investigating a bug.  Chunyan, can you give
George an update on your libvirt libxl migration patches?

> * It won't compile against 4.2's libxl

Right again.  Ondrej has been looking into this.  Ondrej, do you have
any status to report?  Any questions for the Xen folks wrt 4.1 vs 4.2 libxl?

> Is that right?
>
> So I guess it would be nice to know:
> * What kind of Xen support is available in the most recent release
> (0.10.2, I believe), both xend and libxl

I've provided a table below that lists all of the libvirt hypervisor
driver functions and their implementation status for qemu/kvm, legacy
xen, and libxl drivers.

> * What kind of Xen support for libxl is in the libvirt development
> branch, and do you have an idea when full support for 4.2 (at least,
> including migration, suspend/resume, &c) might be available?

Nothing has changed in git master over what is available in 0.10.2, but
we are now starting to pick up this work.  Our priorities are to first
get the libxl driver compiling against 4.2 and all of the existing
functionality that works with 4.1 working with 4.2, followed by closing
the feature gap with the legacy xen driver, and finally closing the
feature gap with the qemu driver where it makes sense.  This is
obviously quite a bit of work and any help would be appreciated :).

BTW, we don't have any motivation to add features to the 4.1 version of
the libvirt libxl driver.  Bamvor recently sent a patchset to add
finer-grained locking to the libxl driver, but this code is independent
of underlying libxl version IMO

https://www.redhat.com/archives/libvir-list/2012-October/msg00503.html


> * Whether it would be easy for distros to backport 4.2 libxl support
> to whatever their release is?

Until we have patches to make the driver work with 4.2 libxl, I can't
speculate on the effort to backport to previous libvirt releases.

Regards,
Jim

> That would help us better advise distros whether to:
> * Stick with Xen 4.1 for the next release
> * Go with Xen 4.2 but suggest continuing to use xend if libvirt
> support is wanted
> * Go with Xen 4.2 and backport patches to make libvirt work with libxl
> * Go with Xen 4.2 and expect that libxl support will show up without
> too much effort
>
> Obviously change is the only constant, so you can't predict with
> perfect certainty; but if we have an idea what's most likely, we can
> plan on that and then adjust based on what actually happens.
>
> Thanks!
>  -George
>

libvirt hypervisor driver funcs         qemu  xend  libxl
-----------------------------------------------------------------
virDrvOpen                             |  x  |  x  |  x  |
virDrvClose                            |  x  |  x  |  x  |
virDrvDrvSupportsFeature               |  x  |  x  |     |
virDrvGetType                          |  x  |  x  |  x  |
virDrvGetVersion                       |  x  |  x  |  x  |
virDrvGetLibVersion                    |  x  |  x  |  x  |
virDrvGetHostname                      |  x  |  x  |  x  |
virDrvGetSysinfo                       |  x  |     |     |
virDrvGetMaxVcpus                      |  x  |  x  |  x  |
virDrvNodeGetInfo                      |  x  |  x  |  x  |
virDrvGetCapabilities                  |  x  |  x  |  x  |
virDrvListDomains                      |  x  |  x  |  x  |
virDrvNumOfDomains                     |  x  |  x  |  x  |
virDrvListAllDomains                   |  x  |     |  x  |
virDrvDomainCreateXML                  |  x  |  x  |  x  |
virDrvDomainLookupByID                 |  x  |  x  |  x  |
virDrvDomainLookupByUUID               |  x  |  x  |  x  |
virDrvDomainLookupByName               |  x  |  x  |  x  |
virDrvDomainSuspend                    |  x  |  x  |  x  |
virDrvDomainResume                     |  x  |  x  |  x  |
virDrvDomainPMSuspendForDuration       |  x  |     |     |
virDrvDomainPMWakeup                   |  x  |     |     |
virDrvDomainShutdown                   |  x  |  x  |  x  |
virDrvDomainShutdownFlags              |  x  |  x  |  x  |
virDrvDomainReboot                     |  x  |  x  |  x  |
virDrvDomainReset                      |  x  |     |     |
virDrvDomainDestroy                    |  x  |  x  |  x  |
virDrvDomainDestroyFlags               |  x  |  x  |  x  |
virDrvDomainGetOSType                  |  x  |  x  |  x  |
virDrvDomainGetHostname                |     |     |     |
virDrvDomainGetMaxMemory               |  x  |  x  |  x  |
virDrvDomainSetMaxMemory               |  x  |  x  |  x  |
virDrvDomainSetMemory                  |  x  |  x  |  x  |
virDrvDomainSetMemoryFlags             |  x  |     |  x  |
virDrvDomainSetMemoryParameters        |  x  |     |     |
virDrvDomainGetMemoryParameters        |  x  |     |     |
virDrvDomainSetNumaParameters          |  x  |     |     |
virDrvDomainGetNumaParameters          |  x  |     |     |
virDrvDomainSetBlkioParameters         |  x  |     |     |
virDrvDomainGetBlkioParameters         |  x  |     |     |
virDrvDomainGetInfo                    |  x  |  x  |  x  |
virDrvDomainGetState                   |  x  |  x  |  x  |
virDrvDomainGetControlInfo             |  x  |     |     |
virDrvDomainSave                       |  x  |  x  |  x  |
virDrvDomainSaveFlags                  |  x  |  x  |  x  |
virDrvDomainRestore                    |  x  |  x  |  x  |
virDrvDomainRestoreFlags               |  x  |  x  |  x  |
virDrvDomainSaveImageGetXMLDesc        |  x  |     |     |
virDrvDomainSaveImageDefineXML         |  x  |     |     |
virDrvDomainCoreDump                   |  x  |  x  |  x  |
virDrvDomainScreenshot                 |  x  |     |     |
virDrvDomainSetVcpus                   |  x  |  x  |  x  |
virDrvDomainSetVcpusFlags              |  x  |  x  |  x  |
virDrvDomainGetVcpusFlags              |  x  |  x  |  x  |
virDrvDomainPinVcpu                    |  x  |  x  |  x  |
virDrvDomainPinVcpuFlags               |  x  |     |     |
virDrvDomainGetVcpuPinInfo             |  x  |     |     |
virDrvDomainPinEmulator                |  x  |     |     |
virDrvDomainGetEmulatorPinInfo         |  x  |     |     |
virDrvDomainGetVcpus                   |  x  |  x  |  x  |
virDrvDomainGetMaxVcpus                |  x  |  x  |     |
virDrvDomainGetSecurityLabel           |  x  |     |     |
virDrvDomainGetSecurityLabelList       |  x  |     |     |
virDrvNodeGetSecurityModel             |  x  |     |     |
virDrvDomainGetXMLDesc                 |  x  |  x  |  x  |
virDrvConnectDomainXMLFromNative       |  x  |  x  |  x  |
virDrvConnectDomainXMLToNative         |  x  |  x  |  x  |
virDrvListDefinedDomains               |  x  |  x  |  x  |
virDrvNumOfDefinedDomains              |  x  |  x  |  x  |
virDrvDomainCreate                     |  x  |  x  |  x  |
virDrvDomainCreateWithFlags            |  x  |  x  |  x  |
virDrvDomainDefineXML                  |  x  |  x  |  x  |
virDrvDomainUndefine                   |  x  |  x  |  x  |
virDrvDomainUndefineFlags              |  x  |  x  |  x  |
virDrvDomainAttachDevice               |  x  |  x  |  x  |
virDrvDomainAttachDeviceFlags          |  x  |  x  |  x  |
virDrvDomainDetachDevice               |  x  |  x  |  x  |
virDrvDomainDetachDeviceFlags          |  x  |  x  |  x  |
virDrvDomainUpdateDeviceFlags          |  x  |  x  |  x  |
virDrvDomainGetAutostart               |  x  |  x  |  x  |
virDrvDomainSetAutostart               |  x  |  x  |  x  | 
virDrvDomainGetSchedulerType           |  x  |  x  |  x  |
virDrvDomainGetSchedulerParameters     |  x  |  x  |  x  |
virDrvDomainGetSchedulerParametersFlags|  x  |  x  |  x  |
virDrvDomainSetSchedulerParameters     |  x  |  x  |  x  |
virDrvDomainSetSchedulerParametersFlags|  x  |  x  |  x  |
virDrvDomainMigratePrepare             |     |  x  |     |
virDrvDomainMigratePerform             |  x  |  x  |     |
virDrvDomainMigrateFinish              |     |  x  |     |
virDrvDomainBlockResize                |  x  |     |     |
virDrvDomainBlockStats                 |  x  |     |     |
virDrvDomainBlockStatsFlags            |  x  |     |     |
virDrvDomainInterfaceStats             |  x  |  x  |     |
virDrvDomainSetInterfaceParameters     |  x  |     |     |
virDrvDomainGetInterfaceParameters     |  x  |     |     |
virDrvDomainMemoryStats                |  x  |     |     |
virDrvDomainBlockPeek                  |  x  |  x  |     |
virDrvDomainMemoryPeek                 |  x  |     |     |
virDrvDomainGetBlockInfo               |  x  |     |     |
virDrvNodeGetCPUStats                  |  x  |     |     |
virDrvNodeGetMemoryStats               |  x  |     |     |
virDrvNodeGetCellsFreeMemory           |  x  |  x  |     |
virDrvNodeGetFreeMemory                |  x  |  x  |  x  |
virDrvDomainEventRegister              |  x  |  x  |  x  |
virDrvDomainEventDeregister            |  x  |  x  |  x  |
virDrvDomainMigratePrepare2            |  x  |     |     |
virDrvDomainMigrateFinish2             |  x  |     |     |
virDrvNodeDeviceDettach                |  x  |  x  |     |
virDrvNodeDeviceReAttach               |  x  |  x  |     |
virDrvNodeDeviceReset                  |  x  |  x  |     |
virDrvDomainMigratePrepareTunnel       |  x  |     |     |
virDrvConnectIsEncrypted               |  x  |  x  |     |
virDrvConnectIsSecure                  |  x  |  x  |     |
virDrvDomainIsActive                   |  x  |  x  |  x  |
virDrvDomainIsPersistent               |  x  |  x  |  x  |
virDrvDomainIsUpdated                  |  x  |  x  |  x  |
virDrvCompareCPU                       |  x  |     |     |
virDrvBaselineCPU                      |  x  |     |     |
virDrvDomainGetJobInfo                 |  x  |     |     |
virDrvDomainAbortJob                   |  x  |     |     |
virDrvDomainMigrateSetMaxDowntime      |  x  |     |     |
virDrvDomainMigrateGetMaxSpeed         |  x  |     |     |
virDrvDomainMigrateSetMaxSpeed         |  x  |     |     |
virDrvDomainEventRegisterAny           |  x  |     |  x  |
virDrvDomainEventDeregisterAny         |  x  |     |  x  |
virDrvDomainManagedSave                |  x  |     |  x  |
virDrvDomainHasManagedSaveImage        |  x  |     |  x  |
virDrvDomainManagedSaveRemove          |  x  |     |  x  |
virDrvDomainSnapshotCreateXML          |  x  |     |     |
virDrvDomainSnapshotGetXMLDesc         |  x  |     |     |
virDrvDomainSnapshotNum                |  x  |     |     |
virDrvDomainSnapshotListNames          |  x  |     |     |
virDrvDomainListAllSnapshots           |  x  |     |     |
virDrvDomainSnapshotNumChildren        |  x  |     |     |
virDrvDomainSnapshotListChildrenNames  |  x  |     |     |
virDrvDomainSnapshotListAllChildren    |  x  |     |     |
virDrvDomainSnapshotLookupByName       |  x  |     |     |
virDrvDomainHasCurrentSnapshot         |  x  |     |     |
virDrvDomainSnapshotGetParent          |  x  |     |     |
virDrvDomainSnapshotCurrent            |  x  |     |     |
virDrvDomainSnapshotIsCurrent          |  x  |     |     |
virDrvDomainSnapshotHasMetadata        |  x  |     |     |
virDrvDomainRevertToSnapshot           |  x  |     |     |
virDrvDomainSnapshotDelete             |  x  |     |     |
virDrvDomainQemuMonitorCommand         |  x  |     |     |
virDrvDomainQemuAttach                 |  x  |     |     |
virDrvDomainQemuAgentCommand           |  x  |     |     |
virDrvDomainOpenConsole                |  x  |  x  |     |
virDrvDomainOpenGraphics               |  x  |     |     |
virDrvDomainInjectNMI                  |  x  |     |     |
virDrvDomainMigrateBegin3              |  x  |     |     |
virDrvDomainMigratePrepare3            |  x  |     |     |
virDrvDomainMigratePrepareTunnel3      |  x  |     |     |
virDrvDomainMigratePerform3            |  x  |     |     |
virDrvDomainMigrateFinish3             |  x  |     |     |
virDrvDomainMigrateConfirm3            |  x  |     |     |
virDrvDomainSendKey                    |  x  |     |     |
virDrvDomainBlockJobAbort              |  x  |     |     |
virDrvDomainGetBlockJobInfo            |  x  |     |     |
virDrvDomainBlockJobSetSpeed           |  x  |     |     |
virDrvDomainBlockPull                  |  x  |     |     |
virDrvDomainBlockRebase                |  x  |     |     |
virDrvDomainBlockCommit                |  x  |     |     |
virDrvSetKeepAlive                     |     |     |     |
virDrvConnectIsAlive                   |  x  |     |     |
virDrvNodeSuspendForDuration           |  x  |  x  |     |
virDrvDomainSetBlockIoTune             |  x  |     |     |
virDrvDomainGetBlockIoTune             |  x  |     |     |
virDrvDomainGetCPUStats                |  x  |     |     |
virDrvDomainGetDiskErrors              |  x  |     |     |
virDrvDomainSetMetadata                |  x  |     |     |
virDrvDomainGetMetadata                |  x  |     |     |
virDrvNodeGetMemoryParameters          |  x  |  x  |     |
virDrvNodeSetMemoryParameters          |  x  |  x  |     |


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.