The "info jit" command currently aborts on Mac OS X with the message
"qemu_mutex_lock: Invalid argument" when running with "-M accel=qtest".
We should only call into the TCG code here if TCG has really been
enabled and initialized.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
monitor.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/monitor.c b/monitor.c
index be282ec..3e0979d 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1086,6 +1086,11 @@ static void hmp_info_registers(Monitor *mon, const QDict *qdict)
static void hmp_info_jit(Monitor *mon, const QDict *qdict)
{
+ if (!tcg_enabled()) {
+ error_report("JIT information is only available with accel=tcg");
+ return;
+ }
+
dump_exec_info((FILE *)mon, monitor_fprintf);
dump_drift_info((FILE *)mon, monitor_fprintf);
}
--
1.8.3.1
* Thomas Huth (thuth@redhat.com) wrote: > The "info jit" command currently aborts on Mac OS X with the message > "qemu_mutex_lock: Invalid argument" when running with "-M accel=qtest". > We should only call into the TCG code here if TCG has really been > enabled and initialized. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > monitor.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/monitor.c b/monitor.c > index be282ec..3e0979d 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -1086,6 +1086,11 @@ static void hmp_info_registers(Monitor *mon, const QDict *qdict) > > static void hmp_info_jit(Monitor *mon, const QDict *qdict) > { > + if (!tcg_enabled()) { > + error_report("JIT information is only available with accel=tcg"); > + return; > + } > + > dump_exec_info((FILE *)mon, monitor_fprintf); > dump_drift_info((FILE *)mon, monitor_fprintf); > } so tcg_enabled checks tcg_ctx.code_gen_buffer != NULL code_gen_buffer is set by code_gen_alloc code_gen_alloc does a qemu_mutex_init of tb_lock and the previous problem was an uninitialised tb_lock. So: Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Peter: Does this fix the hmp test for you? Dave > -- > 1.8.3.1 > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On 26 April 2017 at 09:18, Dr. David Alan Gilbert <dgilbert@redhat.com> wrote: > * Thomas Huth (thuth@redhat.com) wrote: >> The "info jit" command currently aborts on Mac OS X with the message >> "qemu_mutex_lock: Invalid argument" when running with "-M accel=qtest". >> We should only call into the TCG code here if TCG has really been >> enabled and initialized. >> >> Signed-off-by: Thomas Huth <thuth@redhat.com> >> --- >> monitor.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/monitor.c b/monitor.c >> index be282ec..3e0979d 100644 >> --- a/monitor.c >> +++ b/monitor.c >> @@ -1086,6 +1086,11 @@ static void hmp_info_registers(Monitor *mon, const QDict *qdict) >> >> static void hmp_info_jit(Monitor *mon, const QDict *qdict) >> { >> + if (!tcg_enabled()) { >> + error_report("JIT information is only available with accel=tcg"); >> + return; >> + } >> + >> dump_exec_info((FILE *)mon, monitor_fprintf); >> dump_drift_info((FILE *)mon, monitor_fprintf); >> } > > so tcg_enabled checks tcg_ctx.code_gen_buffer != NULL > code_gen_buffer is set by code_gen_alloc > code_gen_alloc does a qemu_mutex_init of tb_lock > and the previous problem was an uninitialised tb_lock. > > So: > Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > > > Peter: Does this fix the hmp test for you? Yes, it does. Tested-by: Peter Maydell <peter.maydell@linaro.org> -- PMM
* Peter Maydell (peter.maydell@linaro.org) wrote: > On 26 April 2017 at 09:18, Dr. David Alan Gilbert <dgilbert@redhat.com> wrote: > > * Thomas Huth (thuth@redhat.com) wrote: > >> The "info jit" command currently aborts on Mac OS X with the message > >> "qemu_mutex_lock: Invalid argument" when running with "-M accel=qtest". > >> We should only call into the TCG code here if TCG has really been > >> enabled and initialized. > >> > >> Signed-off-by: Thomas Huth <thuth@redhat.com> > >> --- > >> monitor.c | 5 +++++ > >> 1 file changed, 5 insertions(+) > >> > >> diff --git a/monitor.c b/monitor.c > >> index be282ec..3e0979d 100644 > >> --- a/monitor.c > >> +++ b/monitor.c > >> @@ -1086,6 +1086,11 @@ static void hmp_info_registers(Monitor *mon, const QDict *qdict) > >> > >> static void hmp_info_jit(Monitor *mon, const QDict *qdict) > >> { > >> + if (!tcg_enabled()) { > >> + error_report("JIT information is only available with accel=tcg"); > >> + return; > >> + } > >> + > >> dump_exec_info((FILE *)mon, monitor_fprintf); > >> dump_drift_info((FILE *)mon, monitor_fprintf); > >> } > > > > so tcg_enabled checks tcg_ctx.code_gen_buffer != NULL > > code_gen_buffer is set by code_gen_alloc > > code_gen_alloc does a qemu_mutex_init of tb_lock > > and the previous problem was an uninitialised tb_lock. > > > > So: > > Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > > > > > > Peter: Does this fix the hmp test for you? > > Yes, it does. > > Tested-by: Peter Maydell <peter.maydell@linaro.org> OK, I'll cook a new version of the HMP pull later with this in it. Dave > -- PMM -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
© 2016 - 2024 Red Hat, Inc.