From: Jim Fehlig <jfehlig@suse.com>
To: George Dunlap <George.Dunlap@eu.citrix.com>
Cc: "Dario Faggioli" <dario.faggioli@citrix.com>,
"Bamvor Jian Zhang" <bjzhang@suse.com>,
"Ondr(ej Holec(ek" <oholecek@suse.com>,
"Chun Yan Liu" <cyliu@suse.com>,
xen-devel@lists.xen.org
Subject: Re: libxl drivers for libvirt?
Date: Wed, 24 Oct 2012 12:11:37 -0600 [thread overview]
Message-ID: <50882F59.6070203@suse.com> (raw)
In-Reply-To: <CAFLBxZZpfsKabtixOntk06ZXp=K-_u_zjfQjcVZSE4xTw6DP+A@mail.gmail.com>
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 | |
next prev parent reply other threads:[~2012-10-24 18:11 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-24 15:33 libxl drivers for libvirt? George Dunlap
2012-10-24 18:11 ` Jim Fehlig [this message]
2012-10-26 12:54 ` Ondřej Holeček
2012-10-26 13:12 ` Ian Campbell
2012-10-26 13:03 ` George Dunlap
2012-10-26 13:18 ` Ian Campbell
2012-10-29 15:55 ` Jim Fehlig
2012-10-29 16:05 ` [libvirt] " Daniel P. Berrange
2012-10-26 14:00 ` Ian Jackson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50882F59.6070203@suse.com \
--to=jfehlig@suse.com \
--cc=George.Dunlap@eu.citrix.com \
--cc=bjzhang@suse.com \
--cc=cyliu@suse.com \
--cc=dario.faggioli@citrix.com \
--cc=oholecek@suse.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).