Subject: Context switching performance on VAC systems
To: None <tech-kern@netbsd.org>
From: Neil A. Carson <neil@causality.com>
List: tech-kern
Date: 03/15/1999 13:31:43
Hello,

So I had this thought last night, on systems where context switches
involve long-time cache invalidations. When doing the context switch in
the kernel, do not invalidate the user mappings (unless you're forced to
due to a suword, copyin or something similar). Instead, postpone it and
set a flag so that userret knows it needs to be done. This has the
following advantages:
	- If you have to invalidate kernel as well as user cache lines,
	  the performance impact is accounted in userspace not the
	  monolithic kernel
	- If a code path (such as nfs???) involves multiple sleeps
	  and wakeups in the kernel, the user 'IO' processes that
	  just block and unblock in the kernel will execute more
	  efficiently.
Does this make a whole lot of sense? Comments from Jonathan et al
welcome.

	Neil