From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
To: "Alex Bennée" <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: "Thomas Huth" <thuth@redhat.com>,
"Alexandre Iooss" <erdnaxe@crans.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"David Hildenbrand" <david@redhat.com>,
qemu-arm@nongnu.org, "Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Peter Xu" <peterx@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Mahmoud Mandour" <ma.mandourr@gmail.com>
Subject: Re: [PATCH 4/9] contrib/plugins: add a scaling factor to the ips arg
Date: Mon, 28 Apr 2025 09:56:12 -0700 [thread overview]
Message-ID: <7f047917-75b5-46ff-9069-3da224931777@linaro.org> (raw)
In-Reply-To: <20250428125918.449346-5-alex.bennee@linaro.org>
On 4/28/25 5:59 AM, Alex Bennée wrote:
> It's easy to get lost in zeros while setting the numbers of
> instructions per second. Add a scaling suffix to make things simpler.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
> contrib/plugins/ips.c | 23 ++++++++++++++++++++++-
> 1 file changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/contrib/plugins/ips.c b/contrib/plugins/ips.c
> index e5297dbb01..1952e0866d 100644
> --- a/contrib/plugins/ips.c
> +++ b/contrib/plugins/ips.c
> @@ -20,6 +20,8 @@
>
> QEMU_PLUGIN_EXPORT int qemu_plugin_version = QEMU_PLUGIN_VERSION;
>
> +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
> +
> /* how many times do we update time per sec */
> #define NUM_TIME_UPDATE_PER_SEC 10
> #define NSEC_IN_ONE_SEC (1000 * 1000 * 1000)
> @@ -129,6 +131,18 @@ static void plugin_exit(qemu_plugin_id_t id, void *udata)
> qemu_plugin_scoreboard_free(vcpus);
> }
>
> +typedef struct {
> + const char* suffix;
> + unsigned long multipler;
> +} scale_entry;
> +
> +/* a bit like units.h but not binary */
> +static scale_entry scales[] = {
> + { "khz", 1000 },
> + { "mhz", 1000 * 1000 },
> + { "ghz", 1000 * 1000 * 1000 },
> +};
> +
> QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
> const qemu_info_t *info, int argc,
> char **argv)
> @@ -137,12 +151,19 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
> char *opt = argv[i];
> g_auto(GStrv) tokens = g_strsplit(opt, "=", 2);
> if (g_strcmp0(tokens[0], "ips") == 0) {
> - max_insn_per_second = g_ascii_strtoull(tokens[1], NULL, 10);
> + char *endptr = NULL;
> + max_insn_per_second = g_ascii_strtoull(tokens[1], &endptr, 10);
> if (!max_insn_per_second && errno) {
> fprintf(stderr, "%s: couldn't parse %s (%s)\n",
> __func__, tokens[1], g_strerror(errno));
> return -1;
> }
> + for (int j = 0; j < ARRAY_SIZE(scales); j++) {
> + if (g_str_has_suffix(endptr, scales[j].suffix)) {
> + max_insn_per_second *= scales[j].multipler;
> + break;
> + }
Could we add an error in case the present suffix is not recognized, with
the list of available ones?
As well, can lower the suffix string, so people are free to use any case.
> + }
> } else {
> fprintf(stderr, "option parsing failed: %s\n", opt);
> return -1;
With the remark above,
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
next prev parent reply other threads:[~2025-04-28 16:57 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-28 12:59 [PATCH 0/9] Maintainer updates for May (testing, plugins, virtio-gpu) Alex Bennée
2025-04-28 12:59 ` [PATCH 1/9] tests/docker: expose $HOME/.cache as docker volume Alex Bennée
2025-04-28 14:00 ` Thomas Huth
2025-04-28 12:59 ` [PATCH 2/9] gitlab: disable debug info on CI builds Alex Bennée
2025-04-28 14:01 ` Thomas Huth
2025-04-28 14:20 ` Peter Maydell
2025-05-02 7:45 ` Manos Pitsidianakis
2025-04-28 12:59 ` [PATCH 3/9] tests/tcg: make aarch64 boot.S handle different starting modes Alex Bennée
2025-05-02 7:54 ` Manos Pitsidianakis
2025-04-28 12:59 ` [PATCH 4/9] contrib/plugins: add a scaling factor to the ips arg Alex Bennée
2025-04-28 16:56 ` Pierrick Bouvier [this message]
2025-04-28 12:59 ` [PATCH 5/9] contrib/plugins: allow setting of instructions per quantum Alex Bennée
2025-04-28 16:49 ` Pierrick Bouvier
2025-04-28 12:59 ` [PATCH 6/9] MAINTAINERS: add myself to virtio-gpu for Odd Fixes Alex Bennée
2025-04-28 13:52 ` Thomas Huth
2025-04-29 18:56 ` Dmitry Osipenko
2025-05-04 7:20 ` Akihiko Odaki
2025-05-05 16:07 ` Dmitry Osipenko
2025-05-06 10:13 ` Alex Bennée
2025-04-28 12:59 ` [PATCH 7/9] hw/display: re-arrange memory region tracking Alex Bennée
2025-04-28 12:59 ` [PATCH 8/9] virtio-gpu: fix hang under TCG when unmapping blob Alex Bennée
2025-04-29 18:48 ` Dmitry Osipenko
2025-04-29 21:19 ` Alex Bennée
2025-04-29 21:26 ` Dmitry Osipenko
2025-04-30 10:24 ` Alex Bennée
2025-04-30 20:42 ` Dmitry Osipenko
2025-05-04 8:19 ` Akihiko Odaki
2025-05-06 10:12 ` Alex Bennée
2025-05-08 11:44 ` Akihiko Odaki
2025-04-28 12:59 ` [PATCH 9/9] virtio-gpu: refactor async blob unmapping Alex Bennée
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=7f047917-75b5-46ff-9069-3da224931777@linaro.org \
--to=pierrick.bouvier@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=david@redhat.com \
--cc=erdnaxe@crans.org \
--cc=ma.mandourr@gmail.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.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).