Re: [PATCH v3] softirq: Prevent looping on disabled tasklets

From: Thomas Gleixner
Date: Fri Feb 17 2017 - 06:56:25 EST


On Sun, 12 Feb 2017, Chris Wilson wrote:

> On Sun, Feb 12, 2017 at 03:46:09PM +0000, Chris Wilson wrote:
> > +void tasklet_enable(struct tasklet_struct *t)
> > +{
> > + if (!atomic_dec_and_test(&t->count))
> > + return;
> > +
> > + if (test_bit(TASKLET_STATE_SCHED, &t->state))
> > + raise_softirq(HI_SOFTIRQ | TASKLET_SOFTIRQ);
>
> And of course this can't work as raise_softirq() is local to the cpu.

Indeed. tasklets are a horror by design. We rather should make them go away.

Thanks,

tglx