[libvirt] [PATCH 1/3] qemu: Allow to specify the sysfs root for qemuBuildCommandLine

Guido Günther agx at sigxcpu.org
Wed May 15 13:18:26 UTC 2013


On Wed, May 15, 2013 at 06:52:44PM +0800, Osier Yang wrote:
> Since 0d70656afded, it starts to access the sysfs files to build
> the qemu command line (by virSCSIDeviceGetSgName, which is find

I'm not a native speaker but 

s/which is/to/

sounds better to me.

> out the scsi generic device name by adpater:bus:target:unit), there
> is no way to work around, qemu wants to see the scsi generic device
> like "/dev/sg6" anyway.
> 
> And I think it's not only the place which needs to access sysfs
> files when building qemu command line in future.
> 
> As a solution, this introduces a new argument "sysfs_root" for
> qemuBuildCommandLine, and thus the tests can feed the fake sysfs
> root to it.
> ---
>  src/qemu/qemu_command.c  | 3 ++-
>  src/qemu/qemu_command.h  | 3 ++-
>  src/qemu/qemu_driver.c   | 3 ++-
>  src/qemu/qemu_process.c  | 3 ++-
>  tests/qemuxml2argvtest.c | 3 ++-
>  tests/qemuxmlnstest.c    | 3 ++-
>  6 files changed, 12 insertions(+), 6 deletions(-)
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 5941f70..e054c1f 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -6400,7 +6400,8 @@ qemuBuildCommandLine(virConnectPtr conn,
>                       const char *migrateFrom,
>                       int migrateFd,
>                       virDomainSnapshotObjPtr snapshot,
> -                     enum virNetDevVPortProfileOp vmop)
> +                     enum virNetDevVPortProfileOp vmop,
> +                     const char *sysfs_root ATTRIBUTE_UNUSED)
>  {
>      virErrorPtr originalError = NULL;
>      int i, j;
> diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h
> index ba42bb9..360d8cf 100644
> --- a/src/qemu/qemu_command.h
> +++ b/src/qemu/qemu_command.h
> @@ -58,7 +58,8 @@ virCommandPtr qemuBuildCommandLine(virConnectPtr conn,
>                                     const char *migrateFrom,
>                                     int migrateFd,
>                                     virDomainSnapshotObjPtr current_snapshot,
> -                                   enum virNetDevVPortProfileOp vmop)
> +                                   enum virNetDevVPortProfileOp vmop,
> +                                   const char *sysfs_root)
>      ATTRIBUTE_NONNULL(1);
>  
>  /* Generate string for arch-specific '-device' parameter */
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 9453c22..80cdf45 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -5339,7 +5339,8 @@ static char *qemuConnectDomainXMLToNative(virConnectPtr conn,
>  
>      if (!(cmd = qemuBuildCommandLine(conn, driver, def,
>                                       &monConfig, monitor_json, qemuCaps,
> -                                     NULL, -1, NULL, VIR_NETDEV_VPORT_PROFILE_OP_NO_OP)))
> +                                     NULL, -1, NULL, VIR_NETDEV_VPORT_PROFILE_OP_NO_OP,
> +                                     NULL)))
>          goto cleanup;
>  
>      ret = virCommandToString(cmd);
> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> index 6499f4a..faeb02b 100644
> --- a/src/qemu/qemu_process.c
> +++ b/src/qemu/qemu_process.c
> @@ -3619,7 +3619,8 @@ int qemuProcessStart(virConnectPtr conn,
>      VIR_DEBUG("Building emulator command line");
>      if (!(cmd = qemuBuildCommandLine(conn, driver, vm->def, priv->monConfig,
>                                       priv->monJSON, priv->qemuCaps,
> -                                     migrateFrom, stdin_fd, snapshot, vmop)))
> +                                     migrateFrom, stdin_fd, snapshot,
> +                                     vmop, NULL)))
>          goto cleanup;
>  
>      /* now that we know it is about to start call the hook if present */
> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
> index a2226f8..790857a 100644
> --- a/tests/qemuxml2argvtest.c
> +++ b/tests/qemuxml2argvtest.c
> @@ -157,7 +157,8 @@ static int testCompareXMLToArgvFiles(const char *xml,
>      if (!(cmd = qemuBuildCommandLine(conn, &driver, vmdef, &monitor_chr,
>                                       (flags & FLAG_JSON), extraFlags,
>                                       migrateFrom, migrateFd, NULL,
> -                                     VIR_NETDEV_VPORT_PROFILE_OP_NO_OP))) {
> +                                     VIR_NETDEV_VPORT_PROFILE_OP_NO_OP,
> +                                     NULL))) {
>          if (flags & FLAG_EXPECT_FAILURE) {
>              ret = 0;
>              if (virTestGetDebug() > 1)
> diff --git a/tests/qemuxmlnstest.c b/tests/qemuxmlnstest.c
> index 952b8e2..9d3d2a0 100644
> --- a/tests/qemuxmlnstest.c
> +++ b/tests/qemuxmlnstest.c
> @@ -113,7 +113,8 @@ static int testCompareXMLToArgvFiles(const char *xml,
>      if (!(cmd = qemuBuildCommandLine(conn, &driver,
>                                       vmdef, &monitor_chr, json, extraFlags,
>                                       migrateFrom, migrateFd, NULL,
> -                                     VIR_NETDEV_VPORT_PROFILE_OP_NO_OP)))
> +                                     VIR_NETDEV_VPORT_PROFILE_OP_NO_OP,
> +                                     NULL)))
>          goto fail;
>  
>      if (!!virGetLastError() != expectError) {
> -- 
> 1.8.1.4

ACK.
 -- Guido

> 
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
> 




More information about the libvir-list mailing list