On Tue, Aug 25, 2026 at 5:47 PM Richard Henderson
<[email protected]> wrote:
>
>
> On 8/22/26 12:08, Matt Turner wrote:
> > diff --git ./accel/tcg/tcg-all.c ./accel/tcg/tcg-all.c
> > index 7186c10cf0..c9874a286a 100644
> > --- ./accel/tcg/tcg-all.c
> > +++ ./accel/tcg/tcg-all.c
> > @@ -254,6 +254,7 @@ static void tcg_set_one_insn_per_tb(Object *obj, bool 
> > value, Error **errp)
> >       s->one_insn_per_tb = value;
> >       /* Set the global also: this changes the behaviour */
> >       qatomic_set(&one_insn_per_tb, value);
> > +    tcg_update_all_cflags();
> >   }
> ...
> > diff --git ./util/log.c ./util/log.c
> > index 7cffbc1bf8..3fa46a67fa 100644
> > --- ./util/log.c
> > +++ ./util/log.c
> > @@ -27,6 +27,7 @@
> >   #include "qemu/thread.h"
> >   #include "qemu/lockable.h"
> >   #include "qemu/rcu.h"
> > +#include "system/tcg.h"
> >   #ifdef CONFIG_LINUX
> >   #include <sys/syscall.h>
> >   #endif
> > @@ -301,6 +302,9 @@ static bool qemu_set_log_internal(const char *filename, 
> > bool changed_name,
> >   #endif
> >       qemu_loglevel = log_flags;
> >
> > +    /* CPU_LOG_TB_NOCHAIN feeds into the per-CPU cflags. */
> > +    tcg_update_all_cflags();
>
> I'm not keen on these placements.  I know they're needed for HMP, but
> I'd rather have these calls in HMP, after updating state.
>
> > +void tcg_update_cflags(CPUState *cpu)
> > +{
> > +}
> > +
> Where does this get used outside of tcg itself?  I think only
> tcg_update_all_cflags() should be stubbed, and indeed the only one
> visible outside of accel/tcg/.

cpu_single_step(), in cpu-target.c, which is in both user_ss and
system_ss and always linked. So both entry points need stubbing.

> Phil, is the stub itself better placed in accel/stubs/ or accel/tcg/?
> I'm unsure what organization you're working toward.

v4 moves it to accel/stubs/tcg-stub.c, alongside the other accelerator
stubs. Verified --disable-tcg links. Easy to move again if Phil
prefers elsewhere.

Reply via email to