Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755337AbbBBXF7 (ORCPT ); Mon, 2 Feb 2015 18:05:59 -0500 Received: from pandora.arm.linux.org.uk ([78.32.30.218]:43759 "EHLO pandora.arm.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752924AbbBBXF6 (ORCPT ); Mon, 2 Feb 2015 18:05:58 -0500 Date: Mon, 2 Feb 2015 23:05:48 +0000 From: Russell King - ARM Linux To: Andrew Morton Cc: Christoph Jaeger , linux-kernel@vger.kernel.org, Yalin Wang , Will Deacon Subject: Re: [PATCH linux-next] lib: Kconfig: use bool instead of boolean Message-ID: <20150202230548.GJ8656@n2100.arm.linux.org.uk> References: <1422889156-19830-1-git-send-email-cj@linux.com> <20150202142732.9ea4d2f604ef79cbe180f5fe@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150202142732.9ea4d2f604ef79cbe180f5fe@linux-foundation.org> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2758 Lines: 71 On Mon, Feb 02, 2015 at 02:27:32PM -0800, Andrew Morton wrote: > On Mon, 2 Feb 2015 09:59:16 -0500 Christoph Jaeger wrote: > > > Keyword 'boolean' for type definition attributes is considered > > deprecated and, therefore, should not be used anymore. > > > > See http://lkml.kernel.org/r/cover.1418003065.git.cj@linux.com > > See http://lkml.kernel.org/r/1419108071-11607-1-git-send-email-cj@linux.com > > > > ... > > > > --- a/lib/Kconfig > > +++ b/lib/Kconfig > > @@ -14,7 +14,7 @@ config BITREVERSE > > tristate > > > > config HAVE_ARCH_BITREVERSE > > - boolean > > + bool > > default n > > depends on BITREVERSE > > help > > Your patch patches 556d2f055bf6d ("ARM: 8187/1: add > CONFIG_HAVE_ARCH_BITREVERSE to support rbit instruction") which appears > in linux-next via the ARM tree. > > There are many uses of "boolean" in lib/Kconfig. Converting just one > of them is inefficient and odd. > > 556d2f055bf6d is a bit of a surprise. It looks good to me from a > non-ARM perspective - the __builtin_constant_p() optimisation is > sensible, although bitrev on a constant probably isn't very common. > > I'm not sure about the ARM part though! __bitrev8() is pretty damn > fast. Presumably an inlined rbit instruction is faster still, but not > very much? > > The Kconfig help text in 556d2f055bf6d rather needs some caring for. The patches had already been round six iterations, and had been posted on LKML for every iteration. When people started pushing to have the patches merged, there were two dependent patches which had been merged via other random trees, so I held them off for a cycle. At that point, I even questioned whether I should be merging them; that question was ignored by everyone. Eventually, (and after some testing) I ended up giving up and merging them because they're believed to be a net benefit for ARM, and I couldn't locate anyone who'd be useful to ack the generic parts of the patch. As for whether __bitrev8 is fast or not, that depends whether the table has been speculatively prefetched and is available without having to go out to memory - and it's not just about the table itself, there's also the loading from the individual function's literal pool to get the address of the table too. So that's two memory loads per rbit at minimum. The rbit instruction is probably at least half the average cycles of two dependent loads. -- FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/