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 146AFC77B7D for ; Wed, 17 May 2023 14:58:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 86447900005; Wed, 17 May 2023 10:58:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 81170900003; Wed, 17 May 2023 10:58:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 70089900005; Wed, 17 May 2023 10:58:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 62F9A900003 for ; Wed, 17 May 2023 10:58:12 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 30223C0604 for ; Wed, 17 May 2023 14:58:12 +0000 (UTC) X-FDA: 80800052424.09.3E86E04 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf03.hostedemail.com (Postfix) with ESMTP id 4D08020013 for ; Wed, 17 May 2023 14:58:10 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=none; spf=pass (imf03.hostedemail.com: domain of steven.price@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=steven.price@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684335490; 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=td9MkxkNf87qbPdhiiQuWtIT/WbGO8lv0aeODdr9VrU=; b=42/KZzafnToFI1PPo8nQnXd41MT00bc9IZ0lT7FButSH44vnbQsqF0vB6Mz8Fh1EtWbRNR 0f6WqKX0EZwt6cCujrAq24iLiapO60jHCETCHBINNZwCjafh4AkL5gwaGGEJaldtMO7sv3 gEhN1AxZvTQ2u9wwLFDjz2S/G+2WhmQ= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=none; spf=pass (imf03.hostedemail.com: domain of steven.price@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=steven.price@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684335490; a=rsa-sha256; cv=none; b=LcQEMtZIDQ7+3Ve/WrMfSJXr3hOrqh5GKq43wmUgTJzRVjLSHCBM0BK2MxDBkWvy7f2lwv 8orPtU32RJgs6B2epAWBkFhcPFGSby8SSGgclUprqO9jvWiH3bSY83h3xz9KAOfga7ypd4 JVG8HP2sfP9slPfbfYB0Tv9Epgku9z8= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2B29E2F4; Wed, 17 May 2023 07:58:54 -0700 (PDT) Received: from [10.57.58.217] (unknown [10.57.58.217]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2FEA93F73F; Wed, 17 May 2023 07:58:06 -0700 (PDT) Message-ID: <59cb3075-3747-7478-58e2-534b00b5daec@arm.com> Date: Wed, 17 May 2023 15:58:04 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH v3 2/3] mm: Call arch_swap_restore() from unuse_pte() Content-Language: en-GB To: Peter Collingbourne , Catalin Marinas Cc: =?UTF-8?B?UXVuLXdlaSBMaW4gKOael+e+pOW0tCk=?= , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "surenb@google.com" , "david@redhat.com" , =?UTF-8?B?Q2hpbndlbiBDaGFuZyAo5by16Yym5paHKQ==?= , "kasan-dev@googlegroups.com" , =?UTF-8?B?S3Vhbi1ZaW5nIExlZSAo5p2O5Yag56mOKQ==?= , =?UTF-8?B?Q2FzcGVyIExpICjmnY7kuK3mpq4p?= , "gregkh@linuxfoundation.org" , vincenzo.frascino@arm.com, Alexandru Elisei , will@kernel.org, eugenis@google.com References: <20230517022115.3033604-1-pcc@google.com> <20230517022115.3033604-3-pcc@google.com> From: Steven Price In-Reply-To: <20230517022115.3033604-3-pcc@google.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 4D08020013 X-Stat-Signature: tad5hgtqguqd773ndzb59atqyhm1r8th X-HE-Tag: 1684335490-846498 X-HE-Meta: U2FsdGVkX19YbuKEYmOD5Gs26GtuxbcZgrAGiydGfXM6I2rGsk20A39zo3+YZVfgOWdmVsvNvvDkVbR7Ztz1jLD55/RH74TtRXfOkW6RfJ0YOjr5wO85TGVRb56EEPwTXgZaLZIzFUXG6bKRG2xvVszeTSJe7iRO6qMCmOcoPSyI0uk+kFy22BwkMj0/lGGe2HsGmL088IYdiclf5HPQJPCgLQ4HuJZcnMZrFCOGcah5rbWIyu/ZDY8HfVhrj01nSWzdA32OKYoTI7qjpcqreiMk6rfxmv0e0wNxsC89J0ozq/HZ6t6QFEy2+yyntDmJQFtPToKvhi9nOcsn1gTLZ7p39rpST9ogHw8ECPlpktI6dVlimqOaaihphFW0Jtu4WFkoSDz3X1U6OkzD8iEye/hPYwZf+X4Ajhrxi0duFubA40IhTEvYdEyFTegYeK6JN2niVByDykf/dlhsqSchfyWVYDQv/bftdOQXYBaYPxgHfNsQWjivcPfzTyhvA+gRZNtNOsBu2Aznfgk1wxXZg2qJ2i4oURYLpI5/EHkXrFPzl/7U5mMEpYhaoOiQLK4vG90MDvicEhbIojRCoJPfm2MPA28VSOnPRk3f1kERNXkp3ZuyV3RtOTcQUuznQEIovvZg0myuOEg2kZGKgs29tU271LAyt+MSUzrpzKrE1RhYYv8/RNSEM0BKKqZtFTP8C5SRwrUUMSH9CDO3CbrpHX8hYWU9EsXv2m69rL7EbpmBVajJWZbmAApFL5hoRJ3fsXta8dADcmodof8GcueAsCPlHuwCKz5VKfbSfHmQurMa63yqxqJtAnEViZVYUSPVVC1eKnqgghgE2VgyNF6nh8khlJnWiQKS3lPNKqJnUy/Dq8B43GnX02uruTBjkRd7ItjNVoEqn4+Fs9Pd68LMTQ3RMuyTWLK2RvtYv+VDh6+4BeiwnJD5ceeJqwR5BuSE15N2RrqwGdkbaodr0x+ LdWsthrQ PkifANjjWYq8pcdEnJ3AmQr2pGTdJn72W6kG9cPlLw4tbqI4RnKMslRi4jCLiiSftcMWuzL0mWYFeTSNhvkW1N7PbGtQpoBpYwCjYM+ciFW1aYeZ3HvQxj1zzbrTNkrQ04t1A/a0g+JiMwhn6jRMokHny2YG0H2ED7z48RPli7IDLpccwrqG27CkLF2gLqlYD1XEkmId1tbL2Dz+GSTojOH5iF9HVD+ksTbjKTzHLw1s0FB3iCcgke0r7kXfxahW49jbi+T7qnf+gammZWzY8WJwdJVk/uzYb7DAZOPkyfPWTT6KRn8D6IK59Wbs+MwrTJ1AGhqNM5DSyYtNLqA9YTT4+oQ== 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 17/05/2023 03:21, Peter Collingbourne wrote: > We would like to move away from requiring architectures to restore > metadata from swap in the set_pte_at() implementation, as this is not only > error-prone but adds complexity to the arch-specific code. This requires > us to call arch_swap_restore() before calling swap_free() whenever pages > are restored from swap. We are currently doing so everywhere except in > unuse_pte(); do so there as well. > > Signed-off-by: Peter Collingbourne > Link: https://linux-review.googlesource.com/id/I68276653e612d64cde271ce1b5a99ae05d6bbc4f Reviewed-by: Steven Price > --- > mm/swapfile.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/mm/swapfile.c b/mm/swapfile.c > index 274bbf797480..e9843fadecd6 100644 > --- a/mm/swapfile.c > +++ b/mm/swapfile.c > @@ -1794,6 +1794,13 @@ static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, > goto setpte; > } > > + /* > + * Some architectures may have to restore extra metadata to the page > + * when reading from swap. This metadata may be indexed by swap entry > + * so this must be called before swap_free(). > + */ > + arch_swap_restore(entry, page_folio(page)); > + > /* See do_swap_page() */ > BUG_ON(!PageAnon(page) && PageMappedToDisk(page)); > BUG_ON(PageAnon(page) && PageAnonExclusive(page));