On Thu, May 30, 2024 at 03:29:41PM -0700, Pierrick Bouvier wrote: > On 5/30/24 12:42, Alex Bennée wrote: > > Aside from the round robin threads this is all common code. By > > moving the halt_cond setup we also no longer need hacks to work around > > the race between QOM object creation and thread creation. > > > > It is a little ugly to free stuff up for the round robin thread but > > better it deal with its own specialises than making the other > > accelerators jump through hoops. > > > > Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> ... > > diff --git a/target/i386/nvmm/nvmm-accel-ops.c b/target/i386/nvmm/nvmm-accel-ops.c > > index 6b2bfd9b9c..0ba31201e2 100644 > > --- a/target/i386/nvmm/nvmm-accel-ops.c > > +++ b/target/i386/nvmm/nvmm-accel-ops.c > > @@ -64,9 +64,6 @@ static void nvmm_start_vcpu_thread(CPUState *cpu) > > { > > char thread_name[VCPU_THREAD_NAME_SIZE]; > > - cpu->thread = g_new0(QemuThread, 1); > > - cpu->halt_cond = g_new0(QemuCond, 1); > > - qemu_cond_init(cpu->halt_cond); > > snprintf(thread_name, VCPU_THREAD_NAME_SIZE, "CPU %d/NVMM", > > cpu->cpu_index); > > qemu_thread_create(cpu->thread, thread_name, qemu_nvmm_cpu_thread_fn, I haven't tested it since I don't have a recent qemu build but I doubt it will give issues as its main qemu stuff. Reinoud