[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230422115438.GG1214746@hirez.programming.kicks-ass.net>
Date: Sat, 22 Apr 2023 13:54:38 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: John Stultz <jstultz@...gle.com>
Cc: LKML <linux-kernel@...r.kernel.org>,
Joel Fernandes <joelaf@...gle.com>,
Qais Yousef <qyousef@...gle.com>,
Ingo Molnar <mingo@...hat.com>,
Juri Lelli <juri.lelli@...hat.com>,
Vincent Guittot <vincent.guittot@...aro.org>,
Dietmar Eggemann <dietmar.eggemann@....com>,
Valentin Schneider <vschneid@...hat.com>,
Steven Rostedt <rostedt@...dmis.org>,
Ben Segall <bsegall@...gle.com>,
Zimuzo Ezeozue <zezeozue@...gle.com>,
Mel Gorman <mgorman@...e.de>,
Daniel Bristot de Oliveira <bristot@...hat.com>,
Will Deacon <will@...nel.org>,
Waiman Long <longman@...hat.com>,
Boqun Feng <boqun.feng@...il.com>,
"Paul E . McKenney" <paulmck@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Subject: Re: [PATCH v3 00/14] Generalized Priority Inheritance via Proxy
Execution v3
Anyway... tglx and bigeasy just pointed me at a problem with
pi_blocked_on vs sched_submit_work(), where if that function were to
block (specifically use rt-mutex), then we get:
__rt_mutex_slowlock()
task_blocks_on_rt_mutex()
current->pi_blocked_on = waiter;
rt_mutex_slowlock_block()
schedule()
sched_submit_work()
...
rt_mutex_lock()
...
current->pi_blocked_on = waiter; // <--- OOPS
And AFAICT we have the exact same problem with the current DEBUG_MUTEXES
->blocked_on state which in this patch-set is generalized and relied
upon more heavily.
Powered by blists - more mailing lists