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 - 2026 Red Hat, Inc.