Messages in this thread | | | Date | Tue, 28 Jan 1997 09:57:32 +0100 (MET) | From | Ingo Molnar <> | Subject | Re: Faster timers for Linux 2.1.22 |
| |
On Mon, 27 Jan 1997, Theodore Y. Ts'o wrote:
> From: Keith Owens <kaos@ocs.com.au> > Date: Mon, 27 Jan 1997 12:01:00 +1100 > > As for 'buffering', after disable_bh is called, the next interrupt of > any kind including (AFAIK) the timer tick will run any outstanding > bottom half code. This takes precedence over user driven code. It's a > tradeoff, a more local lock and a slightly delayed bh against a global > lock that hits every piece of code. > > Bottom half routines are run when the kernel is on its way out to > user-mode. [...]
with one small exception if my understanding of entry.S is correct:
-------------------------------------------> ret_from_sys_call: #ifdef __SMP__ GET_CURRENT #endif cmpl $0,SYMBOL_NAME(intr_count) jne 1f 9: movl SYMBOL_NAME(bh_mask),%eax andl SYMBOL_NAME(bh_active),%eax jne handle_bottom_half <-------------------------------------------
Thus 'slow irq handlers' (keyboard, some networking drivers) and the timer irq [they all take the ret_from_sys_call path] call 'do_bottom_half()' even if they interrupt kernel code.
-- mingo
| |