On 12/4/2025 12:06 AM, Peter Maydell wrote:
On Wed, 3 Dec 2025 at 14:00, Dr. David Alan Gilbert <[email protected]> wrote:

* Alex Bennée ([email protected]) wrote:
[email protected] writes:

From: "Dr. David Alan Gilbert" <[email protected]>

-M is used heavily in documentation and scripts, but isn't actually
documented anywhere.
Document it as equivalent to -machine.

Reported-by: Julian Andres Klode <[email protected]>
Signed-off-by: Dr. David Alan Gilbert <[email protected]>
---
  qemu-options.hx | 12 +++++++-----
  1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/qemu-options.hx b/qemu-options.hx
index fca2b7bc74..ec92723f10 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -44,6 +44,7 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \
  #endif
      "                memory-backend='backend-id' specifies explicitly provided 
backend for main RAM (default=none)\n"
      "                
cxl-fmw.0.targets.0=firsttarget,cxl-fmw.0.targets.1=secondtarget,cxl-fmw.0.size=size[,cxl-fmw.0.interleave-granularity=granularity]\n"
+    "                sgx-epc.0.memdev=memid,sgx-epc.0.node=numaid\n"
      "                
smp-cache.0.cache=cachename,smp-cache.0.topology=topologylevel\n",
      QEMU_ARCH_ALL)
  SRST
@@ -179,6 +180,9 @@ SRST

              -machine 
cxl-fmw.0.targets.0=cxl.0,cxl-fmw.0.targets.1=cxl.1,cxl-fmw.0.size=128G,cxl-fmw.0.interleave-granularity=512

+    ``sgx-epc.0.memdev=@var{memid},sgx-epc.0.node=@var{numaid}``
+        Define an SGX EPC section.
+

This seems unrelated.

      ``smp-cache.0.cache=cachename,smp-cache.0.topology=topologylevel``
          Define cache properties for SMP system.

@@ -208,12 +212,10 @@ SRST
  ERST

  DEF("M", HAS_ARG, QEMU_OPTION_M,
-    "                sgx-epc.0.memdev=memid,sgx-epc.0.node=numaid\n",
-    QEMU_ARCH_ALL)
-
+    "-M              as -machine\n", QEMU_ARCH_ALL)
  SRST
-``sgx-epc.0.memdev=@var{memid},sgx-epc.0.node=@var{numaid}``
-    Define an SGX EPC section.
+``-M``
+    as -machine.

Surprisingly, this and -h/--help are our only two options where
we provide a short synonym. I note that this handling of -M
is not consistent with how we document -h/--help, where we
print both on a single line:
-h or -help     display this help and exit

But it would be trickier to fit that in for -machine and
perhaps confusing given the suboptions.

Did we have a merge conflict at some point that messed things up?

It's not clear - it was the only option hanging around in -M and it was
already appearing wrong in the man output.
I wondered if it was some requirement to have *something* in the -M
definition so thought it best to move it at the same time.

It looks like this was incorrectly added under -M by
commit dfce81f1b9 ("vl: Add sgx compound properties to expose
SGX EPC sections to guest"), which should have put it under
-machine like all our other machine suboption documentation.

The result is that the sgx-epc documentation appears OK
in --help because the --help output just concatenates
everything so it gets tacked on after the -machine help,
but it is misrendered in the HTML docs:
https://qemu-project.gitlab.io/qemu/system/invocation.html
as it appears as if a top level option rather than one
indented to indicate that it's a machine sub-option.
So this change fixes that bug (and should ideally say so
in its commit message).

Yeah, I found this bug before and sent the fix: https://lore.kernel.org/qemu-devel/[email protected]/

But I was occupied with other stuff then so that had no time to sent out the v2.

Before that it simply read
-HXCOMM Deprecated by -machine
-DEF("M", HAS_ARG, QEMU_OPTION_M, "", QEMU_ARCH_ALL)

(Commit dfce81f1b9 also silently dropped that "deprecated"
comment, which it shouldn't really have done.)

thanks
-- PMM



Reply via email to