diff mbox series

[26/33] linux-user: Deprecate and disable -p pagesize

Message ID 20230818171227.141728-27-richard.henderson@linaro.org
State New
Headers show
Series linux-user: Improve host and guest page size handling | expand

Commit Message

Richard Henderson Aug. 18, 2023, 5:12 p.m. UTC
This option controls the host page size.  From the mis-usage in
our own testsuite, this is easily confused with guest page size.

The only thing that occurs when changing the host page size is
that stuff breaks, because one cannot actually change the host
page size.  Therefore reject all but the no-op setting as part
of the deprecation process.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 linux-user/main.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

Comments

Philippe Mathieu-Daudé Aug. 21, 2023, 6:58 a.m. UTC | #1
On 18/8/23 19:12, Richard Henderson wrote:
> This option controls the host page size.  From the mis-usage in
> our own testsuite, this is easily confused with guest page size.
> 
> The only thing that occurs when changing the host page size is
> that stuff breaks, because one cannot actually change the host
> page size.  Therefore reject all but the no-op setting as part
> of the deprecation process.
> 
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>   linux-user/main.c | 11 ++++++-----
>   1 file changed, 6 insertions(+), 5 deletions(-)

OK, but missing updates in docs/about/deprecated.rst
and docs/user/main.rst.
diff mbox series

Patch

diff --git a/linux-user/main.c b/linux-user/main.c
index c1058abc3c..3dd3310331 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -332,10 +332,11 @@  static void handle_arg_ld_prefix(const char *arg)
 
 static void handle_arg_pagesize(const char *arg)
 {
-    qemu_host_page_size = atoi(arg);
-    if (qemu_host_page_size == 0 ||
-        (qemu_host_page_size & (qemu_host_page_size - 1)) != 0) {
-        fprintf(stderr, "page size must be a power of two\n");
+    unsigned size, want = qemu_real_host_page_size();
+
+    if (qemu_strtoui(arg, NULL, 10, &size) || size != want) {
+        error_report("Deprecated page size option cannot "
+                     "change host page size (%u)", want);
         exit(EXIT_FAILURE);
     }
 }
@@ -496,7 +497,7 @@  static const struct qemu_argument arg_table[] = {
     {"D",          "QEMU_LOG_FILENAME", true, handle_arg_log_filename,
      "logfile",     "write logs to 'logfile' (default stderr)"},
     {"p",          "QEMU_PAGESIZE",    true,  handle_arg_pagesize,
-     "pagesize",   "set the host page size to 'pagesize'"},
+     "pagesize",   "deprecated change to host page size"},
     {"one-insn-per-tb",
                    "QEMU_ONE_INSN_PER_TB",  false, handle_arg_one_insn_per_tb,
      "",           "run with one guest instruction per emulated TB"},