[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87o8j54i1k.fsf@nanos.tec.linutronix.de>
Date: Mon, 07 Dec 2020 18:55:51 +0100
From: Thomas Gleixner <tglx@...utronix.de>
To: Peter Zijlstra <peterz@...radead.org>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Cc: LKML <linux-kernel@...r.kernel.org>,
Frederic Weisbecker <frederic@...nel.org>,
Paul McKenney <paulmck@...nel.org>
Subject: Re: [patch V2 9/9] tasklets: Prevent kill/unlock_wait deadlock on RT
On Mon, Dec 07 2020 at 15:27, Peter Zijlstra wrote:
> On Mon, Dec 07, 2020 at 03:00:40PM +0100, Sebastian Andrzej Siewior wrote:
>> On 2020-12-07 12:47:43 [+0100], Peter Zijlstra wrote:
>> > On Fri, Dec 04, 2020 at 06:02:00PM +0100, Thomas Gleixner wrote:
>> > > @@ -825,7 +848,20 @@ void tasklet_kill(struct tasklet_struct
>> > >
>> > > while (test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) {
>> > > do {
>> > > - yield();
>> > > } while (test_bit(TASKLET_STATE_SCHED, &t->state));
>> > > }
>> > > tasklet_unlock_wait(t);
>> >
>> >
>> > Egads... should we not start by doing something like this?
>>
>> So we keep the RT part as-is and replace the non-RT bits with this?
>
> For RT you probably want to wrap the wait_var_event() in that
> local_bh_disable()/enable() pear.
Is that a new species local to the Netherlands? Never heard about
bh-pears before. Are they tasty?
> I just figured those unbounded spin/yield loops suck and we should get
> rid of em.
Ack.
Powered by blists - more mailing lists