From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 927FDE936EC for ; Wed, 4 Oct 2023 23:49:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C48AC6B0152; Wed, 4 Oct 2023 19:49:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BF8736B0153; Wed, 4 Oct 2023 19:49:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE7986B0154; Wed, 4 Oct 2023 19:49:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 9CFBE6B0152 for ; Wed, 4 Oct 2023 19:49:28 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 5ACC9C0144 for ; Wed, 4 Oct 2023 23:49:28 +0000 (UTC) X-FDA: 81309423216.19.3DAF1C1 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf16.hostedemail.com (Postfix) with ESMTP id 2D6D0180009 for ; Wed, 4 Oct 2023 23:49:25 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=none; spf=pass (imf16.hostedemail.com: domain of "SRS0=7lue=FS=linux-m68k.org=gerg@kernel.org" designates 145.40.73.55 as permitted sender) smtp.mailfrom="SRS0=7lue=FS=linux-m68k.org=gerg@kernel.org"; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696463366; a=rsa-sha256; cv=none; b=fzodXWUjEo19UduKB/F6Hm3F9/5QuIxEWVart9/9Kj0B9Q+Kq3BrwD+O6eKKuBhJp5W14E focyw1b26ZrA7xwmBCrEi/shndS+KwSxN6TTa2XxVukTuTT1lKFRde4yDiV431W/VHPQGS vgSxmYlDMwopI3oPFFcrMbBWoOAG9Uo= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=none; spf=pass (imf16.hostedemail.com: domain of "SRS0=7lue=FS=linux-m68k.org=gerg@kernel.org" designates 145.40.73.55 as permitted sender) smtp.mailfrom="SRS0=7lue=FS=linux-m68k.org=gerg@kernel.org"; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696463366; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cadbIZyaKtnvprYye2Cq6gfBzNPCQd7A+KXklX2RTfI=; b=0jCrspDKromVu8JfWmE6TlPGpZi6Wln/5worvukycvHI0wqIZ7GkDSzdPHvT2wO9inkTO/ qdnqbSp+UDeuz1JN3WvgCU0F3XAiD7N3+JCsyCY9OLirOfEMdl/BztX6Sq5OtNNvK8FUn8 cN/KnHb7r1D3LELoXxLhL96zn8TRsm8= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id A93D5CE1F76; Wed, 4 Oct 2023 23:49:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1EE1AC433C7; Wed, 4 Oct 2023 23:49:18 +0000 (UTC) Message-ID: <89a5a892-8b34-416d-8b37-a10be3080d54@linux-m68k.org> Date: Thu, 5 Oct 2023 09:49:15 +1000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 09/17] m68k: Implement xor_unlock_is_negative_byte Content-Language: en-US To: "Matthew Wilcox (Oracle)" , Andrew Morton Cc: linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-arch@vger.kernel.org, torvalds@linux-foundation.org, npiggin@gmail.com References: <20231004165317.1061855-1-willy@infradead.org> <20231004165317.1061855-10-willy@infradead.org> From: Greg Ungerer In-Reply-To: <20231004165317.1061855-10-willy@infradead.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 2D6D0180009 X-Stat-Signature: hy778oddt5qbx8a1ugwq71cufyhr78k4 X-HE-Tag: 1696463365-235231 X-HE-Meta: U2FsdGVkX19kTsDcB+ZxPn+222p4qKPLuucyeK0OwGk6YVBCdYQOWP+5Op3DW1g9jehjIhx75IWBYYs5dhek+xXhcZxJXSdUcJ53sO1AhNFDvSTZM6AZHd+Y0qW6E95rX0ukgJIVCIi1SwOYvVGfqUNDnwVWrVEQOBoQVVyq/cw2+A1Gx3zCIlqq2GAsWAACBGv0+rWSEu5tc4IsruwgOZ1VEB9SKh8YlZLSIggsIwq6QMagcpw1Ecrxu8x5LXAYJtOLaVdpCidHbqgrd5Ug4y0ho/SBknKIFzaPT9y/ezZbgzz+r6PXByp+H6kjQx6O0e4VVgNbE/njlQgkDaKCZfffIBQ3rN54Ij7UeizoTVFe6qO5k8MvSiqNR/Bx7UJWA/x7ltkwq5/IalXqBK6NL3yhah0f1k3Ik/DblEbBOQ208REVEQuS9F76FPNf9OhH7w0yzJx3hWRjU5ReleZt8ZZq6vStDZn3p2Ql/SvcD0mfdzwD4RWZwk33FDL1GX9vUhebCUliD5ZD4qtST5Ycm0roIJVoxRXmDvonmqycCuQEeYjpLGuQiqJYUpxNLvVFEAfLn1oMb+L8dTPdDYcD4oDuBBaiKHL06uB0elsNO/GnU3YGAAEYbAd7WJiCm0JqtgbWG+Dz3K7LHtSrwlrylFirbNCfqsXGdDukbK5ZBJVevoI7Dr3rbn2X6ZwSPK0lSbaREpKINpdZXckR/FknF9I7/fcFTY5ax01XfFc2qTjeuHQEekXg+lXKlOzePYtHSvUKLJpyuBukEuyxufqK9wBCnz9+yve/xUnzdhNWN40+g/4NDTIWhi+4pv95UOLam+wruuOZtpj/4BZJjTw5mKdgU0FvK0s31G4+cEtADcCp6QSA6lmilKM1v84wU3y5sJ/B67zF/bG78KYq7lWZMQwz2AdnXmpfMjAKMmGUMJK332SNk/rlW9yjxmmxgaiIujrEwpDStPmjXQfxGap qKxV0MQ/ P0HuJWmPXeqn22tQW/mCe/LcrnD1/K/lQ5H7dj5GMHST3MN0JghYkqyh4p4RVMoxDC4Zo7FP2uW1oI2v9thAlxgsVFxQ6TcuPzLRw0ssFcAGtv2naz0DT0+L82PQ7jMcKv7yrO6HxcRaL3u2CiRyXv8D7sKpHzhpMj6VxyIli+AuiDUz3IB58mAYuBwd+ibrc1Uiw4xVVs1W8whsEQNBmMUgpr3MaK9OqWbBdEpfsKTw8kn4Z/WI/xTT5VnqGOR2RJyr0XKhZsNH0257Ue8Y0RPfNLJY5lYcU+gmGrN9V7u6/mWCB/a7UhplBzU7vSvEKBgMlyQdcvMRyccjZ1nDxqvzIdvKzELGcoJSo+VH67XwwkElRUvloewKvrGJ0htJOgw8fIoxWcYGZVwaVRe7YeLb5+nXE0NGXODQkNvhanyHtL3E0g+4mBCvRrfI1fSzA40Q2XtsVl5cXVQBOZLiJxTwSyQB6Ijp50xFrUi7XJETIn8Ohbrk8IkMTq0KLecSxf1pU X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 5/10/23 02:53, Matthew Wilcox (Oracle) wrote: > Using EOR to clear the guaranteed-to-be-set lock bit will test the > negative flag just like the x86 implementation. This should be > more efficient than the generic implementation in filemap.c. It > would be better if m68k had __GCC_ASM_FLAG_OUTPUTS__. > > Coldfire doesn't have a byte-sized EOR, so we test bit 7 after the > EOR, which is a second memory access, but it's slightly better than > the current C code. > > Signed-off-by: Matthew Wilcox (Oracle) Acked-by: Greg Ungerer > --- > arch/m68k/include/asm/bitops.h | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/arch/m68k/include/asm/bitops.h b/arch/m68k/include/asm/bitops.h > index e984af71df6b..80ee36095905 100644 > --- a/arch/m68k/include/asm/bitops.h > +++ b/arch/m68k/include/asm/bitops.h > @@ -319,6 +319,28 @@ arch___test_and_change_bit(unsigned long nr, volatile unsigned long *addr) > return test_and_change_bit(nr, addr); > } > > +static inline bool xor_unlock_is_negative_byte(unsigned long mask, > + volatile unsigned long *p) > +{ > +#ifdef CONFIG_COLDFIRE > + __asm__ __volatile__ ("eorl %1, %0" > + : "+m" (*p) > + : "d" (mask) > + : "memory"); > + return *p & (1 << 7); > +#else > + char result; > + char *cp = (char *)p + 3; /* m68k is big-endian */ > + > + __asm__ __volatile__ ("eor.b %1, %2; smi %0" > + : "=d" (result) > + : "di" (mask), "o" (*cp) > + : "memory"); > + return result; > +#endif > +} > +#define xor_unlock_is_negative_byte xor_unlock_is_negative_byte > + > /* > * The true 68020 and more advanced processors support the "bfffo" > * instruction for finding bits. ColdFire and simple 68000 parts