Message ID | 20190130004811.27372-67-cota@braap.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | per-CPU locks | expand |
On Tue, Jan 29, 2019 at 5:30 PM Emilio G. Cota <cota@braap.org> wrote: > > Soon we will call cpu_has_work without the BQL. > > Cc: Palmer Dabbelt <palmer@sifive.com> > Cc: Sagar Karandikar <sagark@eecs.berkeley.edu> > Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> > Reviewed-by: Palmer Dabbelt <palmer@sifive.com> > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Emilio G. Cota <cota@braap.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/riscv/cpu.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c > index 28d7e5302f..7b36c09fe0 100644 > --- a/target/riscv/cpu.c > +++ b/target/riscv/cpu.c > @@ -257,6 +257,9 @@ static bool riscv_cpu_has_work(CPUState *cs) > #ifndef CONFIG_USER_ONLY > RISCVCPU *cpu = RISCV_CPU(cs); > CPURISCVState *env = &cpu->env; > + > + g_assert(qemu_mutex_iothread_locked()); > + > /* > * Definition of the WFI instruction requires it to ignore the privilege > * mode and delegation registers, but respect individual enables > @@ -343,7 +346,7 @@ static void riscv_cpu_class_init(ObjectClass *c, void *data) > cc->reset = riscv_cpu_reset; > > cc->class_by_name = riscv_cpu_class_by_name; > - cc->has_work = riscv_cpu_has_work; > + cc->has_work_with_iothread_lock = riscv_cpu_has_work; > cc->do_interrupt = riscv_cpu_do_interrupt; > cc->cpu_exec_interrupt = riscv_cpu_exec_interrupt; > cc->dump_state = riscv_cpu_dump_state; > -- > 2.17.1 > >
diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 28d7e5302f..7b36c09fe0 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -257,6 +257,9 @@ static bool riscv_cpu_has_work(CPUState *cs) #ifndef CONFIG_USER_ONLY RISCVCPU *cpu = RISCV_CPU(cs); CPURISCVState *env = &cpu->env; + + g_assert(qemu_mutex_iothread_locked()); + /* * Definition of the WFI instruction requires it to ignore the privilege * mode and delegation registers, but respect individual enables @@ -343,7 +346,7 @@ static void riscv_cpu_class_init(ObjectClass *c, void *data) cc->reset = riscv_cpu_reset; cc->class_by_name = riscv_cpu_class_by_name; - cc->has_work = riscv_cpu_has_work; + cc->has_work_with_iothread_lock = riscv_cpu_has_work; cc->do_interrupt = riscv_cpu_do_interrupt; cc->cpu_exec_interrupt = riscv_cpu_exec_interrupt; cc->dump_state = riscv_cpu_dump_state;