Subject: Re: Using splsched()
To: Paul Kranenburg <pk@cs.few.eur.nl>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-kern
Date: 11/12/1997 20:06:19
On Thu, 13 Nov 1997 00:41:41 +0100 (MET),
    pk@cs.few.eur.nl (Paul Kranenburg) writes:


>> splsched() is defined in spl(9) to do just that: protecting the sleep
>> queues. The only deviation from spl(9) is that might not retain its
>> position in the `priority order' list. In particular, it may represent
>> a lower interrupt priority than splstatclock(), which means that in
>> some spots the various sleep()/wakeup() routines need to raise to
>> splstatclock() explicitly when accessing process scheduling data

Paul,

I have another question. Suppose I want to change the pmax port to use
your new convention, making splsched() be splimp() or thereabouts,
in order to make  kernel profiling more effective. [*]

What, if anything, do I have to do  in MD code to make that work?

I can't tell if you're saying the MI kernel code will change so that,
for instance,  kern_synch.c:waekup() says it 
	 ``must be called at splsched() or above''

(your new splsched, that is), or whether there are changes necessary
in MD code that manipulates scheduling data or process queues.

I think you're saying the former; but you might be saying both.
Could you clarify that, please?


[*] As far as I can tell right now, much of the interesting stuff in
need of tuning is taking place at splhigh(), or at least
splstatclock() or above, and thus un-measurable by statclock PC-sampling.