[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 05/12] tests/plugin/mem: fix race condition with callbacks
|
From: |
Pierrick Bouvier |
|
Subject: |
[PATCH 05/12] tests/plugin/mem: fix race condition with callbacks |
|
Date: |
Thu, 11 Jan 2024 18:23:18 +0400 |
Introduce a lock so global count is correct.
This was found by comparing with new inline per_vcpu inline op.
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
tests/plugin/mem.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tests/plugin/mem.c b/tests/plugin/mem.c
index 44e91065ba7..beca8232342 100644
--- a/tests/plugin/mem.c
+++ b/tests/plugin/mem.c
@@ -22,6 +22,7 @@ static uint64_t io_count;
static bool do_inline, do_callback;
static bool do_haddr;
static enum qemu_plugin_mem_rw rw = QEMU_PLUGIN_MEM_RW;
+static GMutex lock;
static void plugin_exit(qemu_plugin_id_t id, void *p)
{
@@ -42,6 +43,7 @@ static void plugin_exit(qemu_plugin_id_t id, void *p)
static void vcpu_mem(unsigned int cpu_index, qemu_plugin_meminfo_t meminfo,
uint64_t vaddr, void *udata)
{
+ g_mutex_lock(&lock);
if (do_haddr) {
struct qemu_plugin_hwaddr *hwaddr;
hwaddr = qemu_plugin_get_hwaddr(meminfo, vaddr);
@@ -53,6 +55,7 @@ static void vcpu_mem(unsigned int cpu_index,
qemu_plugin_meminfo_t meminfo,
} else {
cb_mem_count++;
}
+ g_mutex_unlock(&lock);
}
static void vcpu_tb_trans(qemu_plugin_id_t id, struct qemu_plugin_tb *tb)
--
2.43.0
- Re: [PATCH 04/12] tests/plugin/inline: migrate to new per_vcpu API, (continued)
- [PATCH 03/12] tests/plugin: add test plugin for inline operations, Pierrick Bouvier, 2024/01/11
- Re: [PATCH 03/12] tests/plugin: add test plugin for inline operations, Philippe Mathieu-Daudé, 2024/01/11
- Re: [PATCH 03/12] tests/plugin: add test plugin for inline operations, Pierrick Bouvier, 2024/01/11
- Re: [PATCH 03/12] tests/plugin: add test plugin for inline operations, Alex Bennée, 2024/01/12
- Re: [PATCH 03/12] tests/plugin: add test plugin for inline operations, Pierrick Bouvier, 2024/01/13
- Re: [PATCH 03/12] tests/plugin: add test plugin for inline operations, Alex Bennée, 2024/01/13
- Re: [PATCH 03/12] tests/plugin: add test plugin for inline operations, Pierrick Bouvier, 2024/01/15
- Re: [PATCH 03/12] tests/plugin: add test plugin for inline operations, Alex Bennée, 2024/01/15
- Re: [PATCH 03/12] tests/plugin: add test plugin for inline operations, Pierrick Bouvier, 2024/01/16
[PATCH 05/12] tests/plugin/mem: fix race condition with callbacks,
Pierrick Bouvier <=
[PATCH 02/12] plugins: add inline operation per vcpu, Pierrick Bouvier, 2024/01/11
[PATCH 06/12] tests/plugin/mem: migrate to new per_vcpu API, Pierrick Bouvier, 2024/01/11
[PATCH 07/12] tests/plugin/insn: migrate to new per_vcpu API, Pierrick Bouvier, 2024/01/11
[PATCH 09/12] contrib/plugins/hotblocks: migrate to new per_vcpu API, Pierrick Bouvier, 2024/01/11
[PATCH 08/12] tests/plugin/bb: migrate to new per_vcpu API, Pierrick Bouvier, 2024/01/11