On Thu, 26 Oct 2023 14:59:13 -0400 Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> wrote: > > Steven, check out > > > > arch/x86/include/asm/percpu.h > > > > for a rough implementation of a 'xchg()' without SMP coherency, just > > cpu-local one (ie atomic wrt being preempted by the kernel, but not > > atomic wrt other CPU's accessing the same variable concurrently) > > Actually Steven does not need a xchg to test-and-set a single bit which > is only accessed concurrently between kernel and userspace from the same > thread. Either "bts" or "andb" should work fine. Thanks Linus and Mathieu! Yeah, I just changed it to andb and that works just as well (or better). When I first made the change, it became substantially worse. But then I realized it was because I had "addb" and not "andb" :-D -- Steve