Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1370202

Re: [RFC patch 4/7] futex: Add support for attached futexes

From Linus Torvalds <torvalds@linux-foundation.org>
Newsgroups linux.kernel
Subject Re: [RFC patch 4/7] futex: Add support for attached futexes
Date 2016-04-03 13:40 +0200
Message-ID <rjOxR-2Gy-17@gated-at.bofh.it> (permalink)
References <rjrKV-2UX-3@gated-at.bofh.it> <rjrKW-2UX-17@gated-at.bofh.it> <rjOev-2w5-33@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Sun, Apr 3, 2016 at 6:16 AM, Ingo Molnar <mingo@kernel.org> wrote:
>
> So an ABI distinction and offloading the decision to every single application that
> wants to use it and hardcode it into actual application source code via an ABI is
> pretty much the _WORST_ way to go about it IMHO...
>
> So how about this: don't add any ABI details, but make futexes auto-attached on
> NUMA systems (and obviously PREEMPT_RT systems)?

I agree.

Do *not* make this a visible new ABI.

You will find that people will make exactly the wrong choices - either
not using it (because the futex is deep in a standard library!) when
they want to, or using it when they shouldn't (because the futex is
deep in a standard library, and the library writer knows *his* code is
so important that it should get a special faster futex).

So I absolutely detest this approach. It's the wrong way to go about
things. User space does *not* know whether they want to use this or
not, and they *will* be wrong.

So automatically using a local hashtable (for private mutexes - I
think people need to just accept that a shared mutex is more costly)
according to some heuristic is definitely the way to go. And yes, the
heuristic may be well be - at least to start - "this is a preempt-RT
system" (for people who clearly care about having predictable
latencies) or "this is actually a multi-node NUMA system, and I have
heaps of memory".

Then, add a tunable (for root, not per-futex) to allow people to tweak it.

Because the *last* thing you want is programmerrs saying "I'm so
important that I want the special futex". Because every single
programmer thinks they are special and that _their_ code is special. I
know - because I'm special.

                   Linus

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[RFC patch 0/7] futex: Add support for attached futexes Thomas Gleixner <tglx@linutronix.de> - 2016-04-02 13:20 +0200
  [RFC patch 1/7] futex: Provide helpers for hash bucket add/remove Thomas Gleixner <tglx@linutronix.de> - 2016-04-02 13:20 +0200
  [RFC patch 2/7] futex: Add some more function commentry Thomas Gleixner <tglx@linutronix.de> - 2016-04-02 13:20 +0200
  [RFC patch 5/7] perf/bench/futex-hash: Support for attached futexes Thomas Gleixner <tglx@linutronix.de> - 2016-04-02 13:20 +0200
  [RFC patch 4/7] futex: Add support for attached futexes Thomas Gleixner <tglx@linutronix.de> - 2016-04-02 13:20 +0200
    Re: [RFC patch 4/7] futex: Add support for attached futexes Peter Zijlstra <peterz@infradead.org> - 2016-04-02 18:30 +0200
      Re: [RFC patch 4/7] futex: Add support for attached futexes Thomas Gleixner <tglx@linutronix.de> - 2016-04-03 12:10 +0200
    Re: [RFC patch 4/7] futex: Add support for attached futexes Peter Zijlstra <peterz@infradead.org> - 2016-04-02 18:30 +0200
      Re: [RFC patch 4/7] futex: Add support for attached futexes Thomas Gleixner <tglx@linutronix.de> - 2016-04-02 20:10 +0200
    Re: [RFC patch 4/7] futex: Add support for attached futexes Andy Lutomirski <luto@kernel.org> - 2016-04-02 20:30 +0200
      Re: [RFC patch 4/7] futex: Add support for attached futexes Thomas Gleixner <tglx@linutronix.de> - 2016-04-03 12:00 +0200
        Re: [RFC patch 4/7] futex: Add support for attached futexes Andy Lutomirski <luto@amacapital.net> - 2016-04-03 15:20 +0200
          Re: [RFC patch 4/7] futex: Add support for attached futexes Thomas Gleixner <tglx@linutronix.de> - 2016-04-03 18:00 +0200
            Re: [RFC patch 4/7] futex: Add support for attached futexes Andy Lutomirski <luto@amacapital.net> - 2016-04-03 18:20 +0200
    Re: [RFC patch 4/7] futex: Add support for attached futexes Rasmus Villemoes <linux@rasmusvillemoes.dk> - 2016-04-03 01:50 +0200
      Re: [RFC patch 4/7] futex: Add support for attached futexes Thomas Gleixner <tglx@linutronix.de> - 2016-04-03 12:10 +0200
    Re: [RFC patch 4/7] futex: Add support for attached futexes Ingo Molnar <mingo@kernel.org> - 2016-04-03 13:20 +0200
      Re: [RFC patch 4/7] futex: Add support for attached futexes Linus Torvalds <torvalds@linux-foundation.org> - 2016-04-03 13:40 +0200
        Re: [RFC patch 4/7] futex: Add support for attached futexes Torvald Riegel <triegel@redhat.com> - 2016-04-05 09:50 +0200
        Re: [RFC patch 4/7] futex: Add support for attached futexes Carlos O'Donell <carlos@redhat.com> - 2016-04-05 18:00 +0200
  [RFC patch 7/7] [PATCH] glibc: nptl: Add support for attached  pthread_mutexes Thomas Gleixner <tglx@linutronix.de> - 2016-04-02 13:20 +0200
    Re: [RFC patch 7/7] [PATCH] glibc: nptl: Add support for attached  pthread_mutexes Peter Zijlstra <peterz@infradead.org> - 2016-04-02 18:40 +0200
      Re: [RFC patch 7/7] [PATCH] glibc: nptl: Add support for attached  pthread_mutexes Peter Zijlstra <peterz@infradead.org> - 2016-04-02 18:40 +0200
      Re: [RFC patch 7/7] [PATCH] glibc: nptl: Add support for attached  pthread_mutexes Thomas Gleixner <tglx@linutronix.de> - 2016-04-03 12:20 +0200

csiph-web