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

Michal Privoznik mprivozn at redhat.com
Fri Aug 15 07:35:40 UTC 2014


On 14.08.2014 17:50, Yohan Belleguic wrote:
> Le Wednesday 13 August 2014 17:18:44, Michal Privoznik a écrit :
>> [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
>>
>
> Hello,
>
> Everything seems good to me, I didn't see any apparent problem.
> We will not update immediately libvirt, so we won't be able to thoroughly test
> the vbox driver.
>
>
> Regards
>

Perfect! So I've merged this. Thanks to Taowei for taking the effort and 
turning spaghetti code into something more readable.

Michal




More information about the libvir-list mailing list