From: "Wu, Fei" <fei2.wu@intel.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: <richard.henderson@linaro.org>, <alex.bennee@linaro.org>,
<qemu-devel@nongnu.org>,
"Vanderson M . do Rosario" <vandersonmr2@gmail.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Thomas Huth <thuth@redhat.com>,
"Laurent Vivier" <lvivier@redhat.com>
Subject: Re: [PATCH v14 04/10] accel/tcg: add jit stats and time to TBStatistics
Date: Wed, 31 May 2023 08:54:04 +0800 [thread overview]
Message-ID: <aa860271-44c2-a737-06a6-12c556cb99a4@intel.com> (raw)
In-Reply-To: <87sfbeqhwb.fsf@pond.sub.org>
On 5/30/2023 5:37 PM, Markus Armbruster wrote:
> Fei Wu <fei2.wu@intel.com> writes:
>
>> This collects all the statistics for TBStatistics, not only for the
>> whole emulation but for each TB.
>>
>> Signed-off-by: Vanderson M. do Rosario <vandersonmr2@gmail.com>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> Signed-off-by: Fei Wu <fei2.wu@intel.com>
>> ---
>> accel/tcg/monitor.c | 20 ++++-
>> accel/tcg/tb-stats.c | 146 ++++++++++++++++++++++++++++++++++
>> accel/tcg/tcg-accel-ops.c | 7 ++
>> accel/tcg/translate-all.c | 70 +++++++++++++++-
>> accel/tcg/translator.c | 7 +-
>> include/exec/tb-stats-flags.h | 2 +
>> include/exec/tb-stats.h | 46 +++++++++++
>> include/qemu/timer.h | 6 ++
>> include/tcg/tcg.h | 28 ++++++-
>> softmmu/runstate.c | 9 +++
>> tcg/tcg.c | 88 ++++++++++++++++++--
>> tests/qtest/qmp-cmd-test.c | 3 +
>> 12 files changed, 417 insertions(+), 15 deletions(-)
>>
>> diff --git a/accel/tcg/monitor.c b/accel/tcg/monitor.c
>> index e903dd1d2e..2bc87f2642 100644
>> --- a/accel/tcg/monitor.c
>> +++ b/accel/tcg/monitor.c
>> @@ -15,6 +15,7 @@
>> #include "sysemu/cpus.h"
>> #include "sysemu/cpu-timers.h"
>> #include "sysemu/tcg.h"
>> +#include "exec/tb-stats.h"
>> #include "internal.h"
>>
>>
>> @@ -69,6 +70,11 @@ HumanReadableText *qmp_x_query_opcount(Error **errp)
>> {
>> g_autoptr(GString) buf = g_string_new("");
>>
>> + if (!tb_stats_collection_enabled()) {
>> + error_setg(errp, "TB information not being recorded.");
>
> From error_setg()'s contract in include/qapi/error.h:
>
> * The resulting message should be a single phrase, with no newline or
> * trailing punctuation.
>
> Please drop the period. Same elsewhere, not flagging it again there.
>
Got it, will do.
>> + return NULL;
>> + }
>> +
>> if (!tcg_enabled()) {
>> error_setg(errp,
>> "Opcode count information is only available with accel=tcg");
>> @@ -80,11 +86,23 @@ HumanReadableText *qmp_x_query_opcount(Error **errp)
>> return human_readable_text_from_str(buf);
>> }
>>
>> +#ifdef CONFIG_TCG
>> +HumanReadableText *qmp_x_query_profile(Error **errp)
>> +{
>> + g_autoptr(GString) buf = g_string_new("");
>> +
>> + dump_jit_exec_time_info(dev_time, buf);
>> + dev_time = 0;
>> +
>> + return human_readable_text_from_str(buf);
>> +}
>> +#else
>> HumanReadableText *qmp_x_query_profile(Error **errp)
>> {
>> - error_setg(errp, "Internal profiler not compiled");
>> + error_setg(errp, "TCG should be enabled!");
>> return NULL;
>> }
>> +#endif
>
> machine.json has
>
> ##
> # @x-query-profile:
> #
> # Query TCG profiling information
> #
> # Features:
> #
> # @unstable: This command is meant for debugging.
> #
> # Returns: profile information
> #
> # Since: 6.2
> ##
> { 'command': 'x-query-profile',
> 'returns': 'HumanReadableText',
> 'if': 'CONFIG_TCG',
> 'features': [ 'unstable' ] }
>
> Not changed in this series.
>
> Note the command is conditional on CONFIG_TCG, i.e. code generated for
> it is #if defined(CONFIG_TCG).
>
> The only other use is in hmp-commands-info.hx, and it is also guarded by
> CONFIG_TCG.
>
> Therefore, your #else is unreachable. You can delete it along with...
>
OK, so qmp_x_query_profile won't get called #ifndef CONFIG_TCG, I will
remove it.
Thanks,
Fei.
>>
>> static void hmp_tcg_register(void)
>> {
>
> [...]
>
>> diff --git a/tests/qtest/qmp-cmd-test.c b/tests/qtest/qmp-cmd-test.c
>> index 73a670e8fa..749aafe4da 100644
>> --- a/tests/qtest/qmp-cmd-test.c
>> +++ b/tests/qtest/qmp-cmd-test.c
>> @@ -46,6 +46,9 @@ static int query_error_class(const char *cmd)
>> { "query-balloon", ERROR_CLASS_DEVICE_NOT_ACTIVE },
>> { "query-hotpluggable-cpus", ERROR_CLASS_GENERIC_ERROR },
>> { "query-vm-generation-id", ERROR_CLASS_GENERIC_ERROR },
>> +#ifndef CONFIG_TCG
>> + { "x-query-profile", ERROR_CLASS_GENERIC_ERROR },
>> +#endif
>
> ... this entry.
>
>> /* Only valid with a USB bus added */
>> { "x-query-usb", ERROR_CLASS_GENERIC_ERROR },
>> /* Only valid with accel=tcg */
>
next prev parent reply other threads:[~2023-05-31 0:55 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-30 8:35 [PATCH v14 00/10] TCG code quality tracking Fei Wu
2023-05-30 8:35 ` [PATCH v14 01/10] accel/tcg: remove CONFIG_PROFILER Fei Wu
2023-05-30 8:35 ` [PATCH v14 02/10] accel/tcg: introduce TBStatistics structure Fei Wu
2023-05-31 23:59 ` Richard Henderson
2023-06-01 1:30 ` Wu, Fei
2023-06-01 2:48 ` Richard Henderson
2023-06-01 0:01 ` Richard Henderson
2023-06-01 3:19 ` Wu, Fei
2023-06-01 4:16 ` Richard Henderson
2023-06-01 5:36 ` Wu, Fei
2023-05-30 8:35 ` [PATCH v14 03/10] accel: collecting TB execution count Fei Wu
2023-06-01 0:05 ` Richard Henderson
2023-06-01 5:44 ` Wu, Fei
2023-06-01 14:03 ` Richard Henderson
2023-06-02 1:54 ` Wu, Fei
2023-06-02 4:02 ` Richard Henderson
2023-05-30 8:35 ` [PATCH v14 04/10] accel/tcg: add jit stats and time to TBStatistics Fei Wu
2023-05-30 9:37 ` Markus Armbruster
2023-05-31 0:54 ` Wu, Fei [this message]
2023-06-01 1:08 ` Richard Henderson
2023-06-01 6:48 ` Wu, Fei
2023-06-01 14:10 ` Richard Henderson
2023-06-01 15:10 ` Richard Henderson
2023-05-30 8:35 ` [PATCH v14 05/10] debug: add -d tb_stats to control TBStatistics collection: Fei Wu
2023-06-01 1:18 ` Richard Henderson
2023-06-01 6:59 ` Wu, Fei
2023-05-30 8:35 ` [PATCH v14 06/10] monitor: adding tb_stats hmp command Fei Wu
2023-06-01 1:23 ` Richard Henderson
2023-06-01 7:20 ` Wu, Fei
2023-06-01 14:25 ` Richard Henderson
2023-05-30 8:35 ` [PATCH v14 07/10] tb-stats: reset the tracked TBs on a tb_flush Fei Wu
2023-06-01 1:30 ` Richard Henderson
2023-06-01 7:22 ` Wu, Fei
2023-05-30 8:35 ` [PATCH v14 08/10] Adding info [tb-list|tb] commands to HMP (WIP) Fei Wu
2023-06-01 2:40 ` Richard Henderson
2023-06-01 12:12 ` Wu, Fei
2023-06-06 7:30 ` Wu, Fei
2023-06-07 12:49 ` Wu, Fei
2023-06-08 7:38 ` Wu, Fei
2023-06-08 9:23 ` Peter Maydell
2023-06-08 12:06 ` Dr. David Alan Gilbert
2023-06-08 12:22 ` Peter Maydell
2023-06-09 14:32 ` Wu, Fei
2023-06-09 15:51 ` Peter Maydell
2023-06-12 1:20 ` Wu, Fei
2023-05-30 8:35 ` [PATCH v14 09/10] tb-stats: dump hot TBs at the end of the execution Fei Wu
2023-05-30 8:35 ` [PATCH v14 10/10] docs: add tb-stats how to Fei Wu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aa860271-44c2-a737-06a6-12c556cb99a4@intel.com \
--to=fei2.wu@intel.com \
--cc=alex.bennee@linaro.org \
--cc=armbru@redhat.com \
--cc=lvivier@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
--cc=vandersonmr2@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).