[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 31/39] *-user: Deprecate and disable -p pagesize
From: |
Richard Henderson |
Subject: |
[PULL 31/39] *-user: Deprecate and disable -p pagesize |
Date: |
Thu, 22 Feb 2024 10:43:15 -1000 |
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.
Reviewed-by: Warner Losh <imp@bsdimp.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Acked-by: Helge Deller <deller@gmx.de>
Message-Id: <20240102015808.132373-27-richard.henderson@linaro.org>
---
docs/about/deprecated.rst | 10 ++++++++++
docs/user/main.rst | 3 ---
bsd-user/main.c | 10 +++++-----
linux-user/main.c | 12 ++++++------
4 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 5a2305ccd6..3074303b9c 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -63,6 +63,16 @@ as short-form boolean values, and passed to plugins as
``arg_name=on``.
However, short-form booleans are deprecated and full explicit ``arg_name=on``
form is preferred.
+User-mode emulator command line arguments
+-----------------------------------------
+
+``-p`` (since 9.0)
+''''''''''''''''''
+
+The ``-p`` option pretends to control the host page size. However,
+it is not possible to change the host page size, and using the
+option only causes failures.
+
QEMU Machine Protocol (QMP) commands
------------------------------------
diff --git a/docs/user/main.rst b/docs/user/main.rst
index 7e7ad07409..d5fbb78d3c 100644
--- a/docs/user/main.rst
+++ b/docs/user/main.rst
@@ -87,9 +87,6 @@ Debug options:
Activate logging of the specified items (use '-d help' for a list of
log items)
-``-p pagesize``
- Act as if the host page size was 'pagesize' bytes
-
``-g port``
Wait gdb connection to port
diff --git a/bsd-user/main.c b/bsd-user/main.c
index e5efb7b845..521b58b880 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -364,11 +364,11 @@ int main(int argc, char **argv)
} else if (!strcmp(r, "L")) {
interp_prefix = argv[optind++];
} else if (!strcmp(r, "p")) {
- qemu_host_page_size = atoi(argv[optind++]);
- 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");
- exit(1);
+ unsigned size, want = qemu_real_host_page_size();
+
+ if (qemu_strtoui(arg, NULL, 10, &size) || size != want) {
+ warn_report("Deprecated page size option cannot "
+ "change host page size (%u)", want);
}
} else if (!strcmp(r, "g")) {
gdbstub = g_strdup(argv[optind++]);
diff --git a/linux-user/main.c b/linux-user/main.c
index e540acb84a..bad03f06d3 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -332,11 +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");
- exit(EXIT_FAILURE);
+ unsigned size, want = qemu_real_host_page_size();
+
+ if (qemu_strtoui(arg, NULL, 10, &size) || size != want) {
+ warn_report("Deprecated page size option cannot "
+ "change host page size (%u)", want);
}
}
@@ -496,7 +496,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"},
--
2.34.1
- [PULL 21/39] linux-user: Fix sub-host-page mmap, (continued)
- [PULL 21/39] linux-user: Fix sub-host-page mmap, Richard Henderson, 2024/02/22
- [PULL 23/39] linux-user: Do early mmap placement only for reserved_va, Richard Henderson, 2024/02/22
- [PULL 22/39] linux-user: Split out mmap_end, Richard Henderson, 2024/02/22
- [PULL 25/39] linux-user: Use do_munmap for target_mmap failure, Richard Henderson, 2024/02/22
- [PULL 24/39] linux-user: Split out do_munmap, Richard Henderson, 2024/02/22
- [PULL 26/39] linux-user: Split out mmap_h_eq_g, Richard Henderson, 2024/02/22
- [PULL 27/39] linux-user: Split out mmap_h_lt_g, Richard Henderson, 2024/02/22
- [PULL 28/39] linux-user: Split out mmap_h_gt_g, Richard Henderson, 2024/02/22
- [PULL 30/39] tests/tcg: Extend file in linux-madvise.c, Richard Henderson, 2024/02/22
- [PULL 29/39] tests/tcg: Remove run-test-mmap-*, Richard Henderson, 2024/02/22
- [PULL 31/39] *-user: Deprecate and disable -p pagesize,
Richard Henderson <=
- [PULL 32/39] cpu: Remove page_size_init, Richard Henderson, 2024/02/22
- [PULL 33/39] accel/tcg: Disconnect TargetPageDataNode from page size, Richard Henderson, 2024/02/22
- [PULL 34/39] linux-user: Allow TARGET_PAGE_BITS_VARY, Richard Henderson, 2024/02/22
- [PULL 35/39] target/arm: Enable TARGET_PAGE_BITS_VARY for AArch64 user-only, Richard Henderson, 2024/02/22
- [PULL 36/39] linux-user: Bound mmap_min_addr by host page size, Richard Henderson, 2024/02/22
- [PULL 37/39] target/ppc: Enable TARGET_PAGE_BITS_VARY for user-only, Richard Henderson, 2024/02/22
- [PULL 38/39] target/alpha: Enable TARGET_PAGE_BITS_VARY for user-only, Richard Henderson, 2024/02/22
- [PULL 39/39] linux-user: Remove pgb_dynamic alignment assertion, Richard Henderson, 2024/02/22
- Re: [PULL 00/39] tcg and linux-user patch queue, Peter Maydell, 2024/02/23