[libvirt] [PATCH v5 10/11] nvdimm: qemu command-line generating for unarmed property

John Ferlan jferlan at redhat.com
Thu Dec 20 17:10:16 UTC 2018


$SUBJ:

qemu: Add qemu command-line to generate the nvdimm unarmed property


On 12/20/18 4:14 AM, Luyao Zhong wrote:
> According to the result parsing from xml, add unarmed property
> into QEMU command line:
> 
> -device nvdimm,...[,unarmed=on/off]

unarmed=on

(off is never added)

> 
> Signed-off-by: Luyao Zhong <luyao.zhong at intel.com>
> ---
>  src/qemu/qemu_command.c                            | 16 ++++++++--
>  src/qemu/qemu_command.h                            |  3 +-
>  src/qemu/qemu_hotplug.c                            |  2 +-
>  ...mory-hotplug-nvdimm-readonly.x86_64-latest.args | 36 ++++++++++++++++++++++
>  tests/qemuxml2argvtest.c                           |  1 +
>  5 files changed, 54 insertions(+), 4 deletions(-)
>  create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.x86_64-latest.args
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 6a06161..1de3d07 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -3567,7 +3567,8 @@ qemuBuildMemoryDimmBackendStr(virBufferPtr buf,
>  
>  
>  char *
> -qemuBuildMemoryDeviceStr(virDomainMemoryDefPtr mem)
> +qemuBuildMemoryDeviceStr(virDomainMemoryDefPtr mem,
> +                         qemuDomainObjPrivatePtr priv)
>  {
>      virBuffer buf = VIR_BUFFER_INITIALIZER;
>      const char *device;
> @@ -3595,6 +3596,17 @@ qemuBuildMemoryDeviceStr(virDomainMemoryDefPtr mem)
>          if (mem->labelsize)
>              virBufferAsprintf(&buf, "label-size=%llu,", mem->labelsize * 1024);
>  
> +        if (mem->readonly) {
> +            if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE_NVDIMM_UNARMED)) {
> +                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                           _("Set readonly for nvdimm, but the corresponding unarmed"
> +                             "property is not available with this QEMU binary"));

    _("nvdimm readonly property is not available "
      "with this QEMU binary"));

(consistency and no need to confuse the consumer with using 'unarmed').

> +                return NULL;
> +            }
> +            virBufferAsprintf(&buf, "unarmed=%s,",
> +                              mem->readonly ? "on" : "off");

Similar to previous, we cannot have "off" here, so just go with:

    virBufferAddLit(&buf, "unarmed=on,");

I can adjust for you,

Reviewed-by: John Ferlan <jferlan at redhat.com>

John

[...]




More information about the libvir-list mailing list