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

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



Wednesday 24 of October 2012 12:11:37, Jim Fehlig:
> 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?

Hi,

I have libxl which compiles without errors under Xen 4.2, but I didn't test it 
much yet. I based my port on patch [1], but there 
were numerous other issues like replaced libxl_cpumap by libxl_bitmap, added 
async operations, etc.
Right now I'm focusing on how to, if even possible, to support both 4.1 and 4.2 
in same source files. Right now my libxl_compat.h is dangerously
growing.

I would definitely appreciate any detailed overview what and why changed 
between 4.1 and 4.2 libxl iface.

[1] http://lists.xen.org/archives/html/xen-devel/2012-05/msg00565.html

> 
> > 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®.