On Tue, 18 Apr 2023 at 09:05, Richard Henderson <richard.henderson@xxxxxxxxxx> wrote: > > On 4/17/23 18:40, Peter Maydell wrote: > > @@ -219,8 +221,8 @@ static void tcg_set_one_insn_per_tb(Object *obj, bool value, Error **errp) > > { > > TCGState *s = TCG_STATE(obj); > > s->one_insn_per_tb = value; > > - /* For the moment, set the global also: this changes the behaviour */ > > - singlestep = value; > > + /* Set the global also: this changes the behaviour */ > > + qatomic_set(&one_insn_per_tb, value); > > } > > Oh, one question: is it worth having the TCGState member at all? > Seems like these accessors could work just fine with only the global. True at the moment, but if we do ever want to do that refactoring to use a tcg_global_cflags, then we will need the TCGState field, because you can't go from a tcg_global_cflags value back to "what are the one_insn_per_tb and nochain settings currently?". thanks -- PMM