From: Martin Pieuchot Subject: Re: sched_unpeg_proc() To: Miod Vallat Cc: tech@openbsd.org Date: Mon, 8 Jul 2024 15:38:42 +0200 On 08/07/24(Mon) 12:25, Miod Vallat wrote: > > Index: kern/kern_smr.c > > =================================================================== > > RCS file: /cvs/src/sys/kern/kern_smr.c,v > > diff -u -p -r1.16 kern_smr.c > > --- kern/kern_smr.c 14 Aug 2022 01:58:27 -0000 1.16 > > +++ kern/kern_smr.c 8 Jul 2024 10:00:15 -0000 > > @@ -162,8 +162,8 @@ smr_grace_wait(void) > > continue; > > sched_peg_curproc(ci); > > KASSERT(ci->ci_schedstate.spc_smrgp == smrgp); > > + sched_unpeg_curproc(); > > } > > - atomic_clearbits_int(&curproc->p_flag, P_CPUPEG); > > Are you sure you want to move the unpeg call into the for() loop? I need this in dumbsched because I modify the per-CPU `spc' descriptor and I need to undo the states before picking up the next CPU.