On Sun, Dec 24, 2000 at 09:59:34PM -0500, jamal wrote:
>
>
> On Sun, 24 Dec 2000, Tim Wright wrote:
>
> > The scheme is that you tell the APIC what your current priority is. The APIC
> > has a task priority register, but Linux doesn't use it. We just set it to
> > accept-all at boot time and leave it alone. If you use it to indicate your
> > current priority, the APIC bus will deliver the interrupt to the
> > least-loaded
> > CPU. The RR behaviour (yes I'm a Brit :-) happens if there's a choice of
> > "least loaded".
>
> So it seems that the process is capable of setting a high enough priority
> such that an (hardware) interupt wont run on a specific CPU?
No, all user processes are pre-emptible. DYNIX/ptx doesn't support the notion
of RT processes. The range of user priorities is crunched down into 4 bits.
Locking out of interrupts below a given SPL is achieved by programming a
different register IIRC, although it is also mirrored in the TPR (task
priority register), and SPL1 is "higher" priority than any user process.
> My goal might be slightly different than this. I would like to route
> interupts to CPUs which have the "least load of interupts" in addition
> to process load.
> do you have a paper on this, maybe you can already do this?
>
That is what we do. I don't know if we have a paper, but it sounds like we
should. It's actually quite likely that I can publish the relevant code
with little difficulty.
Regards,
Tim
--
Tim Wright - timw@xxxxxxxxx or timw@xxxxxxxxxxx or twright@xxxxxxxxxx
IBM Linux Technology Center, Beaverton, Oregon
"Nobody ever said I was charming, they said "Rimmer, you're a git!"" RD VI
|