Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys



This is experimental: we use l_cpu to mean a number of things and this
involves changing it to a different value than curcpu() in a running LWP,
which we have not done before.  I'll see about making it more robust.

Andrew

On Fri, Dec 06, 2019 at 09:36:11PM +0000, Andrew Doran wrote:

> Module Name:	src
> Committed By:	ad
> Date:		Fri Dec  6 21:36:11 UTC 2019
> 
> Modified Files:
> 	src/sys/kern: kern_exec.c kern_exit.c kern_idle.c kern_lwp.c kern_sig.c
> 	    kern_sleepq.c kern_softint.c kern_synch.c
> 	src/sys/sys: sched.h
> 
> Log Message:
> Make it possible to call mi_switch() and immediately switch to another CPU.
> This seems to take about 3us on my Intel system.  Two changes required:
> 
> - Have the caller to mi_switch() be responsible for calling spc_lock().
> - Avoid using l->l_cpu in mi_switch().
> 
> While here:
> 
> - Add a couple of calls to membar_enter()
> - Have the idle LWP set itself to LSIDL, to match softint_thread().
> - Remove unused return value from mi_switch().
> 
> 
> To generate a diff of this commit:
> cvs rdiff -u -r1.484 -r1.485 src/sys/kern/kern_exec.c
> cvs rdiff -u -r1.277 -r1.278 src/sys/kern/kern_exit.c
> cvs rdiff -u -r1.27 -r1.28 src/sys/kern/kern_idle.c
> cvs rdiff -u -r1.216 -r1.217 src/sys/kern/kern_lwp.c
> cvs rdiff -u -r1.380 -r1.381 src/sys/kern/kern_sig.c
> cvs rdiff -u -r1.53 -r1.54 src/sys/kern/kern_sleepq.c
> cvs rdiff -u -r1.54 -r1.55 src/sys/kern/kern_softint.c
> cvs rdiff -u -r1.328 -r1.329 src/sys/kern/kern_synch.c
> cvs rdiff -u -r1.79 -r1.80 src/sys/sys/sched.h
> 
> Please note that diffs are not public domain; they are subject to the
> copyright notices on the relevant files.
> 


Home | Main Index | Thread Index | Old Index