From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: qemu-devel@nongnu.org, Mahmoud Mandour <ma.mandourr@gmail.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>,
Alexandre Iooss <erdnaxe@crans.org>
Subject: Re: [PATCH v2 02/14] plugins: scoreboard API
Date: Wed, 31 Jan 2024 11:44:18 +0400 [thread overview]
Message-ID: <ebbd8949-fb51-4cd0-9fe0-0fbd765c8331@linaro.org> (raw)
In-Reply-To: <87il3grut0.fsf@draig.linaro.org>
On 1/26/24 19:14, Alex Bennée wrote:
>> + need_realloc = TRUE;
>> + }
>> + plugin.scoreboard_size = cpu->cpu_index + 1;
>> + g_assert(plugin.scoreboard_size <= plugin.scoreboard_alloc_size);
>> +
>> + if (g_hash_table_size(plugin.scoreboards) == 0) {
>> + /* nothing to do, we just updated sizes for future scoreboards */
>> + return;
>> + }
>> +
>> + if (need_realloc) {
>> +#ifdef CONFIG_USER_ONLY
>> + /**
>> + * cpus must be stopped, as some tb might still use an existing
>> + * scoreboard.
>> + */
>> + start_exclusive();
>> +#endif
>
> Hmm this seems wrong to be USER_ONLY. While we don't expect to resize in
> system mode if we did we certainly want to do it during exclusive
> periods.
>
After investigation, current_cpu TLS var is not set in cpus-common.c at
this point.
Indeed we are not on any cpu_exec path, but in the cpu_realize_fn when
calling this (through qemu_plugin_vcpu_init_hook).
One obvious fix is to check if it's NULL or not, like:
--- a/cpu-common.c
+++ b/cpu-common.c
@@ -193,7 +193,7 @@ void start_exclusive(void)
CPUState *other_cpu;
int running_cpus;
- if (current_cpu->exclusive_context_count) {
+ if (current_cpu && current_cpu->exclusive_context_count) {
current_cpu->exclusive_context_count++;
return;
}
Does anyone suggest another possible fix? (like define current_cpu
somewhere, or moving qemu_plugin_vcpu_init_hook call).
next prev parent reply other threads:[~2024-01-31 7:45 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-18 3:23 [PATCH v2 00/14] TCG Plugin inline operation enhancement Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 01/14] plugins: implement inline operation relative to cpu_index Pierrick Bouvier
2024-01-26 12:07 ` Alex Bennée
2024-01-29 10:10 ` Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 02/14] plugins: scoreboard API Pierrick Bouvier
2024-01-26 15:14 ` Alex Bennée
2024-01-30 7:37 ` Pierrick Bouvier
2024-01-30 10:23 ` Alex Bennée
2024-01-30 11:10 ` Pierrick Bouvier
2024-01-31 7:44 ` Pierrick Bouvier [this message]
2024-02-01 5:28 ` Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 03/14] docs/devel: plugins can trigger a tb flush Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 04/14] plugins: add inline operation per vcpu Pierrick Bouvier
2024-01-26 15:17 ` Alex Bennée
2024-01-18 3:23 ` [PATCH v2 05/14] tests/plugin: add test plugin for inline operations Pierrick Bouvier
2024-01-26 16:05 ` Alex Bennée
2024-01-30 7:49 ` Pierrick Bouvier
2024-01-30 14:52 ` Alex Bennée
2024-01-30 16:40 ` Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 06/14] tests/plugin/mem: migrate to new per_vcpu API Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 07/14] tests/plugin/insn: " Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 08/14] tests/plugin/bb: " Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 09/14] contrib/plugins/hotblocks: " Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 10/14] contrib/plugins/howvec: " Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 11/14] plugins: remove non per_vcpu inline operation from API Pierrick Bouvier
2024-01-26 16:26 ` Alex Bennée
2024-01-30 7:53 ` Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 12/14] plugins: register inline op with a qemu_plugin_u64_t Pierrick Bouvier
2024-01-18 3:23 ` [PATCH v2 13/14] MAINTAINERS: Add myself as reviewer for TCG Plugins Pierrick Bouvier
2024-01-26 16:27 ` Alex Bennée
2024-01-18 3:23 ` [PATCH v2 14/14] contrib/plugins/execlog: fix new warnings Pierrick Bouvier
2024-01-26 16:31 ` Alex Bennée
2024-01-30 7:51 ` Pierrick Bouvier
2024-01-26 9:21 ` [PATCH v2 00/14] TCG Plugin inline operation enhancement Pierrick Bouvier
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=ebbd8949-fb51-4cd0-9fe0-0fbd765c8331@linaro.org \
--to=pierrick.bouvier@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=erdnaxe@crans.org \
--cc=ma.mandourr@gmail.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/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).