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


Groups > linux.kernel > #1396042

Re: [patch V2 3/7] futex: Add op for hash preallocation

From Darren Hart <dvhart@infradead.org>
Newsgroups linux.kernel
Subject Re: [patch V2 3/7] futex: Add op for hash preallocation
Date 2016-05-06 20:20 +0200
Message-ID <rvSw1-1EJ-3@gated-at.bofh.it> (permalink)
References <rvynE-79b-3@gated-at.bofh.it> <rvynE-79b-1@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Thu, May 05, 2016 at 08:44:05PM -0000, Thomas Gleixner wrote:
> From: Sebastian Siewior <bigeasy@linutronix.de>
> 
> The per process hash is allocated on the fly at the first futex operation of a
> process. The size of the hash is determined by a system wide default setting
> controlled by the sys admin, This is suboptimal for RT applications and
> applications with pathological futex abuse,
> 
>  - For RT applications its important to allocate the per process hash before the
>    first futex operation to avoid the allocation on the first futex operation.
> 
>  - For pathological applications which use gazillions of futexes its useful to
>    allocate a hash greater than the default hash size.

"it's" or preferably "it is"

> 
> Add a futex op which allows to preallocate the hash with the requested

"allows for preallocating"

> size. The size is limited by the systemwide maximum hash size, which can be

system-wide

> set by the admin. The requested size is rounded up to the next order of 2.
> 
> The function can be called several times, but ony the first call results in a
> hash allocation of the requested size as there is no non-intrusive way to
> reallocate/rehash in a multithreaded application.
> 
> Note, that this call must be issued before the first futex operation in the
> process because that would automatically allocate the default sized hash.

So this seems like it could be tricky for the user as system libraries, like
glibc, make use of futexes. Can we guarantee that "sys_futex" is not called by
the time main() is called?

> The function returns the actual hash size or 0 if the global hash is used. The
> latter is the case on UP and in the rare case that the allocation failed and
> the global hash is used as a fallback.
> 
> Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

...

-- 
Darren Hart
Intel Open Source Technology Center

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


Thread

[patch V2 3/7] futex: Add op for hash preallocation Thomas Gleixner <tglx@linutronix.de> - 2016-05-05 22:50 +0200
  Re: [patch V2 3/7] futex: Add op for hash preallocation Darren Hart <dvhart@infradead.org> - 2016-05-06 20:20 +0200
    Re: [patch V2 3/7] futex: Add op for hash preallocation Thomas Gleixner <tglx@linutronix.de> - 2016-05-07 10:50 +0200
      Re: [patch V2 3/7] futex: Add op for hash preallocation Thomas Gleixner <tglx@linutronix.de> - 2016-05-07 13:50 +0200

csiph-web