On Tue, Oct 26, 2021 at 10:10:44AM -0700, Richard Henderson wrote: > On 10/26/21 9:34 AM, Stefan Hajnoczi wrote: > > On Tue, Oct 26, 2021 at 08:10:16AM -0700, Richard Henderson wrote: > > > On 10/26/21 6:22 AM, Stefan Hajnoczi wrote: > > > > If "safe" TLS variables are opt-in then we'll likely have obscure bugs > > > > when code changes to access a TLS variable that was previously never > > > > accessed from a coroutine. There is no compiler error and no way to > > > > detect this. When it happens debugging it is painful. > > > > > > Co-routines are never used in user-only builds. > > > > If developers have the choice of using __thread then bugs can slip > > through. > > Huh? How. No, really.
If there is no checkpatch.pl error then more instances of __thread will slip in. Not everyone in the QEMU community will be aware of this issue, so it's likely that code with __thread will get merged. Subsystems that use coroutines today include block, 9p, mpqemu, io channels, migration, colo, and monitor commands. I understand that qemu-user is particularly unlikely to use coroutines. Thomas' suggestion sounds good to me. Let's allow __thread only in subsystems where it's safe. Stefan
signature.asc
Description: PGP signature
