[libvirt] [PATCH 00/66] vbox: Rewrite vbox domain driver

Michal Privoznik mprivozn at redhat.com
Wed Aug 13 15:18:44 UTC 2014


[CC-ing Yohan BELLEGUIC and Manuel VIVES]


On 12.08.2014 17:31, Michal Privoznik wrote:
> On 11.08.2014 12:06, Taowei wrote:
>> This series of patches rewrite the vbox's domain
>> driver. The driver is separated into two parts: the version
>> specified and the common part. The common driver use
>> vboxUniformedAPI to build a general driver for all vbox
>> versions. The vboxUniformedAPI take the responsiblity to
>> communicate with virtualbox. Since there are some incompatible
>> changes in virtualbox, vboxUniformedAPI should be aware of
>> these changes and provide a uniformed api for the upper layer.
>>
>> The significant result of this patch is that we replace all
>> vir${vbox_version}Driver into one virCommonDriver. So, we will
>> have only one vbox driver implementation for all vbox versions
>> in libvirt.
>>
>> PS: I have send part of my patches before:
>> https://www.redhat.com/archives/libvir-list/2014-July/msg00937.html
>> But I have to resend it beacuse I did some improvement on previous
>> patches:
>> *Remove the test case for vboxUniformedAPI, because it would raise
>>   "break strict-aliasing rules" warning in some distibutions
>> *Merged the flag fdWatchNeedInitialize into domainEventCallbacks,
>>   So, we use one flag to indicate whether vbox support callbacks
>>   as well as we need to initialize variables for it.
>>
>> Taowei (66):
>>    vbox: Begin to rewrite, vboxConnectOpen
>>    vbox: Rewrite vboxConnectClose
>>    vbox: Rewrite vboxDomainSave
>>    vbox: Rewrite vboxConnectGetVersion
>>    vbox: Rewrite vboxConnectGetHostname
>>    vbox: Rewrite vboxConnectIsSecure
>>    vbox: Rewrite vboxConnectIsEncrypted
>>    vbox: Rewrite vboxConnectIsAlive
>>    vbox: Rewrite vboxConnectGetMaxVcpus
>>    vbox: Rewrite vboxConnectGetCapabilities
>>    vbox: Rewrite vboxConnectListDomains
>>    vbox: Rewrite vboxConnectNumOfDomains
>>    vbox: Rewrite vboxDomainLookupById
>>    vbox: Rewrite vboxDomainLookupByUUID
>>    vbox: Rewrite vboxDomainUndefineFlags
>>    vbox: Rewrite vboxDomainDefineXML
>>    vbox: Rewrite vboxDomainCreateWithFlags
>>    vbox: Rewrite vboxDomainCreate
>>    vbox: Rewrite vboxDomainCreateXML
>>    vbox: Rewrite vboxDomainLookupByName
>>    vbox: Rewrite vboxDomainIsActive
>>    vbox: Rewrite vboxDomainIsPersistent
>>    vbox: Rewrite vboxDomainIsUpdated
>>    vbox: Rewrite vboxDomainSuspend
>>    vbox: Rewrite vboxDomainResume
>>    vbox: Rewrite vboxDomainShutdownFlags
>>    vbox: Rewrite vboxDomainShutdown
>>    vbox: Rewrite vboxDomainReboot
>>    vbox: Rewrite vboxDomainDestroyFlags
>>    vbox: Rewrite vboxDomainDestroy
>>    vbox: Rewrite vboxDomainGetOSType
>>    vbox: Rewrite vboxDomainSetMemory
>>    vbox: Rewrite vboxDomainGetInfo
>>    vbox: Rewrite vboxDomainGetState
>>    vbox: Rewrite vboxDomainSetVcpusFlags
>>    vbox: Rewrite vboxDomainSetVcpus
>>    vbox: Rewrite vboxDomainGetVcpusFlags
>>    vbox: Rewrite vboxDomainGetMaxVcpus
>>    vbox: Add API for vboxDomainGetXMLDesc
>>    vbox: Rewrite vboxDomainGetXMLDesc
>>    vbox: Rewrite vboxConnectListDefinedDomains
>>    vbox: Rewrite vboxConnectNumOfDefinedDomains
>>    vbox: Rewrite vboxDomainUndefine
>>    vbox: Rewrite vboxDomainAttachDevice
>>    vbox: Rewrite vboxDomainAttachDeviceFlags
>>    vbox: Rewrite vboxDomainUpdateDeviceFlags
>>    vbox: Rewrite vboxDomainDetachDevice
>>    vbox: Rewrite vboxDomainDetachDeviceFlags
>>    vbox: Add API for vboxDomainSnapshotCreateXML
>>    vbox: Rewrite vboxDomainSnapshotCreateXML
>>    vbox: Rewrite vboxDomainSnapshotGetXMLDesc
>>    vbox: Rewrite vboxDomainSnapshotNum
>>    vbox: Rewrite vboxDomainSnapshotListNames
>>    vbox: Rewrite vboxSnapshotLookupByName
>>    vbox: Rewrite vboxDomainHasCurrentSnapshot
>>    vbox: Rewrite vboxDomainSnapshotGetParent
>>    vbox: Rewrite vboxDomainSnapshotCurrent
>>    vbox: Rewrite vboxDomainSnapshotIsCurrent
>>    vbox: Rewrite vboxDomainSnapshotHasMetadata
>>    vbox: Rewrite vboxDomainRevertToSnapshot
>>    vbox: Rewrite vboxDomainSnapshotDelete
>>    vbox: Rewrite vboxDomainScreenshot
>>    vbox: Rewrite vboxConnectListAllDomains
>>    vbox: Rewrite vboxNode functions
>>    vbox: Add registerDomainEvent
>>    vbox: Introducing vboxCommonDriver
>>
>>   po/POTFILES.in                |    1 +
>>   src/Makefile.am               |    5 +-
>>   src/vbox/README               |    7 +-
>>   src/vbox/vbox_common.c        | 7550 +++++++++++++++++++++
>>   src/vbox/vbox_common.h        |  306 +
>>   src/vbox/vbox_driver.c        |   40 +-
>>   src/vbox/vbox_install_api.h   |   26 +
>>   src/vbox/vbox_tmpl.c          |14557
>> +++++++++++++----------------------------
>>   src/vbox/vbox_uniformed_api.h |  551 ++
>>   9 files changed, 13186 insertions(+), 9857 deletions(-)
>>   create mode 100644 src/vbox/vbox_common.c
>>   create mode 100644 src/vbox/vbox_common.h
>>   create mode 100644 src/vbox/vbox_install_api.h
>>   create mode 100644 src/vbox/vbox_uniformed_api.h
>>
>
> ACK to all the patches. I've fixed all the small nits I found. I'm
> keeping the patches on my private branch for some time to give others
> time to share their opinions. Nevertheless, incredible work in making
> the vbox driver look more sane what you've done!


Yohan and Manuel,

can you guys please give this patchset a test? You seem to be interested 
in our virtual box driver (esp. snapshots) and we won't be happy if we 
break something by merging the patches. I haven't spotted anything wrong 
in the patches, so I gave my ACK but I'll postpone the push for a while 
to give you chance to try them out.

Michal




More information about the libvir-list mailing list