[libvirt] [REPOSTv2 PATCH v3 0/6] Add support for VM Generation ID (vmgenid)

Michal Privoznik mprivozn at redhat.com
Fri May 25 12:10:29 UTC 2018


On 05/25/2018 02:04 PM, John Ferlan wrote:
> 
> 
> On 05/25/2018 07:39 AM, Michal Privoznik wrote:
>> On 05/25/2018 01:10 PM, John Ferlan wrote:
>>>
>>>
>>> On 05/25/2018 04:24 AM, Michal Privoznik wrote:
>>>> On 05/17/2018 02:42 PM, John Ferlan wrote:
>>>>> Second reposting of:
>>>>>
>>>>> https://www.redhat.com/archives/libvir-list/2018-May/msg00813.html
>>>>>
>>>>> To update patches with more conflicts for patch 2 (capabilities) and
>>>>> patch 6 (news)
>>>>>
>>>>> Cover from the v3 posting:
>>>>>
>>>>> v2: https://www.redhat.com/archives/libvir-list/2018-April/msg02234.html
>>>>>
>>>>> Changes since v2: 
>>>>>
>>>>>   * Essentially handle comments from code review of original series from
>>>>>     comments received for patch 6:
>>>>>
>>>>>     https://www.redhat.com/archives/libvir-list/2018-April/msg02240.html
>>>>>
>>>>>     It's a somewhat simplified approach removing the ABI checks and the
>>>>>     adjustment to the genid value as part of domain def copy.
>>>>>
>>>>>   * (NEW) Patch 5 - add a 'genid' domain capability (similar to how Cole
>>>>>     added support for vmcoreinfo). Since the apps need a way to determine
>>>>>     whether this is enabled, this seems to be the best way.
>>>>>
>>>>>
>>>>> John Ferlan (6):
>>>>>   conf: Add VM Generation ID parse/format support
>>>>>   qemu: Add VM Generation ID device capability
>>>>>   qemu: Alter VM Generation ID for specific startup/launch transitions
>>>>>   qemu: Add VM Generation ID to qemu command line
>>>>>   domcaps: Add 'genid' to domain capabilities
>>>>>   docs: Add news article for VM Generation ID
>>>>>
>>>>>  docs/formatdomain.html.in                          | 27 +++++++++++
>>>>>  docs/formatdomaincaps.html.in                      |  7 ++-
>>>>>  docs/news.xml                                      | 13 ++++++
>>>>>  docs/schemas/domaincaps.rng                        |  7 +++
>>>>>  docs/schemas/domaincommon.rng                      |  8 ++++
>>>>>  src/conf/domain_capabilities.c                     |  3 ++
>>>>>  src/conf/domain_capabilities.h                     |  1 +
>>>>>  src/conf/domain_conf.c                             | 54 ++++++++++++++++++++++
>>>>>  src/conf/domain_conf.h                             |  5 ++
>>>>>  src/qemu/qemu_capabilities.c                       |  4 ++
>>>>>  src/qemu/qemu_capabilities.h                       |  1 +
>>>>>  src/qemu/qemu_command.c                            | 24 ++++++++++
>>>>>  src/qemu/qemu_driver.c                             | 17 +++++--
>>>>>  src/qemu/qemu_process.c                            | 46 +++++++++++++++++-
>>>>>  src/qemu/qemu_process.h                            |  1 +
>>>>>  tests/domaincapsschemadata/basic.xml               |  1 +
>>>>>  tests/domaincapsschemadata/bhyve_basic.x86_64.xml  |  1 +
>>>>>  tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml   |  1 +
>>>>>  tests/domaincapsschemadata/bhyve_uefi.x86_64.xml   |  1 +
>>>>>  tests/domaincapsschemadata/full.xml                |  1 +
>>>>>  tests/domaincapsschemadata/libxl-xenfv-usb.xml     |  1 +
>>>>>  tests/domaincapsschemadata/libxl-xenfv.xml         |  1 +
>>>>>  tests/domaincapsschemadata/libxl-xenpv-usb.xml     |  1 +
>>>>>  tests/domaincapsschemadata/libxl-xenpv.xml         |  1 +
>>>>>  tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml   |  1 +
>>>>>  .../qemu_2.12.0-virt.aarch64.xml                   |  1 +
>>>>>  tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml   |  1 +
>>>>>  tests/domaincapsschemadata/qemu_2.12.0.s390x.xml   |  1 +
>>>>>  tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml  |  1 +
>>>>>  .../qemu_2.6.0-virt.aarch64.xml                    |  1 +
>>>>>  tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml  |  1 +
>>>>>  tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml    |  1 +
>>>>>  tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml   |  1 +
>>>>>  tests/domaincapsschemadata/qemu_2.7.0.s390x.xml    |  1 +
>>>>>  .../domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml |  1 +
>>>>>  tests/domaincapsschemadata/qemu_2.8.0.s390x.xml    |  1 +
>>>>>  tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml   |  1 +
>>>>>  .../domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml |  1 +
>>>>>  .../domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml |  1 +
>>>>>  tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml   |  1 +
>>>>>  tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  1 +
>>>>>  tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |  1 +
>>>>>  tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  1 +
>>>>>  .../qemuxml2argvdata/genid-auto.x86_64-latest.args | 30 ++++++++++++
>>>>>  tests/qemuxml2argvdata/genid-auto.xml              | 32 +++++++++++++
>>>>>  tests/qemuxml2argvdata/genid.x86_64-latest.args    | 30 ++++++++++++
>>>>>  tests/qemuxml2argvdata/genid.xml                   | 32 +++++++++++++
>>>>>  tests/qemuxml2argvtest.c                           |  4 ++
>>>>>  tests/qemuxml2xmloutdata/genid-active.xml          | 32 +++++++++++++
>>>>>  tests/qemuxml2xmloutdata/genid-auto-active.xml     | 32 +++++++++++++
>>>>>  tests/qemuxml2xmloutdata/genid-auto-inactive.xml   | 32 +++++++++++++
>>>>>  tests/qemuxml2xmloutdata/genid-inactive.xml        | 32 +++++++++++++
>>>>>  tests/qemuxml2xmltest.c                            |  5 +-
>>>>>  53 files changed, 500 insertions(+), 7 deletions(-)
>>>>>  create mode 100644 tests/qemuxml2argvdata/genid-auto.x86_64-latest.args
>>>>>  create mode 100644 tests/qemuxml2argvdata/genid-auto.xml
>>>>>  create mode 100644 tests/qemuxml2argvdata/genid.x86_64-latest.args
>>>>>  create mode 100644 tests/qemuxml2argvdata/genid.xml
>>>>>  create mode 100644 tests/qemuxml2xmloutdata/genid-active.xml
>>>>>  create mode 100644 tests/qemuxml2xmloutdata/genid-auto-active.xml
>>>>>  create mode 100644 tests/qemuxml2xmloutdata/genid-auto-inactive.xml
>>>>>  create mode 100644 tests/qemuxml2xmloutdata/genid-inactive.xml
>>>>>
>>>>
>>>> I like the patches, I do. I'd ACK them but some discussion is needed
>>>> first in my opinion.
>>>>
>>>
>>> Discussion about what? Honestly this "version" of the patches has been
>>> languishing for the entire month without any review. I know "everyone"
>>> is "busy" with their own stuff and facing their own deadlines so I don't
>>> expect immediate review, but a whole month without any feedback is a
>>> bitter pill to swallow. Now that we reach the end of the month and
>>> release time - the design is being called into question. That's fine -
>>> although IMO I got review on the original design from the RFC posted in
>>> March and the v1 posted in early April. The v2 series posted a couple
>>> weeks later gave a lot more important feedback and resulted in the
>>> adjustments posted here. So as noted in another response, the v2 review
>>> gave the best feedback and is the basis for this simplified approach.
>>
>> I meant answers to my questions. Esp. on the capability check and usage
>> of flags. If you fix the capability check like I'm suggesting in 4/6 you
>> have my ACK for the whole patch set.
> 
> Ironically, as part of review of v2 patch 10, I was asked to remove the
> check from qemuBuildVMGenIDCommandLine:
> 
> https://www.redhat.com/archives/libvir-list/2018-April/msg02253.html
> 
> Perhaps it's best to just move it from qemu_process to qemu_command -
> that just means passing @qemuCaps into qemuBuildVMGenIDCommandLine and
> using it as well as removing @priv from qemuProcessGenID.
> 
> It really doesn't matter in qemu_process whether the capability exists,
> it was an optimization to put it there rather than an error path in
> qemu_command... and with that change GenIDCommandLine now could return
> -1 or 0; whereas, without the caps check it was only ever returning 0.
> 
> I can repost the entire series if so desired.

I don't think it's needed. Just fix and push.

Michal




More information about the libvir-list mailing list