[lkml]   [1999]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: timer_bh behaviour incorrect for 2.2.13?
On Thu, 9 Dec 1999, William Montgomery wrote:

>On Thu, 9 Dec 1999, Andrea Arcangeli wrote:
>> >> > >
>> >> > > while ((active = get_active_bhs()) {
>> >
>> >how about .... __sti(); ?
>> >
>> >> > > clear_active_bhs(active);
>> Yes that' the right place for the __sti(). After reading the active bhs
>> and before clearing them. Also remove the __sti and __cli() from the
>> caller.
>Maybe the __sti(); should come *after* the clear_active_bhs?


>A bh could get marked just prior to the clear_active_bhs and be lost?

We atomically only clear the ones that we are going to execute really. See
the clear_active_bhs implementation. The only thing that matters for UP is
that we take irq disabled all the time after we seen `active == 0'. Thus
we can enable interrupts locally _before_ clear_active_bhs but _after_

>Does it hurt to keep __sti and __cli() in the caller?

No of course, they should be removed (see my previous email ;).


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:55    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean