lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <kq6edcqhqwzy25y4uurbjkty6r3vzmz74wizmmy4vxu6rvofvk@opm4sjchvegc>
Date: Tue, 17 Jun 2025 07:52:55 -0300
From: Wander Lairson Costa <wander@...hat.com>
To: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Cc: Peter Zijlstra <peterz@...radead.org>, 
	"Luis Claudio R. Goncalves" <lgoncalv@...hat.com>, Clark Williams <clrkwllms@...nel.org>, 
	Steven Rostedt <rostedt@...dmis.org>, Tejun Heo <tj@...nel.org>, David Vernet <dvernet@...a.com>, 
	Barret Rhoden <brho@...gle.com>, Josh Don <joshdon@...gle.com>, Crystal Wood <crwood@...hat.com>, 
	linux-kernel@...r.kernel.org, linux-rt-devel@...ts.linux.dev, 
	Juri Lelli <juri.lelli@...hat.com>, Ben Segall <bsegall@...gle.com>, DietmarEggemann@...g.org, 
	dietmar.eggemann@....com, Ingo Molnar <mingo@...hat.com>, Mel Gorman <mgorman@...e.de>, 
	Valentin Schneider <vschneid@...hat.com>, Vincent Guittot <vincent.guittot@...aro.org>, 
	Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [RESEND PATCH v4] sched: do not call __put_task_struct() on rt
 if pi_blocked_on is set

On Tue, Jun 17, 2025 at 11:36:27AM +0200, Sebastian Andrzej Siewior wrote:
> On 2025-06-17 11:26:09 [+0200], Peter Zijlstra wrote:
> > On Fri, Jun 13, 2025 at 12:05:14PM -0300, Luis Claudio R. Goncalves wrote:
> > > With PREEMPT_RT enabled, some of the calls to put_task_struct() coming
> > > from rt_mutex_adjust_prio_chain() could happen in preemptible context and
> > > with a mutex enqueued. That could lead to this sequence:
> > > 
> > >         rt_mutex_adjust_prio_chain()
> > >           put_task_struct()
> > >             __put_task_struct()
> > >               sched_ext_free()
> > >                 spin_lock_irqsave()
> > >                   rtlock_lock() --->  TRIGGERS
> > >                                       lockdep_assert(!current->pi_blocked_on);
> > > 
> > > Fix that by unconditionally resorting to the deferred call to
> > > __put_task_struct() if PREEMPT_RT is enabled.
> > > 
> > 
> > Should this have a Fixes: tag and go into /urgent?
> 
> I would say so. I'm not sure what caused it. I think Luis said at some
> point that it is caused by a sched_ext case or I mixed it up with
> something. Luis?
> 
> The other question I have, do we need to distinguish between PREEMPT_RT
> and not or can we do this unconditionally?
> 

That's something I had been wondering myself. However, since this code
runs in multiple places, I was concerned it might trigger some obscure
corner-case issue. In any case, if we decide to remove the
PREEMPT_RT conditional, I’d prefer to handle that in a follow-up patch.

> Sebastian
> 


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ