lkml.org 
[lkml]   [1999]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
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?

No.

>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_
get_active_bhs().

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

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

Andrea


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:55    [from the cache]
©2003-2011 Jasper Spaans