[libvirt] [PATCH v2 0/7] Cleanup flags checking and fix setvcpus

John Ferlan jferlan at redhat.com
Thu Apr 9 13:13:11 UTC 2015

On 03/27/2015 06:01 AM, Pavel Hrdina wrote:
> The first four patches only cleanup the flags checking in our APIs by
> introducing new macros to check exclusive flags and requirements.
> Patch 5/7 uses the new macros to do better flags checking for
> virDomainSetvcpusFlags API.
> Patch 6/7 introduces macro to check virsh options requirements.
> The last patch uses the requirement macro to cleanup virsh setvcpus code
> and fixes a bug with --maximum option.
> Because only the last patch actually fixes a bug issue, I'm not sure whether
> this patch series should wait for next release cycle.
> Luyao Huang (1):
>   tools: fix the wrong check when use virsh setvcpus --maximum
> Pavel Hrdina (6):
>   internal: introduce macro helpers to reject exclusive flags
>   internal: introduce macro helpers to check flag requirements
>   use new macro helpers to check exclusive flags
>   use new macro helpers to check flag requirements
>   qemu: use new macros for setvcpus to check flags and cleanup the code
>   virsh: introduce new macros to help check flag requirements
>  src/internal.h                     |  87 +++++++++++
>  src/libvirt-domain-snapshot.c      |  56 +++-----
>  src/libvirt-domain.c               | 286 +++++++++++--------------------------
>  src/qemu/qemu_driver.c             |  33 +----
>  src/storage/storage_backend_disk.c |  10 +-
>  src/storage/storage_backend_fs.c   |  11 +-
>  tools/virsh-domain.c               |  30 +---
>  tools/virsh.h                      |  52 +++++++
>  8 files changed, 256 insertions(+), 309 deletions(-)

Since there's been too many changes since this was posted, these won't
'git am -3' for me, so it's a visual inspection...

Patches 1-4 -

 * In general - ACK - just be sure to heed Jeff's comment regarding use
of do { } while(0); within each #define.

 * On the plus side - less code, easier checks, and consistency with the
output. However...

 * This does change error message output from using strings like
'redefine', 'halt', running', 'paused', 'children', 'children_only', etc
to the #NAME-OF-FLAG output. Not that I find that a problem; however, I
have to wonder how that affects tests which search for certain strings
for failure case checking - eg. autotest/virt-test. This also has a side
effect on message i18n, but that's no different than any other message
outputting text in a message I suppose. We are reducing our messages.

 * You're also removing the __FUNCTION__ from the output for some errors
- I have no problem with that since it should be fairly obvious, but it
is different. Then again, the messages are

Patch 5 (ACK)
 * The error for GUEST && CONFIG changes - doesn't specifically call out
guest agent, but I would think someone supplying GUEST would know that
anyway, so it's a no big deal, except of course for the test script that
may look for a specific error message.

Patches 6-7 (ACK in general)

 * I agree with Jeff regarding the "do { } while(0);"

 * The commit message needs some massaging - it'd be nice to see the
output with the changes in place

 * What happens after these changes if someone does "virsh setvcpus
--current --maximum 10" to an inactive domain?


More information about the libvir-list mailing list