[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v2 15/34] HACK: monitor: Comment out TCG profile o
From: |
Peter Crosthwaite |
Subject: |
Re: [Qemu-devel] [RFC v2 15/34] HACK: monitor: Comment out TCG profile ops |
Date: |
Sat, 11 Jul 2015 13:26:35 -0700 |
On Mon, Jun 1, 2015 at 1:03 AM, Paolo Bonzini <address@hidden> wrote:
>
>
> On 31/05/2015 08:11, Peter Crosthwaite wrote:
>> Not dealing with this problem as of this RFC, but comments on how
>> to solve it welcome. The approach adopted by this series is to
>> implement multi-arch as multiple translators, so a single global
>> TCG profiler is now ill-defined.
>
> Probably some kind of tcg-common.c? The counts can be added together
> for all CPUs, and hence moved out of tcg_ctx.
>
> Also for example tcg/tcg-opc.h should only depend on
> TCG_TARGET_REG_BITS, i.e. not on the arch. Hence tcg_op_defs should
> also be arch-independent.
>
it is. Due to disas/tci.c's usages of tcg_op_defs this has been pulled
to tcg-common.c.
tcg_table_op_count and tcg_dump_op_count could go with it, but we are
left with a harder problem with dump_exec_info which reaches into the
tcg_ctx. So dump_exec_info is converted to a CPU_HOOK using the
monitor CPU as context. This means you will get the TCG stats for
tcg_ctx for the current CPU only.
To keep the semantics consistent, I have done the same for
dump_opcount_info. So both are CPU hooks:
--- a/monitor.c
+++ b/monitor.c
@@ -962,13 +962,13 @@ static void hmp_info_registers(Monitor *mon,
const QDict *qdict)
static void hmp_info_jit(Monitor *mon, const QDict *qdict)
{
- dump_exec_info((FILE *)mon, monitor_fprintf);
+ CPU_HOOK(mon_get_cpu(), dump_exec_info)((FILE *)mon, monitor_fprintf);
dump_drift_info((FILE *)mon, monitor_fprintf);
}
static void hmp_info_opcount(Monitor *mon, const QDict *qdict)
{
- dump_opcount_info((FILE *)mon, monitor_fprintf);
+ CPU_HOOK(mon_get_cpu(), dump_opcount_info)((FILE *)mon, monitor_fprintf);
}
static void hmp_info_history(Monitor *mon, const QDict *qdict)
Regards,
Peter
P.S. Your macro CPU_HOOK suggestion has allowed me to remove all the
stub implementations of hook functions, making it scarily easy to add
new hooks.
> Paolo
>
>> Signed-off-by: Peter Crosthwaite <address@hidden>
>> ---
>> monitor.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/monitor.c b/monitor.c
>> index 1a17cf3..f3ee785 100644
>> --- a/monitor.c
>> +++ b/monitor.c
>> @@ -1036,13 +1036,17 @@ static void hmp_info_registers(Monitor *mon, const
>> QDict *qdict)
>>
>> static void hmp_info_jit(Monitor *mon, const QDict *qdict)
>> {
>> +#if 0
>> dump_exec_info((FILE *)mon, monitor_fprintf);
>> +#endif
>> dump_drift_info((FILE *)mon, monitor_fprintf);
>> }
>>
>> static void hmp_info_opcount(Monitor *mon, const QDict *qdict)
>> {
>> +#if 0
>> dump_opcount_info((FILE *)mon, monitor_fprintf);
>> +#endif
>> }
>>
>> static void hmp_info_history(Monitor *mon, const QDict *qdict)
>>
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [RFC v2 15/34] HACK: monitor: Comment out TCG profile ops,
Peter Crosthwaite <=