Message ID | 20220323171751.78612-6-philippe.mathieu.daude@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | accel: Fix vCPU memory leaks | expand |
On 3/23/22 10:17, Philippe Mathieu-Daudé wrote: > From: Philippe Mathieu-Daudé<f4bug@amsat.org> > > Move TCG cflags initialization to thread handler. > Remove the duplicated assert checks. > > Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org> > --- > accel/tcg/tcg-accel-ops-mttcg.c | 5 ++--- > accel/tcg/tcg-accel-ops-rr.c | 7 +++---- > 2 files changed, 5 insertions(+), 7 deletions(-) Why move into the thread handler? Seems fine where it is. I agree with the removal of duplicate asserts, but I'd have removed them the other way around... r~
On 3/23/22 10:17, Philippe Mathieu-Daudé wrote: > From: Philippe Mathieu-Daudé <f4bug@amsat.org> > > Move TCG cflags initialization to thread handler. > Remove the duplicated assert checks. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > accel/tcg/tcg-accel-ops-mttcg.c | 5 ++--- > accel/tcg/tcg-accel-ops-rr.c | 7 +++---- > 2 files changed, 5 insertions(+), 7 deletions(-) Queued to tcg-next. r~
diff --git a/accel/tcg/tcg-accel-ops-mttcg.c b/accel/tcg/tcg-accel-ops-mttcg.c index ea2b741deb..80609964a6 100644 --- a/accel/tcg/tcg-accel-ops-mttcg.c +++ b/accel/tcg/tcg-accel-ops-mttcg.c @@ -71,6 +71,8 @@ static void *mttcg_cpu_thread_fn(void *arg) assert(tcg_enabled()); g_assert(!icount_enabled()); + tcg_cpu_init_cflags(cpu, current_machine->smp.max_cpus > 1); + rcu_register_thread(); force_rcu.notifier.notify = mttcg_force_rcu; force_rcu.cpu = cpu; @@ -140,9 +142,6 @@ void mttcg_start_vcpu_thread(CPUState *cpu) { char thread_name[VCPU_THREAD_NAME_SIZE]; - g_assert(tcg_enabled()); - tcg_cpu_init_cflags(cpu, current_machine->smp.max_cpus > 1); - cpu->thread = g_new0(QemuThread, 1); cpu->halt_cond = g_malloc0(sizeof(QemuCond)); qemu_cond_init(cpu->halt_cond); diff --git a/accel/tcg/tcg-accel-ops-rr.c b/accel/tcg/tcg-accel-ops-rr.c index b287110766..de8af32af7 100644 --- a/accel/tcg/tcg-accel-ops-rr.c +++ b/accel/tcg/tcg-accel-ops-rr.c @@ -153,7 +153,9 @@ static void *rr_cpu_thread_fn(void *arg) Notifier force_rcu; CPUState *cpu = arg; - assert(tcg_enabled()); + g_assert(tcg_enabled()); + tcg_cpu_init_cflags(cpu, false); + rcu_register_thread(); force_rcu.notify = rr_force_rcu; rcu_add_force_rcu_notifier(&force_rcu); @@ -276,9 +278,6 @@ void rr_start_vcpu_thread(CPUState *cpu) static QemuCond *single_tcg_halt_cond; static QemuThread *single_tcg_cpu_thread; - g_assert(tcg_enabled()); - tcg_cpu_init_cflags(cpu, false); - if (!single_tcg_cpu_thread) { cpu->thread = g_new0(QemuThread, 1); cpu->halt_cond = g_new0(QemuCond, 1);