Received: by 10.213.65.68 with SMTP id h4csp1651232imn; Thu, 5 Apr 2018 01:06:44 -0700 (PDT) X-Google-Smtp-Source: AIpwx48PNAA7ddcKn4dsGCDQv5rpSfzWkS+BCktYs3WdGPosZWMjaA+6QaDWB6GG8Re4nb3NjRqG X-Received: by 10.98.103.199 with SMTP id t68mr16294961pfj.24.1522915604424; Thu, 05 Apr 2018 01:06:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522915604; cv=none; d=google.com; s=arc-20160816; b=wm5H6SuKuJVEryMNs1iDfIbrNWz6uKsxKbYf4zsAS27LJF8QfAZPMefi7cK6cgZ/Gb sX8VjRx67fLVRKUP1boVBsmX0slnhI1lQK7INzU1O1WjJHceK0KhiQbMjVOw/Kv381sy KApC9caWgmOaOr9n/1n+UJntQOFbRi1Oh090PUj2a44oAelYpAr9i+B8MvptspEBZkYm z20e13sUTMpw4iaUaDIvrwuGfCGijsYvA5IVuH54lO+6F58IPtm3wJ8f2+VKoeWaOQCL dpkKfqr7j5HAekW4a3p+XeXb7JnA+kNblA6jWbpHDt/00schvkIktWD6vOcGOl3PxLRU wLjg== 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:dkim-signature:arc-authentication-results; bh=/eeA1BbHJFxT8Mv0wKOh2tvvvLcW6Xj8nti8UDdEqCI=; b=eJhmX+5bICgnTSj9Y+m6fcwYBRHAS/gf1EfYnQJo18LTWhIPZI/iy3srSPjjCh820/ CFZZ5NiKE6cm3l+7c/8PrnOvvC6YfDLRsVlwBJIi8c13yiEoHBS+FUUO+HIhmhCk41Di opJ7J3NRLpHzvL0FToRSlJAUJOTGctwR/JS4BfXRmEgQV+56qdrlQwgkBdqvfJHYgCsi ftrF8taT47d738CeBe0E1jo9n2DEbwpycZzfo2LS2/QHUVS9qlTztil+0ujvhFimqGJo j54oCFpCUnBSHIAIW8btDTnfVYUrgwTPhM4GBjXi31a2Sykm83aiiskf0u3wZiqB/GZ0 aUUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=NSHMh/Qi; 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 l13-v6si5588962pln.437.2018.04.05.01.06.30; Thu, 05 Apr 2018 01:06:44 -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; dkim=fail header.i=@gmail.com header.s=20161025 header.b=NSHMh/Qi; 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 S1751434AbeDEIFA (ORCPT + 99 others); Thu, 5 Apr 2018 04:05:00 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:35281 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751251AbeDEIEv (ORCPT ); Thu, 5 Apr 2018 04:04:51 -0400 Received: by mail-wm0-f66.google.com with SMTP id r82so4382492wme.0 for ; Thu, 05 Apr 2018 01:04:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=/eeA1BbHJFxT8Mv0wKOh2tvvvLcW6Xj8nti8UDdEqCI=; b=NSHMh/QiAEWrH0ooENU2wlSJKq+BONzLSZR+zicnJgDBJYDnUDSSgRPWt7gxyKe93/ 1RmUlv0akZNIp6p8UDw50eSSL7BwHZyEKP5XbckvBt0kztUJ/T7widiLY5L/USCDkeNB ngKXvsy8A0LrIzrIn0EGWa0BdiKm4dxhpJGLd0Rrjur+L7xLbs2R5px62g64XJRUmuoS TOVIpRxGfvKNENjU/kMxo2Mbzh1LgBLwU+vSSQ7JZoUpwSyP0LmYlueiCXgojh+ow0OW wi03LyvWVVUPXgx9wga3qsXRfX184bSHrPwCIskRf1vCP5c89597E37L+oIOoMaEZgCQ wisw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=/eeA1BbHJFxT8Mv0wKOh2tvvvLcW6Xj8nti8UDdEqCI=; b=XLNUERXpx7EvF4e8HrOaJOHCr8xw1SEuNGbQAFKnmrAeVMn+4EY0dtbhXU/t2LrV3+ 6c4uncUE4xiUS9VZc/aelwBsYNrskproGfycVDncOwjp/ed1Ja6ZUAqvqGgr9hFfnRv0 AhffTxVmir4A1H7nlRWYOOO0U2jDeEkJUodBvwezDfVBl8JocetlhjIjl1V04urG7iRY HbYeyqUcZBRKOk5sYxf3CytBG3YXGFJsXXwQ8inT2nPqwmEzoko1fsdixY8tBuirx+xg cSNUg7L7/gyiYeGgnUo3Y1zZYzBKI7GSmt8oug9XhYzVhrjUdQn5HnzAumAF8XuVY6TH jcdQ== X-Gm-Message-State: ALQs6tAG/A2yAhHfaRftV8pUJ7iA4d2LK3y3bNcqHZzOEua9vTcAuNdx iy/Sp4lF7l+cO8AMvKOWOoQ= X-Received: by 10.28.140.82 with SMTP id o79mr10490539wmd.82.1522915489544; Thu, 05 Apr 2018 01:04:49 -0700 (PDT) Received: from gmail.com (2E8B0CD5.catv.pool.telekom.hu. [46.139.12.213]) by smtp.gmail.com with ESMTPSA id k184sm5524542wmk.45.2018.04.05.01.04.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 05 Apr 2018 01:04:48 -0700 (PDT) Date: Thu, 5 Apr 2018 10:04:46 +0200 From: Ingo Molnar To: Peter Zijlstra Cc: Linus Torvalds , Matthias Kaehlcke , Arnd Bergmann , Linux Kernel Mailing List , Thomas Gleixner , Andrew Morton , James Y Knight , Chandler Carruth , Stephen Hines , Nick Desaulniers , Kees Cook , Guenter Roeck , Greg Hackmann , Greg Kroah-Hartman Subject: Re: [GIT PULL] x86/build changes for v4.17 Message-ID: <20180405080446.qomyc6ozug3g57gl@gmail.com> References: <20180404205848.GG87376@google.com> <20180404214639.GH87376@google.com> <20180404221744.GI87376@google.com> <20180404233111.GJ87376@google.com> <20180405072401.GO4043@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180405072401.GO4043@hirez.programming.kicks-ass.net> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Peter Zijlstra wrote: > On Wed, Apr 04, 2018 at 05:05:25PM -0700, Linus Torvalds wrote: > > for some reason the test_bit() case looks like > > this: > > > > #define test_bit(nr, addr) \ > > (__builtin_constant_p((nr)) \ > > ? constant_test_bit((nr), (addr)) \ > > : variable_test_bit((nr), (addr))) > > > > which is much more straightforward anyway. I'm not quite sure why we > > did it that odd way anyway, but I bet it's just "hysterical raisins" > > along with the test_bit() not needing inline asm at all for the > > constant case. > > I always assumed BT was a more expensive instruction than AND with > immediate. According to: http://www.agner.org/optimize/instruction_tables.pdf The SkyLake costs for 'BT', 'AND' and 'TEST' variants are: Instruction Operands uops fused uops unfused uops port latency throughput BT r,r/i 1 1 p06 1 0.5 BT m,r 10 10 5 BT m,i 2 2 p06 p23 0.5 BTR BTS BTC r,r/i 1 1 p06 1 0.5 BTR BTS BTC m,r 10 11 5 BTR BTS BTC m,i 3 4 p06 p4 p23 1 AND OR XOR r,r/i 1 1 p0156 1 0.25 AND OR XOR r,m 1 2 p0156 p23 0.5 AND OR XOR m,r/i 2 4 2p0156 2p237 p4 5 1 TEST r,r/i 1 1 p0156 1 0.25 TEST m,r/i 1 2 p0156 p23 1 0.5 So if I'm reading it right, the relevant comparison would be: BT m,i 2 2 p06 p23 0.5 AND OR XOR m,r/i 2 4 2p0156 2p237 p4 5 1 ? Thanks, Ingo