From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756398AbcE0R2C (ORCPT ); Fri, 27 May 2016 13:28:02 -0400 Received: from Chamillionaire.breakpoint.cc ([80.244.247.6]:35299 "EHLO Chamillionaire.breakpoint.cc" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756010AbcE0R2B (ORCPT ); Fri, 27 May 2016 13:28:01 -0400 Date: Fri, 27 May 2016 19:27:57 +0200 From: Sebastian Andrzej Siewior To: Peter Zijlstra Cc: Thomas Gleixner , LKML , Sebastian Andrzej Siewior , Linus Torvalds , Darren Hart , Ingo Molnar , Michael Kerrisk , Davidlohr Bueso , Chris Mason , "Carlos O'Donell" , Torvald Riegel , Eric Dumazet Subject: Re: [patch V2 3/7] futex: Add op for hash preallocation Message-ID: <20160527172756.GD28561@breakpoint.cc> References: <20160505204230.932454245@linutronix.de> <20160505204354.051976225@linutronix.de> <20160519122558.GC3192@twins.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20160519122558.GC3192@twins.programming.kicks-ass.net> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2016-05-19 14:25:58 [+0200], Peter Zijlstra wrote: > On Thu, May 05, 2016 at 08:44:05PM -0000, Thomas Gleixner wrote: > > +static int futex_preallocate_hash(unsigned int slots) > > +{ > > +#ifdef CONFIG_FUTEX_PRIVATE_HASH > > + struct mm_struct *mm = current->mm; > > + struct futex_hash_bucket *hb; > > + unsigned int bits; > > + > > + /* Try to allocate the requested nr of slots */ > > + bits = order_base_2(slots); > > + > > + if (bits < FUTEX_MIN_HASH_BITS) > > + bits = FUTEX_MIN_HASH_BITS; > > + > > + if (bits > futex_max_hash_bits) > > + bits = futex_max_hash_bits; > > + > > + futex_populate_hash(bits); > > Should we not simply fail if the provided number of slots is not a power > of 2 ? We could if it is worth doing so. The procfs interface which limits the upper / lower limit is bits based. This is slot based which then gets converted to the number if bits. If we align this interface with proc's limits then we would expect the number of bits instead slots - now check for power of two anymore. Anyone? Sebastian