On 7/4/2025 12:27 PM, Xiaoyao Li wrote:
> On 7/4/2025 1:32 AM, Philippe Mathieu-Daudé wrote:
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
>
> Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
>
>> ---
>> accel/tcg/monitor.c | 27 +++++++++++++++++----------
>> 1 file changed, 17 insertions(+), 10 deletions(-)
>>
>> diff --git a/accel/tcg/monitor.c b/accel/tcg/monitor.c
>> index 344ec500473..6d9cc11d94c 100644
>> --- a/accel/tcg/monitor.c
>> +++ b/accel/tcg/monitor.c
>> @@ -141,11 +141,26 @@ static void tlb_flush_counts(size_t *pfull,
>> size_t *ppart, size_t *pelide)
>> *pelide = elide;
>> }
>> +static void tcg_dump_flush_info(GString *buf)
>> +{
>> + size_t flush_full, flush_part, flush_elide;
>> +
>> + g_string_append_printf(buf, "TB flush count %u\n",
>> + qatomic_read(&tb_ctx.tb_flush_count));
>> + g_string_append_printf(buf, "TB invalidate count %u\n",
>> +
>> qatomic_read(&tb_ctx.tb_phys_invalidate_count));
>> +
>> + tlb_flush_counts(&flush_full, &flush_part, &flush_elide);
>> + g_string_append_printf(buf, "TLB full flushes %zu\n",
>> flush_full);
>> + g_string_append_printf(buf, "TLB partial flushes %zu\n",
>> flush_part);
>> + g_string_append_printf(buf, "TLB elided flushes %zu\n",
>> flush_elide);
>> +}
>> +
>> static void dump_exec_info(GString *buf)
>> {
>> struct tb_tree_stats tst = {};
>> struct qht_stats hst;
>> - size_t nb_tbs, flush_full, flush_part, flush_elide;
>> + size_t nb_tbs;
>> tcg_tb_foreach(tb_tree_stats_iter, &tst);
>> nb_tbs = tst.nb_tbs;
>> @@ -182,15 +197,7 @@ static void dump_exec_info(GString *buf)
>> qht_statistics_destroy(&hst);
>> g_string_append_printf(buf, "\nStatistics:\n");
>> - g_string_append_printf(buf, "TB flush count %u\n",
>
> side topic,
>
> is the "TB" an typo of "TLB"?
Please ignore my silly question. It's TranslationBlock of tcg.
>> - qatomic_read(&tb_ctx.tb_flush_count));
>> - g_string_append_printf(buf, "TB invalidate count %u\n",
>> -
>> qatomic_read(&tb_ctx.tb_phys_invalidate_count));
>> -
>> - tlb_flush_counts(&flush_full, &flush_part, &flush_elide);
>> - g_string_append_printf(buf, "TLB full flushes %zu\n",
>> flush_full);
>> - g_string_append_printf(buf, "TLB partial flushes %zu\n",
>> flush_part);
>> - g_string_append_printf(buf, "TLB elided flushes %zu\n",
>> flush_elide);
>> + tcg_dump_flush_info(buf);
>> }
>> HumanReadableText *qmp_x_query_jit(Error **errp)
>