[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 26/33] *-user: Deprecate and disable -p pagesize
From: |
Richard Henderson |
Subject: |
[PATCH v3 26/33] *-user: Deprecate and disable -p pagesize |
Date: |
Tue, 2 Jan 2024 12:58:01 +1100 |
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>
---
docs/about/deprecated.rst | 7 +++++++
docs/user/main.rst | 3 ---
bsd-user/main.c | 9 +++++----
linux-user/main.c | 11 ++++++-----
4 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 2e15040246..a499583a62 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -95,6 +95,13 @@ Use ``-accel tcg,one-insn-per-tb=on`` instead.
User-mode emulator command line arguments
-----------------------------------------
+``-p`` (since 8.2)
+''''''''''''''''''
+
+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.
+
``-singlestep`` (since 8.1)
'''''''''''''''''''''''''''
diff --git a/docs/user/main.rst b/docs/user/main.rst
index f478635396..3a07be1278 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 e6014f517e..ba159d2984 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -365,10 +365,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");
+ 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(1);
}
} else if (!strcmp(r, "g")) {
diff --git a/linux-user/main.c b/linux-user/main.c
index 5f217cc2a8..9ba4dc5872 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"},
--
2.34.1
- Re: [PATCH v3 24/33] tests/tcg: Remove run-test-mmap-*, (continued)
- [PATCH v3 20/33] linux-user: Do early mmap placement only for reserved_va, Richard Henderson, 2024/01/01
- [PATCH v3 22/33] linux-user: Split out mmap_h_lt_g, Richard Henderson, 2024/01/01
- [PATCH v3 23/33] linux-user: Split out mmap_h_gt_g, Richard Henderson, 2024/01/01
- [PATCH v3 26/33] *-user: Deprecate and disable -p pagesize,
Richard Henderson <=
- [PATCH v3 27/33] cpu: Remove page_size_init, Richard Henderson, 2024/01/01
- [PATCH v3 25/33] tests/tcg: Extend file in linux-madvise.c, Richard Henderson, 2024/01/01
- [PATCH v3 28/33] accel/tcg: Disconnect TargetPageDataNode from page size, Richard Henderson, 2024/01/01
- [PATCH v3 29/33] linux-user: Allow TARGET_PAGE_BITS_VARY, Richard Henderson, 2024/01/01