Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp711950pxt; Fri, 6 Aug 2021 11:49:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwEXAOhSZg7GPyJ6Mj1UNMppbmd6IvAxVqtbtL85qeeAc7BEm1Gf2TFcAmCILUYNus8i9A5 X-Received: by 2002:a5d:9d93:: with SMTP id ay19mr1902486iob.114.1628275777143; Fri, 06 Aug 2021 11:49:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628275777; cv=none; d=google.com; s=arc-20160816; b=ycNRX0CRT2uiwj00TqG3HKofY8RbyRbKZk6d+Cq5dpFuoTdbenAa4eqodvPFMTUaff XzUzJUji2zwUIfcqxCNgyKPwGKmv9w5ZbO5oohZnOJdMP08Smr2X++q61zsoY/VO7WAs oSZJsMLoABvu5lp82ZbCsAgOTmaETcNoAEOZOLnHfJVqmzY7uONFxMR5muOImdSLV3ZB YxIZw5kGlXCIb+hzoWgqQ7uYELOmFAnBMqWEZq45yfFY7iW+xdHw79BBqpWoazuUp4Jg 3ujLABrHEFngz6ycSaMPkjLOrfT1154UCueRhHOkzF8NW4MelkC30gJmjmJ9b+CcHB/S 0X9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=9bF9l+egKHKogmBI3aCFPyE47hDY7g4PjsCgrJWVuAw=; b=Wcvq05kikAObMz5V8734qSgtCq37lhCsNiEoBmsdAhsQvYhPO7XcQjPZhrW8oHovvn 17YvnnPkbc90BNRkX3WBL/GxKB1zd6qV82A8fq1rlS/Tq18JdVWMQj7+J6lHEDpfpkCr 6ircwSVNoVgqKy55k7LSLeTy4gRophZT1wXIjGmSzsR2s9jrjJK93sRvkwQ1pRVWMHiz HUhHpH5tSTPQDz+TJQS+oIGYCAvVxqKH/7Ozk1jio7rW0GZiU8bhmbIt5U3VI0CBXPD0 7hLcthV8yS2bEM/Ot7F+Y579ljBMKgaR13usDjDVgWydDPc+mmFECmEE6W6bi4tV1rFv pWBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bBmuahBB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p20si9708717ioo.40.2021.08.06.11.49.25; Fri, 06 Aug 2021 11:49:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bBmuahBB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344381AbhHFNnI (ORCPT + 99 others); Fri, 6 Aug 2021 09:43:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:45584 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344347AbhHFNnF (ORCPT ); Fri, 6 Aug 2021 09:43:05 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A806160C41; Fri, 6 Aug 2021 13:42:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1628257369; bh=tz8ZRLoD2biYu7ZxhJ7U45RlqyfpQkBmhi9D2jv7cy8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=bBmuahBBtWrCYnT6vHz1KFHrh8kUlPrkcF2F0+YfvpONFUlGG6LG2J9CLH89c8T03 k5MZu76bsBL3hShaERTnLZD6Btzkc9851Cqhui0THxE3RJCxUTA/rEQuU0WISMETGL kMJdY6J9aCHAgLIu1S0CFtc++bYCnTwbAgT4t6yCHpLN5eHjXgzsLzfaoTdDOXfskj sC8sL8czYCBRSHGRSbMnsOnpari7wxeXudo79aF3tMxzqE0mGL/pBj6YK8MnZ9c2rI JH5N0fJU8yP7rOWYBc9kEW+rxKlcef1Ow1G7VGCGPWkPdL/a01OfqO/00If2Q9zLzA lE8LJJWGc50gA== Date: Fri, 6 Aug 2021 14:42:45 +0100 From: Will Deacon To: Vineet Gupta Cc: Peter Zijlstra , Arnd Bergmann , Mark Rutland , linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-snps-arc@lists.infradead.org Subject: Re: [RFC] bitops/non-atomic: make @nr unsigned to avoid any DIV Message-ID: <20210806134244.GA2901@willie-the-truck> References: <20210805191408.2003237-1-vgupta@synopsys.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210805191408.2003237-1-vgupta@synopsys.com> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Aug 05, 2021 at 12:14:08PM -0700, Vineet Gupta wrote: > signed math causes generation of costlier instructions such as DIV when > they could be done by barrerl shifter. > > Worse part is this is not caught by things like bloat-o-meter since > instruction length / symbols are typically same size. > > e.g. > > stock (signed math) > __________________ > > 919b4614 : > 919b4614: div r2,r0,0x20 > ^^^ > 919b4618: add2 r2,0x920f6050,r2 > 919b4620: ld_s r2,[r2,0] > 919b4622: lsr r0,r2,r0 > 919b4626: j_s.d [blink] > 919b4628: bmsk_s r0,r0,0 > 919b462a: nop_s > > (patched) unsigned math > __________________ > > 919b4614 : > 919b4614: lsr r2,r0,0x5 @nr/32 > ^^^ > 919b4618: add2 r2,0x920f6050,r2 > 919b4620: ld_s r2,[r2,0] > 919b4622: lsr r0,r2,r0 #test_bit() > 919b4626: j_s.d [blink] > 919b4628: bmsk_s r0,r0,0 > 919b462a: nop_s Just FYI, but on arm64 the existing codegen is alright as we have both arithmetic and logical shifts. > Signed-off-by: Vineet Gupta > --- > This is an RFC for feeback, I understand this impacts every arch, > but as of now it is only buld/run tested on ARC. > --- > --- > include/asm-generic/bitops/non-atomic.h | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) Acked-by: Will Deacon We should really move test_bit() into the atomic header, but I failed to fix the resulting include mess last time I tried that. Will