Re: [PATCH] fix loop with disabled tasklets

David S. Miller (davem@redhat.com)
Sat, 10 Nov 2001 05:37:20 -0800 (PST)


From: Mathijs Mohlmann <mathijs@knoware.nl>
Date: Sat, 10 Nov 2001 13:21:56 +0100

i'm not sure about the enable_tasklet bit. I think it will prevent
people from calling tasklet_enable from within an interrupt handler. But then
again, why do you want to do that? Thanx, velco and

Any comments?

I've been looking at this and I sent Andrea+Linus private mail on this
to try and work out a fix.

You can't simply stop enabling the softirq when you hit the "locked
tasklet" condition. That could deadlock the tasklet.

What really needs to happen is:

1) If tasklet is scheduled, but disabled, simply ignore it
during tasklet processing. Do not resignal softirq.
But do leave it on the pending lists.

2) When tasklet enable brings t->count back to zero and
tasklet is found to be scheduled, signal a local softirq.

To me, that would be the proper fix. But I still haven't heard back
from Andrea or Linus yet :-)

Franks a lot,
David S. Miller
davem@redhat.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/