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 436D6C77B7A for ; Fri, 19 May 2023 16:54:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 92DE6900005; Fri, 19 May 2023 12:54:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9046B900003; Fri, 19 May 2023 12:54:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7F38B900005; Fri, 19 May 2023 12:54:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 6E911900003 for ; Fri, 19 May 2023 12:54:18 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3E5A7C06C2 for ; Fri, 19 May 2023 16:54:18 +0000 (UTC) X-FDA: 80807602596.10.4337348 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf06.hostedemail.com (Postfix) with ESMTP id 85C4118000F for ; Fri, 19 May 2023 16:54:16 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf06.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684515256; a=rsa-sha256; cv=none; b=KqDJ/8A6tmZ/B85/4mMQQDxFbC4di26nlPeGihNOYQMcPTI4lQDuQETn5D2IBUfNf4orZa F8qrNgD0YaIEdpy5V7zy19R3rnu4jSe7gAA2CoM6ohLGF1TxXS/1UHqo1zLjVI2EBogjus UTM5hdBytpZQaU6iDTetRXJdEOykJNc= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf06.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684515256; 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: in-reply-to:in-reply-to:references:references; bh=xjWr6uAP2eX48tFLD5mVkLGnd5r/LJjSY8IVA9YiNK4=; b=zKCh1S+JB5zh6DyjCof1G6c3pPHZ3F9Azk60glGMbdKG+8nb5Z2qUM6InhHkYqYYh526Dt WhI3xO8arnIUSqcxrWBbC/YrluVaVTIiOL8Ehi30YNVOc5Vlfo/4E78KEZ1PxGvRV++ibZ SiWSpEX7MruXCRVwvshIPnBL1qlY77Q= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 4C41165951; Fri, 19 May 2023 16:54:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DFFBFC433EF; Fri, 19 May 2023 16:54:11 +0000 (UTC) Date: Fri, 19 May 2023 17:54:09 +0100 From: Catalin Marinas To: Peter Collingbourne Cc: Qun-wei Lin =?utf-8?B?KOael+e+pOW0tCk=?= , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "surenb@google.com" , "david@redhat.com" , Chinwen Chang =?utf-8?B?KOW8temMpuaWhyk=?= , "kasan-dev@googlegroups.com" , Kuan-Ying Lee =?utf-8?B?KOadjuWGoOepjik=?= , Casper Li =?utf-8?B?KOadjuS4reamrik=?= , "gregkh@linuxfoundation.org" , vincenzo.frascino@arm.com, Alexandru Elisei , will@kernel.org, eugenis@google.com, Steven Price Subject: Re: [PATCH v3 3/3] arm64: mte: Simplify swap tag restoration logic Message-ID: References: <20230517022115.3033604-1-pcc@google.com> <20230517022115.3033604-4-pcc@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230517022115.3033604-4-pcc@google.com> X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 85C4118000F X-Stat-Signature: 7ffcm6jd66q78ky1ixsnxb9h3bffg1de X-Rspam-User: X-HE-Tag: 1684515256-506521 X-HE-Meta: U2FsdGVkX1/3UtkdcEKYxKHFT5SQ25FbIDIf6YAeRFFCmwMwr3vcbzNC1TRf0CFn3JUSgYyN9Rkzt2pvqH1OQgU4Tt9RHpgGXD9jK/w2Cef27thhVzDZs3TzcyQY4iImsUPWa4pojgnz00INo0HuBgSiVkH9cVYAHOoei4fQQL70GueUBLlOC6IVkw02cyIppR/+oEmV47LEQC7o7L+O3VrEzhtxXRPg+NjlwWQAz0z5/czqEWQx537q54nyoVo/Cyqdmyr+kR8ZTKrxhL8PbpQB4SAjcxcZjmZJ2eQGW70hrOC9nr0hEfpXED3H/mACkapqBjbyZt2SVUpyXduW96y8WuOvXqKp8SygbaroTMw+RtRLKA5S4cYz6BW24yy8FQLrZKyzXEnTUWXwjbIQWRaKQbhTDpdGvudOMDxJLmdkoXfnzAVI85amT/YjG1BOykeYZ80IfVMH9fsTmoJDVSGXxqfrJvOyxW4PCGQzi/x/SS68slhRaUgAhEbbLjnzx1fnYH2lXmUAp9TwMlcjUMaFuekizgEOnTOEif28jUGgLY7wsD2hNX2FLmjYRJ7lgawSpnBa6OW1opWXZhoc/AK+WH7PgLQ6OBiUyt7eqEDi97Dp69K6syPRaWkxmTUTcwNWQ12A1f4dPnyMKgSu0YSiNBxofD9293jU16r3WT7FwA+IjUwJEHlW15XXZgYRduQsIxzJPEMsyWAbVGC44P9oNDiIa5OQWprP0NEQIzlZl/KhZzUytOMCJUttz3iriOMK1NmyBM9GMV5TRf4VWIGeJKxqZm37EPZ7eTFxAuGupWAZchbQG1RQ1TcwU1t9nmJ8tG5ZUMAREBF5gGzxd5XyXskSKqWt1Kh85pgxeztNHSHwVxx4sEFFj7VzAL9WCrT8UGvywfdiQKbyK+fx0TWAwk2MOQOyEjNKI79uJvHLdsPYIbU1Q41O5ofruHCmby36bzA/UUWA+/LFrLu qBr63cJ3 tLwIsoiCdV/P9xMkHUpasYpfO2lLEyHT2M593b9XHBLuL7x8+XZ1eoPDpu4CLsmRx8PLPVAj4rxOsnMtXpdv/ScM7Fzxn2HfQ1yDyZoIHoUpgoQcc+Uqy1NtjWNs7XjW217Sr9R88RHTT8f3pZzrsFktn0xhrJtaGVsQS7SP1LLzEsr8mFkXQZJcrnE4XFKsj3EqGSJBGw5Nw4lE+kmcctKQUsL5s4NwJr1jvnDLb4yy5zHXgIqqXoZaR0kUrlYlFhv4nHmz3jF3bb6232K2OI7wIPqJKc8xLHxEL2MqL7ECbg+GJlmcS34NK25PbqV1viyAc5G7DjNooglW3Qsg2K2Dt2Au8FwYFO6FZC7PC/+VPSAlQ3BZoyVh6az1MwbkJEeOhubeLFrPXm3eZaPbKLY+my0Y+9DbBqk6rvbUaApkXAGY5fZeyujh9YCY/N2JxWW0DfooJIhQCWbTBv3iylIoZw89u4MsupnNyQ5qiq1uc20/aQipNQUILPTzj2dN2Prh9a+Q9IVn7Smg= 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 Tue, May 16, 2023 at 07:21:13PM -0700, Peter Collingbourne wrote: > As a result of the previous two patches, there are no circumstances > in which a swapped-in page is installed in a page table without first > having arch_swap_restore() called on it. Therefore, we no longer need > the logic in set_pte_at() that restores the tags, so remove it. > > Because we can now rely on the page being locked, we no longer need to > handle the case where a page is having its tags restored by multiple tasks > concurrently, so we can slightly simplify the logic in mte_restore_tags(). [...] > diff --git a/arch/arm64/mm/mteswap.c b/arch/arm64/mm/mteswap.c > index cd508ba80ab1..3a78bf1b1364 100644 > --- a/arch/arm64/mm/mteswap.c > +++ b/arch/arm64/mm/mteswap.c > @@ -53,10 +53,9 @@ void mte_restore_tags(swp_entry_t entry, struct page *page) > if (!tags) > return; > > - if (try_page_mte_tagging(page)) { > - mte_restore_page_tags(page_address(page), tags); > - set_page_mte_tagged(page); > - } > + WARN_ON_ONCE(!try_page_mte_tagging(page)); > + mte_restore_page_tags(page_address(page), tags); > + set_page_mte_tagged(page); > } Can we have a situation where two processes share the same swap pte (CoW) and they both enter the do_swap_page() or the unuse_pte() paths triggering this warning? Other than that, the looks nice, it simplifies the logic and probably saves a few cycles as well on the set_pte_at() path. Reviewed-by: Catalin Marinas