[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