Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1510242ybl; Sun, 18 Aug 2019 05:05:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqxhRBLface3u+5Frv2gG6IfDJKZbZDRfQFrFqjG7EfPnA/L3nsWtCCMiJGTT3OuEvBrtv1U X-Received: by 2002:a17:902:3341:: with SMTP id a59mr17442656plc.186.1566129915130; Sun, 18 Aug 2019 05:05:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566129915; cv=none; d=google.com; s=arc-20160816; b=yw0WgakaJ0l9pCzlRPu0u84RH4vE7ikvOgre8yQO4aQI93Ajjtgdq+/PMomY2tIdA6 0sSkcW1MnA/CiQOuhD/zVwrUA+UboTg+VW0p+aepNperK6PgUxMTmGSIB0aclF+IwUpq EbZI5rA4fXUw8MMMN7igLamkgCStVUTzPm/f1DQAX95UBblQbNEMs798hk2VEpc0rVYQ 440aaiYnihpfqPOqyyJoerCHQ0OA7W+vPjiAx5PcqURJsKJXwMeYZHXMGgYse/RHydom 58YIRshC7ByfXq7+VWRzRPpG0MIY6tDbMVWuB6AU10cdmdTLRbKlsuzX21VmDJpbz1Nx GHyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=KwZVOMi5T1F5Uq5wcKpAQuXEFYevn/pKuY+Q4gSt0aA=; b=N9jWOR/Z0Bny//IT6ePuSq7tjKI4KPTwMian27CDCOnjnrxoA6I3Jifoarn3xpqfAo s7pW/T191FxkrzfOJWJoRrLeKViOqekSJb+llvK1s6Gn76gCrz6VGOrQWpVz/Xnr01SB lvpTaoZidTU8QCVeU5pzacqlm0OXFKZpwmM3/+0klQdAGBEf4Mq3r8ln9chwLfV3UU4/ fwbAc92d9ZR6MdqPrO5zTEGyD1T5xGBALF6ghrPXUKYgchnpr50yWJeCm5fQHTY7BwHn HCjJJz8uUHMzNKI6GUlbVyrTtJNjNKlWMMWotVONfX8TTmk/JzboVAdgZMzeQr4WbDTI 2LOg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h3si7767632plb.106.2019.08.18.05.05.00; Sun, 18 Aug 2019 05:05:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726707AbfHRMCJ (ORCPT + 99 others); Sun, 18 Aug 2019 08:02:09 -0400 Received: from gate.crashing.org ([63.228.1.57]:48445 "EHLO gate.crashing.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726005AbfHRMCJ (ORCPT ); Sun, 18 Aug 2019 08:02:09 -0400 Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id x7IC1aC2002066; Sun, 18 Aug 2019 07:01:37 -0500 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id x7IC1ZQg002061; Sun, 18 Aug 2019 07:01:35 -0500 X-Authentication-Warning: gate.crashing.org: segher set sender to segher@kernel.crashing.org using -f Date: Sun, 18 Aug 2019 07:01:35 -0500 From: Segher Boessenkool To: Christophe Leroy Cc: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH] powerpc: optimise WARN_ON() Message-ID: <20190818120135.GV31406@gate.crashing.org> References: <20190817090442.C5FEF106613@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190817090442.C5FEF106613@localhost.localdomain> User-Agent: Mutt/1.4.2.3i Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Aug 17, 2019 at 09:04:42AM +0000, Christophe Leroy wrote: > Unlike BUG_ON(x), WARN_ON(x) uses !!(x) as the trigger > of the t(d/w)nei instruction instead of using directly the > value of x. > > This leads to GCC adding unnecessary pair of addic/subfe. And it has to, it is passed as an "r" to an asm, GCC has to put the "!!" value into a register. > By using (x) instead of !!(x) like BUG_ON() does, the additional > instructions go away: But is it correct? What happens if you pass an int to WARN_ON, on a 64-bit kernel? (You might want to have 64-bit generate either tw or td. But, with your __builtin_trap patch, all that will be automatic). Segher