Message ID | 20230417164041.684562-5-peter.maydell@linaro.org |
---|---|
State | New |
Headers | show |
Series | Deprecate/rename singlestep command line option, monitor interfaces | expand |
On 17/4/23 18:40, Peter Maydell wrote: > The '-singlestep' option is confusing, because it doesn't actually > have anything to do with single-stepping the CPU. What it does do > is force TCG emulation to put one guest instruction in each TB, > which can be useful in some situations. > > Create a new command line argument -one-insn-per-tb, so we can > document that -singlestep is just a deprecated synonym for it, > and eventually perhaps drop it. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > Reviewed-by: Warner Losh <imp@bsdimp.com> > --- > docs/user/main.rst | 7 ++++++- > linux-user/main.c | 9 ++++++--- > 2 files changed, 12 insertions(+), 4 deletions(-) > @@ -500,8 +500,11 @@ static const struct qemu_argument arg_table[] = { > "logfile", "write logs to 'logfile' (default stderr)"}, > {"p", "QEMU_PAGESIZE", true, handle_arg_pagesize, > "pagesize", "set the host page size to 'pagesize'"}, > - {"singlestep", "QEMU_SINGLESTEP", false, handle_arg_singlestep, > - "", "run in singlestep mode"}, > + {"one-insn-per-tb", > + "QEMU_ONE_INSN_PER_TB", false, handle_arg_one_insn_per_tb, > + "", "run with one guest instruction per emulated TB"}, > + {"singlestep", "QEMU_SINGLESTEP", false, handle_arg_one_insn_per_tb, > + "", "deprecated synonym for -one-insn-per-tb"}, Maybe worth mentioning QEMU_ONE_INSN_PER_TB too here: "deprecated synonyms for -one-insn-per-tb and QEMU_ONE_INSN_PER_TB" Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > {"strace", "QEMU_STRACE", false, handle_arg_strace, > "", "log system calls"}, > {"seed", "QEMU_RAND_SEED", true, handle_arg_seed,
On Thu, 20 Apr 2023 at 10:13, Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > On 17/4/23 18:40, Peter Maydell wrote: > > The '-singlestep' option is confusing, because it doesn't actually > > have anything to do with single-stepping the CPU. What it does do > > is force TCG emulation to put one guest instruction in each TB, > > which can be useful in some situations. > > > > Create a new command line argument -one-insn-per-tb, so we can > > document that -singlestep is just a deprecated synonym for it, > > and eventually perhaps drop it. > > > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > > Reviewed-by: Warner Losh <imp@bsdimp.com> > > --- > > docs/user/main.rst | 7 ++++++- > > linux-user/main.c | 9 ++++++--- > > 2 files changed, 12 insertions(+), 4 deletions(-) > > > > @@ -500,8 +500,11 @@ static const struct qemu_argument arg_table[] = { > > "logfile", "write logs to 'logfile' (default stderr)"}, > > {"p", "QEMU_PAGESIZE", true, handle_arg_pagesize, > > "pagesize", "set the host page size to 'pagesize'"}, > > - {"singlestep", "QEMU_SINGLESTEP", false, handle_arg_singlestep, > > - "", "run in singlestep mode"}, > > + {"one-insn-per-tb", > > + "QEMU_ONE_INSN_PER_TB", false, handle_arg_one_insn_per_tb, > > + "", "run with one guest instruction per emulated TB"}, > > + {"singlestep", "QEMU_SINGLESTEP", false, handle_arg_one_insn_per_tb, > > + "", "deprecated synonym for -one-insn-per-tb"}, > > Maybe worth mentioning QEMU_ONE_INSN_PER_TB too here: > > "deprecated synonyms for -one-insn-per-tb and QEMU_ONE_INSN_PER_TB" There's not a lot of space in the -help output, and I think in context it's clear enough without. thanks -- PMM
On 20/4/23 11:19, Peter Maydell wrote: > On Thu, 20 Apr 2023 at 10:13, Philippe Mathieu-Daudé <philmd@linaro.org> wrote: >> >> On 17/4/23 18:40, Peter Maydell wrote: >>> The '-singlestep' option is confusing, because it doesn't actually >>> have anything to do with single-stepping the CPU. What it does do >>> is force TCG emulation to put one guest instruction in each TB, >>> which can be useful in some situations. >>> >>> Create a new command line argument -one-insn-per-tb, so we can >>> document that -singlestep is just a deprecated synonym for it, >>> and eventually perhaps drop it. >>> >>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> >>> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> >>> Reviewed-by: Warner Losh <imp@bsdimp.com> >>> --- >>> docs/user/main.rst | 7 ++++++- >>> linux-user/main.c | 9 ++++++--- >>> 2 files changed, 12 insertions(+), 4 deletions(-) >> >> >>> @@ -500,8 +500,11 @@ static const struct qemu_argument arg_table[] = { >>> "logfile", "write logs to 'logfile' (default stderr)"}, >>> {"p", "QEMU_PAGESIZE", true, handle_arg_pagesize, >>> "pagesize", "set the host page size to 'pagesize'"}, >>> - {"singlestep", "QEMU_SINGLESTEP", false, handle_arg_singlestep, >>> - "", "run in singlestep mode"}, >>> + {"one-insn-per-tb", >>> + "QEMU_ONE_INSN_PER_TB", false, handle_arg_one_insn_per_tb, >>> + "", "run with one guest instruction per emulated TB"}, >>> + {"singlestep", "QEMU_SINGLESTEP", false, handle_arg_one_insn_per_tb, >>> + "", "deprecated synonym for -one-insn-per-tb"}, >> >> Maybe worth mentioning QEMU_ONE_INSN_PER_TB too here: >> >> "deprecated synonyms for -one-insn-per-tb and QEMU_ONE_INSN_PER_TB" > > There's not a lot of space in the -help output, and I think in > context it's clear enough without. Fine.
diff --git a/docs/user/main.rst b/docs/user/main.rst index 6f2ffa080f7..f9ac701f4b1 100644 --- a/docs/user/main.rst +++ b/docs/user/main.rst @@ -93,8 +93,13 @@ Debug options: ``-g port`` Wait gdb connection to port +``-one-insn-per-tb`` + Run the emulation with one guest instruction per translation block. + This slows down emulation a lot, but can be useful in some situations, + such as when trying to analyse the logs produced by the ``-d`` option. + ``-singlestep`` - Run the emulation in single step mode. + This is a deprecated synonym for the ``-one-insn-per-tb`` option. Environment variables: diff --git a/linux-user/main.c b/linux-user/main.c index c7020b413bc..5defe5a6db8 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -409,7 +409,7 @@ static void handle_arg_reserved_va(const char *arg) reserved_va = val ? val - 1 : 0; } -static void handle_arg_singlestep(const char *arg) +static void handle_arg_one_insn_per_tb(const char *arg) { opt_one_insn_per_tb = true; } @@ -500,8 +500,11 @@ static const struct qemu_argument arg_table[] = { "logfile", "write logs to 'logfile' (default stderr)"}, {"p", "QEMU_PAGESIZE", true, handle_arg_pagesize, "pagesize", "set the host page size to 'pagesize'"}, - {"singlestep", "QEMU_SINGLESTEP", false, handle_arg_singlestep, - "", "run in singlestep mode"}, + {"one-insn-per-tb", + "QEMU_ONE_INSN_PER_TB", false, handle_arg_one_insn_per_tb, + "", "run with one guest instruction per emulated TB"}, + {"singlestep", "QEMU_SINGLESTEP", false, handle_arg_one_insn_per_tb, + "", "deprecated synonym for -one-insn-per-tb"}, {"strace", "QEMU_STRACE", false, handle_arg_strace, "", "log system calls"}, {"seed", "QEMU_RAND_SEED", true, handle_arg_seed,