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, Andrea Arcangeli wrote:

> >could you try making run_bottom_halves do something like this:
> >
> > while ((active = get_active_bhs()) {
> > clear_active_bhs(active);
> > ...

++ __cli();

> > }
> >
> >does this solve your problem?
>
> That's the easy part and I just did it yesterday but I didn't posted it

well i guess we agree that the hard part is to find the problem that
causes the missed bh :-) fixing it sufficiently is a different matter.

> because it's not enough. You have also to clear irqs while reading the
> active_bhs and to take them cleared until you return from the irq (this in
> UP and UP is the simple case).
>
> In SMP you also need a spinlock in the middle of do_bottom_half().

(William isnt using SMP and i was suggesting a quick hack for him to try
out.)

> I was doing the complete patch now.

you have missed the _real_ reason why the above 'bug' was there. It's a
feature and prevents denial of service attacks. Especially wrt. networking
it's very easy to flood a box with bh traffic, and if we are not careful
then slower systems (routers) can effectively be locked up just by
bombarding them with small/tricky packets. So we were always intentionally
trying to guarantee that bhs do not get rerun infinitely.

-- mingo


-
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    [W:0.086 / U:0.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site