From: Tim W. <ti...@sp...> - 2000-12-25 08:59:45
|
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 - ti...@sp... or ti...@ar... or tw...@us... IBM Linux Technology Center, Beaverton, Oregon "Nobody ever said I was charming, they said "Rimmer, you're a git!"" RD VI |