[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <9923d643-b363-400b-878a-d99921bc8e2e@kernel.org>
Date: Tue, 16 Jan 2024 08:07:19 +0100
From: Jiri Slaby <jirislaby@...nel.org>
To: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Cc: Peter Zijlstra <peterz@...radead.org>,
Thomas Gleixner <tglx@...utronix.de>, linux-kernel@...r.kernel.org,
boqun.feng@...il.com, bristot@...hat.com, bsegall@...gle.com,
dietmar.eggemann@....com, jstultz@...gle.com, juri.lelli@...hat.com,
longman@...hat.com, mgorman@...e.de, mingo@...hat.com, rostedt@...dmis.org,
swood@...hat.com, vincent.guittot@...aro.org, vschneid@...hat.com,
will@...nel.org
Subject: Re: [PATCH v3 7/7] locking/rtmutex: Acquire the hb lock via trylock
after wait-proxylock.
On 15. 01. 24, 19:33, Sebastian Andrzej Siewior wrote:
> This duct tape at the end waits until the pi-state leaves or we get a
> waiter. So this works but is not a fix.
FWIW, it indeed avoids the problem.
> --- a/kernel/futex/pi.c
> +++ b/kernel/futex/pi.c
> @@ -1182,6 +1182,9 @@ int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
> rt_waiter = rt_mutex_top_waiter(&pi_state->pi_mutex);
> if (!rt_waiter) {
> raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
> + spin_unlock(&hb->lock);
> + cpu_relax();
> + goto retry;
> goto do_uncontended;
> }
thanks,
--
js
suse labs
Powered by blists - more mailing lists