From: "Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com> To: xen-devel@lists.xenproject.org Cc: "Anthony PERARD" <anthony.perard@citrix.com>, "Ian Jackson" <ian.jackson@eu.citrix.com>, "Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com>, "Wei Liu" <wl@xen.org> Subject: [Xen-devel] [PATCH v4 06/16] libxl: write qemu arguments into separate xenstore keys Date: Wed, 15 Jan 2020 03:39:45 +0100 [thread overview] Message-ID: <cd76e3559f841d3072558d9c603dc686f67d54c1.1579055705.git-series.marmarek@invisiblethingslab.com> (raw) In-Reply-To: <cover.f819645cd9f5cf7a6f692f9661cfb4e670a2cd08.1579055705.git-series.marmarek@invisiblethingslab.com> This allows using arguments with spaces, like -append, without nominating any special "separator" character. Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> --- Changes in v3: - previous version of this patch "libxl: use \x1b to separate qemu arguments for linux stubdomain" used specific non-printable separator, but it was rejected as xenstore doesn't cope well with non-printable chars --- tools/libxl/libxl_dm.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c index 926d963..bf49262 100644 --- a/tools/libxl/libxl_dm.c +++ b/tools/libxl/libxl_dm.c @@ -2049,6 +2049,40 @@ static int libxl__vfb_and_vkb_from_hvm_guest_config(libxl__gc *gc, return 0; } +static int libxl__write_stub_linux_dmargs(libxl__gc *gc, + int dm_domid, int guest_domid, + char **args) +{ + libxl_ctx *ctx = libxl__gc_owner(gc); + int i; + char *vm_path; + char *path; + struct xs_permissions roperm[2]; + xs_transaction_t t; + + roperm[0].id = 0; + roperm[0].perms = XS_PERM_NONE; + roperm[1].id = dm_domid; + roperm[1].perms = XS_PERM_READ; + + vm_path = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("/local/domain/%d/vm", guest_domid)); + path = GCSPRINTF("%s/image/dmargs", vm_path); + +retry_transaction: + t = xs_transaction_start(ctx->xsh); + xs_write(ctx->xsh, t, path, "", 0); + xs_set_permissions(ctx->xsh, t, path, roperm, ARRAY_SIZE(roperm)); + i = 1; + for (i=1; args[i] != NULL; i++) + xs_write(ctx->xsh, t, GCSPRINTF("%s/%03d", path, i), args[i], strlen(args[i])); + + xs_set_permissions(ctx->xsh, t, GCSPRINTF("%s/rtc/timeoffset", vm_path), roperm, ARRAY_SIZE(roperm)); + if (!xs_transaction_end(ctx->xsh, t, 0)) + if (errno == EAGAIN) + goto retry_transaction; + return 0; +} + static int libxl__write_stub_dmargs(libxl__gc *gc, int dm_domid, int guest_domid, char **args) @@ -2258,7 +2292,10 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss) libxl__store_libxl_entry(gc, guest_domid, "dm-version", libxl_device_model_version_to_string(dm_config->b_info.device_model_version)); - libxl__write_stub_dmargs(gc, dm_domid, guest_domid, args); + if (libxl__stubdomain_is_linux(&guest_config->b_info)) + libxl__write_stub_linux_dmargs(gc, dm_domid, guest_domid, args); + else + libxl__write_stub_dmargs(gc, dm_domid, guest_domid, args); libxl__xs_printf(gc, XBT_NULL, GCSPRINTF("%s/image/device-model-domid", libxl__xs_get_dompath(gc, guest_domid)), -- git-series 0.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2020-01-15 2:40 UTC|newest] Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-15 2:39 [Xen-devel] [PATCH v4 00/16] Add support for qemu-xen runnning in a Linux-based stubdomain Marek Marczykowski-Górecki 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 01/16] Document ioemu MiniOS stubdomain protocol Marek Marczykowski-Górecki 2020-01-20 18:30 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 02/16] Document ioemu Linux " Marek Marczykowski-Górecki 2020-01-20 18:54 ` Jason Andryuk 2020-01-21 21:08 ` Marek Marczykowski-Górecki 2020-01-22 14:04 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 03/16] libxl: fix qemu-trad cmdline for no sdl/vnc case Marek Marczykowski-Górecki 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 04/16] libxl: Allow running qemu-xen in stubdomain Marek Marczykowski-Górecki 2020-01-20 18:56 ` Jason Andryuk 2020-01-21 21:12 ` Marek Marczykowski-Górecki 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 05/16] libxl: Handle Linux stubdomain specific QEMU options Marek Marczykowski-Górecki 2020-01-20 19:24 ` Jason Andryuk 2020-01-21 21:18 ` Marek Marczykowski-Górecki 2020-01-22 14:25 ` Jason Andryuk 2020-01-15 2:39 ` Marek Marczykowski-Górecki [this message] 2020-01-20 19:36 ` [Xen-devel] [PATCH v4 06/16] libxl: write qemu arguments into separate xenstore keys Jason Andryuk 2020-01-21 21:19 ` Marek Marczykowski-Górecki 2020-01-22 14:39 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 07/16] xl: add stubdomain related options to xl config parser Marek Marczykowski-Górecki 2020-01-20 19:41 ` Jason Andryuk 2020-01-21 21:22 ` Marek Marczykowski-Górecki 2020-01-22 14:39 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 08/16] tools/libvchan: notify server when client is connected Marek Marczykowski-Górecki 2020-01-20 19:44 ` Jason Andryuk 2020-01-21 21:28 ` Marek Marczykowski-Górecki 2020-01-22 14:43 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 09/16] libxl: add save/restore support for qemu-xen in stubdomain Marek Marczykowski-Górecki 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 10/16] tools: add missing libxenvchan cflags Marek Marczykowski-Górecki 2020-01-20 19:58 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 11/16] tools: add simple vchan-socket-proxy Marek Marczykowski-Górecki 2020-01-15 11:02 ` Jan Beulich 2020-01-16 17:11 ` Marek Marczykowski-Górecki 2020-01-17 8:13 ` Jan Beulich 2020-01-17 18:44 ` Rich Persaud 2020-01-17 18:56 ` Marek Marczykowski-Górecki 2020-01-21 19:43 ` Jason Andryuk 2020-01-21 23:09 ` Marek Marczykowski-Górecki 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 12/16] libxl: use vchan for QMP access with Linux stubdomain Marek Marczykowski-Górecki 2020-01-21 20:17 ` Jason Andryuk 2020-01-21 23:46 ` Marek Marczykowski-Górecki 2020-01-24 14:05 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 13/16] Regenerate autotools files Marek Marczykowski-Górecki 2020-01-15 21:57 ` Rich Persaud 2020-01-21 20:56 ` Marek Marczykowski-Górecki 2020-01-21 21:28 ` Rich Persaud 2020-01-22 8:57 ` Lars Kurth 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 14/16] libxl: require qemu in dom0 even if stubdomain is in use Marek Marczykowski-Górecki 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 15/16] libxl: ignore emulated IDE disks beyond the first 4 Marek Marczykowski-Górecki 2020-01-21 20:24 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 16/16] libxl: consider also qemu in stubdomain in libxl__dm_active check Marek Marczykowski-Górecki 2020-01-21 20:25 ` Jason Andryuk 2020-01-22 16:50 ` [Xen-devel] [PATCH v4 00/16] Add support for qemu-xen runnning in a Linux-based stubdomain Jason Andryuk
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cd76e3559f841d3072558d9c603dc686f67d54c1.1579055705.git-series.marmarek@invisiblethingslab.com \ --to=marmarek@invisiblethingslab.com \ --cc=anthony.perard@citrix.com \ --cc=ian.jackson@eu.citrix.com \ --cc=wl@xen.org \ --cc=xen-devel@lists.xenproject.org \ --subject='Re: [Xen-devel] [PATCH v4 06/16] libxl: write qemu arguments into separate xenstore keys' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).