mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-09-08 16:07:39 -06:00
contrib/plugins: allow setting of instructions per quantum
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. Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-ID: <20250603110204.838117-7-alex.bennee@linaro.org>
This commit is contained in:
parent
0dd99ef250
commit
002655381f
2 changed files with 18 additions and 1 deletions
|
@ -145,6 +145,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);
|
||||
|
@ -175,6 +177,14 @@ 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);
|
||||
|
||||
if (!max_insn_per_quantum) {
|
||||
fprintf(stderr, "bad ipq value: %s\n", tokens[0]);
|
||||
return -1;
|
||||
}
|
||||
ipq_set = true;
|
||||
} else {
|
||||
fprintf(stderr, "option parsing failed: %s\n", opt);
|
||||
return -1;
|
||||
|
@ -182,7 +192,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",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue