diff options
author | Ilya Leoshkevich <iii@linux.ibm.com> | 2024-07-30 23:54:57 +0200 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2025-03-07 07:53:44 -0800 |
commit | 44ed2fd1ea0e5c62dca2f26bee871652a93c6837 (patch) | |
tree | 1276aeae239c0561eb21e33e64f98affe26ac416 | |
parent | 98c7362b1efe651327385a25874a73e008c6549e (diff) | |
download | qemu-44ed2fd1ea0e5c62dca2f26bee871652a93c6837.zip qemu-44ed2fd1ea0e5c62dca2f26bee871652a93c6837.tar.gz qemu-44ed2fd1ea0e5c62dca2f26bee871652a93c6837.tar.bz2 |
linux-user/main: Allow setting tb-size
While qemu-system can set tb-size using -accel tcg,tb-size=n, there
is no similar knob for qemu-user. Add one in a way similar to how
one-insn-per-tb is already handled.
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240730215532.1442-1-iii@linux.ibm.com>
-rw-r--r-- | linux-user/main.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/linux-user/main.c b/linux-user/main.c index 5c74c52..e2ec597 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -72,6 +72,7 @@ char *exec_path; char real_exec_path[PATH_MAX]; static bool opt_one_insn_per_tb; +static unsigned long opt_tb_size; static const char *argv0; static const char *gdbstub; static envlist_t *envlist; @@ -425,6 +426,13 @@ static void handle_arg_one_insn_per_tb(const char *arg) opt_one_insn_per_tb = true; } +static void handle_arg_tb_size(const char *arg) +{ + if (qemu_strtoul(arg, NULL, 0, &opt_tb_size)) { + usage(EXIT_FAILURE); + } +} + static void handle_arg_strace(const char *arg) { enable_strace = true; @@ -517,6 +525,8 @@ static const struct qemu_argument arg_table[] = { {"one-insn-per-tb", "QEMU_ONE_INSN_PER_TB", false, handle_arg_one_insn_per_tb, "", "run with one guest instruction per emulated TB"}, + {"tb-size", "QEMU_TB_SIZE", true, handle_arg_tb_size, + "size", "TCG translation block cache size"}, {"strace", "QEMU_STRACE", false, handle_arg_strace, "", "log system calls"}, {"seed", "QEMU_RAND_SEED", true, handle_arg_seed, @@ -808,6 +818,8 @@ int main(int argc, char **argv, char **envp) accel_init_interfaces(ac); object_property_set_bool(OBJECT(accel), "one-insn-per-tb", opt_one_insn_per_tb, &error_abort); + object_property_set_int(OBJECT(accel), "tb-size", + opt_tb_size, &error_abort); ac->init_machine(NULL); } |