Index | Thread | Search

From:
Martin Pieuchot <mpi@openbsd.org>
Subject:
Re: sched_unpeg_proc()
To:
Miod Vallat <miod@online.fr>
Cc:
tech@openbsd.org
Date:
Mon, 8 Jul 2024 15:38:42 +0200

Download raw body.

Thread
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.