Re: [PATCH] fix loop with disabled tasklets

From: David S. Miller (davem@redhat.com)
Date: Sat Nov 10 2001 - 08:37:20 EST


   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/



This archive was generated by hypermail 2b29 : Thu Nov 15 2001 - 21:00:24 EST