All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Akihiko Odaki <akihiko.odaki@daynix.com>
Cc: qemu-devel@nongnu.org,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"David Hildenbrand" <david@redhat.com>,
	"Dmitry Osipenko" <dmitry.osipenko@collabora.com>,
	"Laurent Vivier" <lvivier@redhat.com>,
	qemu-arm@nongnu.org, "Mahmoud Mandour" <ma.mandourr@gmail.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Sriram Yagnaraman" <sriram.yagnaraman@ericsson.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Peter Xu" <peterx@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"John Snow" <jsnow@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Fabiano Rosas" <farosas@suse.de>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Alexandre Iooss" <erdnaxe@crans.org>
Subject: Re: [PATCH v2 06/14] contrib/plugins: allow setting of instructions per quantum
Date: Mon, 19 May 2025 16:14:02 +0100	[thread overview]
Message-ID: <87wmacr5tx.fsf@draig.linaro.org> (raw)
In-Reply-To: <f0890b48-9b80-4ae7-892a-c45fd3dee089@daynix.com> (Akihiko Odaki's message of "Sat, 10 May 2025 13:45:28 +0900")

Akihiko Odaki <akihiko.odaki@daynix.com> writes:

> On 2025/05/06 21:57, Alex Bennée wrote:
>> The default is we update time every 1/10th of a second or so. However
>> for some cases we might want to update time more frequently. Allow
>> this to be set via the command line through the ipq argument.
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
>> ---
>> v2
>>    - checkpatch fixes.
>> ---
>>   docs/about/emulation.rst |  4 ++++
>>   contrib/plugins/ips.c    | 10 +++++++++-
>>   2 files changed, 13 insertions(+), 1 deletion(-)
>> diff --git a/docs/about/emulation.rst b/docs/about/emulation.rst
>> index a72591ee4d..456d01d5b0 100644
>> --- a/docs/about/emulation.rst
>> +++ b/docs/about/emulation.rst
>> @@ -811,6 +811,10 @@ This plugin can limit the number of Instructions Per Second that are executed::
>>     * - ips=N
>>       - Maximum number of instructions per cpu that can be executed in one second.
>>         The plugin will sleep when the given number of instructions is reached.
>> +  * - ipq=N
>> +    - Instructions per quantum. How many instructions before we re-calculate time.
>> +      The lower the number the more accurate time will be, but the less efficient the plugin.
>> +      Defaults to ips/10
>>     Other emulation features
>>   ------------------------
>> diff --git a/contrib/plugins/ips.c b/contrib/plugins/ips.c
>> index 9b166a7d6c..62ed8ddd08 100644
>> --- a/contrib/plugins/ips.c
>> +++ b/contrib/plugins/ips.c
>> @@ -147,6 +147,8 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
>>                                              const qemu_info_t *info, int argc,
>>                                              char **argv)
>>   {
>> +    bool ipq_set = false;
>> +
>>       for (int i = 0; i < argc; i++) {
>>           char *opt = argv[i];
>>           g_auto(GStrv) tokens = g_strsplit(opt, "=", 2);
>> @@ -177,6 +179,9 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
>>                       return -1;
>>                   }
>>               }
>> +        } else if (g_strcmp0(tokens[0], "ipq") == 0) {
>> +            max_insn_per_quantum = g_ascii_strtoull(tokens[1], NULL, 10);
>
> It may be nice to have an error check performed for ips.

We do catch most errors bellow on max_insn_per_quantum = 0, but I can
check up here as well.

>
>> +            ipq_set = true;
>>           } else {
>>               fprintf(stderr, "option parsing failed: %s\n", opt);
>>               return -1;
>> @@ -184,7 +189,10 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
>>       }
>>         vcpus = qemu_plugin_scoreboard_new(sizeof(vCPUTime));
>> -    max_insn_per_quantum = max_insn_per_second / NUM_TIME_UPDATE_PER_SEC;
>> +
>> +    if (!ipq_set) {
>> +        max_insn_per_quantum = max_insn_per_second / NUM_TIME_UPDATE_PER_SEC;
>> +    }
>>         if (max_insn_per_quantum == 0) {
>>           fprintf(stderr, "minimum of %d instructions per second needed\n",

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro

  reply	other threads:[~2025-05-19 15:14 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-06 12:57 [PATCH v2 00/14] Maintainer updates for May (testing, plugins, virtio-gpu) Alex Bennée
2025-05-06 12:57 ` [PATCH v2 01/14] tests/docker: expose $HOME/.cache/qemu as docker volume Alex Bennée
2025-05-06 12:57 ` [PATCH v2 02/14] gitlab: disable debug info on CI builds Alex Bennée
2025-05-06 12:57 ` [PATCH v2 03/14] tests/tcg: make aarch64 boot.S handle different starting modes Alex Bennée
2025-05-10  4:21   ` Akihiko Odaki
2025-05-14 13:51     ` Alex Bennée
2025-05-06 12:57 ` [PATCH v2 04/14] Running with --enable-ubsan leads to a qtest failure Alex Bennée
2025-05-10  4:27   ` Akihiko Odaki
2025-05-06 12:57 ` [PATCH v2 05/14] contrib/plugins: add a scaling factor to the ips arg Alex Bennée
2025-05-10  4:42   ` Akihiko Odaki
2025-05-19 14:54     ` Alex Bennée
2025-05-19 23:24       ` Akihiko Odaki
2025-05-06 12:57 ` [PATCH v2 06/14] contrib/plugins: allow setting of instructions per quantum Alex Bennée
2025-05-10  4:45   ` Akihiko Odaki
2025-05-19 15:14     ` Alex Bennée [this message]
2025-05-06 12:57 ` [PATCH v2 07/14] MAINTAINERS: add myself to virtio-gpu for Odd Fixes Alex Bennée
2025-05-06 12:57 ` [PATCH v2 08/14] MAINTAINERS: add Akihiko and Dmitry as reviewers Alex Bennée
2025-05-06 12:57 ` [PATCH v2 09/14] hw/display: re-arrange memory region tracking Alex Bennée
2025-05-06 12:57 ` [PATCH v2 10/14] virtio-gpu: fix hang under TCG when unmapping blob Alex Bennée
2025-05-06 12:57 ` [PATCH v2 11/14] virtio-gpu: refactor async blob unmapping Alex Bennée
2025-05-06 12:57 ` [PATCH v2 12/14] ui/gtk-gl-area: Remove extra draw call in refresh Alex Bennée
2025-05-10  4:52   ` Akihiko Odaki
2025-05-10 12:12     ` Dmitry Osipenko
2025-05-11  4:47       ` Akihiko Odaki
2025-05-12 17:01         ` Kim, Dongwon
2025-05-18  4:56           ` Akihiko Odaki
2025-05-06 12:57 ` [PATCH v2 13/14] docs: Create a uniquelabel Sphinx extension Alex Bennée
2025-05-06 12:57 ` [PATCH v2 14/14] docs: Use uniquelabel in qemu-block-drivers.rst.inc 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=87wmacr5tx.fsf@draig.linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=akihiko.odaki@daynix.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=david@redhat.com \
    --cc=dmitry.osipenko@collabora.com \
    --cc=erdnaxe@crans.org \
    --cc=farosas@suse.de \
    --cc=jsnow@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=ma.mandourr@gmail.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=philmd@linaro.org \
    --cc=pierrick.bouvier@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=sriram.yagnaraman@ericsson.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.