On Thu, Feb 05, 2026 at 08:58:01PM +0100, Ruslan Ruslichenko wrote:
> From: Ruslan Ruslichenko <Ruslan_Ruslichenko@epam.com>
>
> This patch adds a new command line option `-machine-path` to specify
> a directory path for shared machine resources.
We have a fairly general principal that we don't want to introduce
new top level command line arguments to QEMU anymore.
Could this perhaps be modelled as a machine type property, settable
via -machine instead ?
>
> This path is intended to serve as a base directory for devices or
> subsystems that need to automatically create coordination files,
> such as Unix domain sockets, particularly in multi-process simulation
> environments.
>
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> Signed-off-by: Takahiro Nakata <takahiro.nakata.wr@renesas.com>
> Signed-off-by: Ruslan Ruslichenko <Ruslan_Ruslichenko@epam.com>
> ---
> include/system/system.h | 2 ++
> qemu-options.hx | 10 ++++++++++
> system/vl.c | 4 ++++
> 3 files changed, 16 insertions(+)
>
> diff --git a/include/system/system.h b/include/system/system.h
> index 03a2d0e900..0cd012004d 100644
> --- a/include/system/system.h
> +++ b/include/system/system.h
> @@ -57,6 +57,8 @@ bool is_mlock_on_fault(MlockState);
>
> extern MlockState mlock_state;
>
> +extern const char *machine_path;
> +
> #define MAX_OPTION_ROMS 16
> typedef struct QEMUOptionRom {
> const char *name;
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 6dd3e04e38..b7dd2a64f0 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -765,6 +765,16 @@ SRST
> Preallocate memory when using -mem-path.
> ERST
>
> +DEF("machine-path", HAS_ARG, QEMU_OPTION_machine_path,
> + "-machine-path DIR A directory in which to create machine nodes\n",
> + QEMU_ARCH_ALL)
> +SRST
> +``-machine-path path``
> + Selects the machine path.
> + Multi-arch machine nodes will be created in <path>.
> + This option also sets -mem-shared-path to the given path.
> +ERST
> +
> DEF("k", HAS_ARG, QEMU_OPTION_k,
> "-k language use keyboard layout (for example 'fr' for French)\n",
> QEMU_ARCH_ALL)
> diff --git a/system/vl.c b/system/vl.c
> index c890da586c..4750b1cf69 100644
> --- a/system/vl.c
> +++ b/system/vl.c
> @@ -182,6 +182,7 @@ static QemuPluginList plugin_list = QTAILQ_HEAD_INITIALIZER(plugin_list);
> static BlockdevOptionsQueue bdo_queue = QSIMPLEQ_HEAD_INITIALIZER(bdo_queue);
> static bool nographic = false;
> static int mem_prealloc; /* force preallocation of physical target memory */
> +const char *machine_path;
> static const char *vga_model = NULL;
> static DisplayOptions dpy;
> static int num_serial_hds;
> @@ -3128,6 +3129,9 @@ void qemu_init(int argc, char **argv)
> case QEMU_OPTION_mem_prealloc:
> mem_prealloc = 1;
> break;
> + case QEMU_OPTION_machine_path:
> + machine_path = optarg;
> + break;
> case QEMU_OPTION_d:
> log_mask = optarg;
> break;
> --
> 2.43.0
>
>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|