* [PATCH 0/2] Bug fixes for plugins
@ 2024-06-12 19:51 Pierrick Bouvier
2024-06-12 19:51 ` [PATCH 1/2] plugins: missing QEMU_PLUGIN_API for time control Pierrick Bouvier
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Pierrick Bouvier @ 2024-06-12 19:51 UTC (permalink / raw)
To: qemu-devel
Cc: Pierrick Bouvier, Alex Bennée, Paolo Bonzini,
Richard Henderson, Alexandre Iooss, Mahmoud Mandour
Those two commits are meant to be applied on top of current series
<20240612153508.1532940-1-alex.bennee@linaro.org>
The first fixes issue with windows plugins, while the second is a bug that
concerns memory callbacks, and due to a previous refactoring.
Pierrick Bouvier (2):
plugins: missing QEMU_PLUGIN_API for time control
plugins: fix inject_mem_cb rw masking
include/qemu/qemu-plugin.h | 2 ++
accel/tcg/plugin-gen.c | 4 ++--
plugins/core.c | 4 ++--
3 files changed, 6 insertions(+), 4 deletions(-)
--
2.39.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] plugins: missing QEMU_PLUGIN_API for time control
2024-06-12 19:51 [PATCH 0/2] Bug fixes for plugins Pierrick Bouvier
@ 2024-06-12 19:51 ` Pierrick Bouvier
2024-06-12 19:51 ` [PATCH 2/2] plugins: fix inject_mem_cb rw masking Pierrick Bouvier
2024-06-12 21:32 ` [PATCH 0/2] Bug fixes for plugins Alex Bennée
2 siblings, 0 replies; 4+ messages in thread
From: Pierrick Bouvier @ 2024-06-12 19:51 UTC (permalink / raw)
To: qemu-devel
Cc: Pierrick Bouvier, Alex Bennée, Paolo Bonzini,
Richard Henderson, Alexandre Iooss, Mahmoud Mandour
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
include/qemu/qemu-plugin.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/qemu/qemu-plugin.h b/include/qemu/qemu-plugin.h
index 80b1637cede..310ee10f301 100644
--- a/include/qemu/qemu-plugin.h
+++ b/include/qemu/qemu-plugin.h
@@ -670,6 +670,7 @@ void qemu_plugin_register_vcpu_mem_inline_per_vcpu(
*
* Returns an opaque handle or NULL if fails
*/
+QEMU_PLUGIN_API
const void *qemu_plugin_request_time_control(void);
/**
@@ -682,6 +683,7 @@ const void *qemu_plugin_request_time_control(void);
*
* Start time is 0.
*/
+QEMU_PLUGIN_API
void qemu_plugin_update_ns(const void *handle, int64_t time);
typedef void
--
2.39.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] plugins: fix inject_mem_cb rw masking
2024-06-12 19:51 [PATCH 0/2] Bug fixes for plugins Pierrick Bouvier
2024-06-12 19:51 ` [PATCH 1/2] plugins: missing QEMU_PLUGIN_API for time control Pierrick Bouvier
@ 2024-06-12 19:51 ` Pierrick Bouvier
2024-06-12 21:32 ` [PATCH 0/2] Bug fixes for plugins Alex Bennée
2 siblings, 0 replies; 4+ messages in thread
From: Pierrick Bouvier @ 2024-06-12 19:51 UTC (permalink / raw)
To: qemu-devel
Cc: Pierrick Bouvier, Alex Bennée, Paolo Bonzini,
Richard Henderson, Alexandre Iooss, Mahmoud Mandour
These are not booleans, but masks.
Issue found by Richard Henderson.
Fixes: f86fd4d8721 ("plugins: distinct types for callbacks")
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
accel/tcg/plugin-gen.c | 4 ++--
plugins/core.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/accel/tcg/plugin-gen.c b/accel/tcg/plugin-gen.c
index cc1634e7a6b..b6bae32b997 100644
--- a/accel/tcg/plugin-gen.c
+++ b/accel/tcg/plugin-gen.c
@@ -240,13 +240,13 @@ static void inject_mem_cb(struct qemu_plugin_dyn_cb *cb,
{
switch (cb->type) {
case PLUGIN_CB_MEM_REGULAR:
- if (rw && cb->regular.rw) {
+ if (rw & cb->regular.rw) {
gen_mem_cb(&cb->regular, meminfo, addr);
}
break;
case PLUGIN_CB_INLINE_ADD_U64:
case PLUGIN_CB_INLINE_STORE_U64:
- if (rw && cb->inline_insn.rw) {
+ if (rw & cb->inline_insn.rw) {
inject_cb(cb);
}
break;
diff --git a/plugins/core.c b/plugins/core.c
index badede28cf9..9d737d82787 100644
--- a/plugins/core.c
+++ b/plugins/core.c
@@ -589,7 +589,7 @@ void qemu_plugin_vcpu_mem_cb(CPUState *cpu, uint64_t vaddr,
switch (cb->type) {
case PLUGIN_CB_MEM_REGULAR:
- if (rw && cb->regular.rw) {
+ if (rw & cb->regular.rw) {
cb->regular.f.vcpu_mem(cpu->cpu_index,
make_plugin_meminfo(oi, rw),
vaddr, cb->regular.userp);
@@ -597,7 +597,7 @@ void qemu_plugin_vcpu_mem_cb(CPUState *cpu, uint64_t vaddr,
break;
case PLUGIN_CB_INLINE_ADD_U64:
case PLUGIN_CB_INLINE_STORE_U64:
- if (rw && cb->inline_insn.rw) {
+ if (rw & cb->inline_insn.rw) {
exec_inline_op(cb->type, &cb->inline_insn, cpu->cpu_index);
}
break;
--
2.39.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 0/2] Bug fixes for plugins
2024-06-12 19:51 [PATCH 0/2] Bug fixes for plugins Pierrick Bouvier
2024-06-12 19:51 ` [PATCH 1/2] plugins: missing QEMU_PLUGIN_API for time control Pierrick Bouvier
2024-06-12 19:51 ` [PATCH 2/2] plugins: fix inject_mem_cb rw masking Pierrick Bouvier
@ 2024-06-12 21:32 ` Alex Bennée
2 siblings, 0 replies; 4+ messages in thread
From: Alex Bennée @ 2024-06-12 21:32 UTC (permalink / raw)
To: Pierrick Bouvier
Cc: qemu-devel, Paolo Bonzini, Richard Henderson, Alexandre Iooss,
Mahmoud Mandour
Pierrick Bouvier <pierrick.bouvier@linaro.org> writes:
> Those two commits are meant to be applied on top of current series
> <20240612153508.1532940-1-alex.bennee@linaro.org>
>
> The first fixes issue with windows plugins, while the second is a bug that
> concerns memory callbacks, and due to a previous refactoring.
Queued to maintainer/june-2024-omnibus, thanks.
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-06-12 21:32 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-12 19:51 [PATCH 0/2] Bug fixes for plugins Pierrick Bouvier
2024-06-12 19:51 ` [PATCH 1/2] plugins: missing QEMU_PLUGIN_API for time control Pierrick Bouvier
2024-06-12 19:51 ` [PATCH 2/2] plugins: fix inject_mem_cb rw masking Pierrick Bouvier
2024-06-12 21:32 ` [PATCH 0/2] Bug fixes for plugins Alex Bennée
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).