On 06/06/16 11:54, Alex Bennée wrote: > Sergey Fedorov <serge.f...@gmail.com> writes: > >> On 15/04/16 17:23, Alex Bennée wrote: >>> diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h >>> index f695577..858055b 100644 >>> --- a/include/exec/exec-all.h >>> +++ b/include/exec/exec-all.h >>> @@ -307,6 +307,7 @@ struct TBContext { >>> >>> void tb_free(TranslationBlock *tb); >>> void tb_flush(CPUState *cpu); >>> +void tb_flush_safe(CPUState *cpu); >> Do we really want to have both tb_flush_safe() and tb_flush()? > I guess if we are going to include user-mode in the party ;-) > >
User-mode should be fine; we take care of it: +void tb_flush_safe(CPUState *cpu) +{ +#ifdef CONFIG_SOFTMMU + async_safe_run_on_cpu(cpu, tb_flush_work, NULL); +#else + qemu_log("Safe flushing of TBs not implemented for linux-user\n"); + tb_flush(cpu); +#endif +} + Kind regards, Sergey