mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "André Almeida" <andrealmeid@igalia.com>
To: Juri Lelli <juri.lelli@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Darren Hart <dvhart@infradead.org>,
	Davidlohr Bueso <dave@stgolabs.net>,
	LKML <linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-rt-users <linux-rt-users@vger.kernel.org>,
	Valentin Schneider <vschneid@redhat.com>,
	Waiman Long <longman@redhat.com>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Subject: Re: Futex hash_bucket lock can break isolation and cause priority inversion on RT
Date: Tue, 8 Oct 2024 12:38:11 -0300	[thread overview]
Message-ID: <98b3dcb0-8b64-45a5-9531-16aeb010c052@igalia.com> (raw)
In-Reply-To: <ZwVOMgBMxrw7BU9A@jlelli-thinkpadt14gen4.remote.csb>

Hi Juri,

Em 08/10/2024 12:22, Juri Lelli escreveu:

[...]

> Now, of course by making the latency sensitive application tasks use a
> higher priority than anything on housekeeping CPUs we could avoid the
> issue, but the fact that an implicit in-kernel link between otherwise
> unrelated tasks might cause priority inversion is probably not ideal?
> Thus this email.
> 
> Does this report make any sense? If it does, has this issue ever been
> reported and possibly discussed? I guess it’s kind of a corner case, but
> I wonder if anybody has suggestions already on how to possibly try to
> tackle it from a kernel perspective.
> 

That's right, unrelated apps can share the same futex bucket, causing 
those side effects. The bucket is determined by futex_hash() and then 
tasks get the hash bucket lock at futex_q_lock(), and none of those 
functions have awareness of priorities.

There's this work from Thomas that aims to solve corner cases like this, 
by giving apps the option to instead of using the global hash table, to 
have their own allocated wait queue: 
https://lore.kernel.org/lkml/20160402095108.894519835@linutronix.de/

"Collisions on that hash can lead to performance degradation
and on real-time enabled kernels to unbound priority inversions."


> Thanks!
> Juri
> 

  reply	other threads:[~2024-10-08 15:38 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-08 15:22 Juri Lelli
2024-10-08 15:38 ` André Almeida [this message]
2024-10-08 15:51   ` Sebastian Andrzej Siewior
2024-10-08 15:59     ` André Almeida
2024-10-08 18:09       ` Sebastian Andrzej Siewior
2024-10-09  8:36       ` Juri Lelli
2024-10-24 22:36         ` Thomas Gleixner
2024-10-08 17:38 ` Peter Zijlstra
2024-10-08 19:44   ` Waiman Long
2024-10-09  7:22     ` Peter Zijlstra
2024-10-09  8:26   ` Juri Lelli
2024-10-08 18:30 ` Waiman Long
2024-10-09  8:28   ` Juri Lelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=98b3dcb0-8b64-45a5-9531-16aeb010c052@igalia.com \
    --to=andrealmeid@igalia.com \
    --cc=bigeasy@linutronix.de \
    --cc=dave@stgolabs.net \
    --cc=dvhart@infradead.org \
    --cc=juri.lelli@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=longman@redhat.com \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=vschneid@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®