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 71DEAC77B7A for ; Thu, 18 May 2023 20:06:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D49EE900005; Thu, 18 May 2023 16:06:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CD2A0900003; Thu, 18 May 2023 16:06:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B9A94900005; Thu, 18 May 2023 16:06:27 -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 A6565900003 for ; Thu, 18 May 2023 16:06:27 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 77C4414090F for ; Thu, 18 May 2023 20:06:27 +0000 (UTC) X-FDA: 80804458014.15.85147DB Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) by imf04.hostedemail.com (Postfix) with ESMTP id 7155740009 for ; Thu, 18 May 2023 20:06:25 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=QwXTDrd3; spf=pass (imf04.hostedemail.com: domain of pcc@google.com designates 209.85.166.180 as permitted sender) smtp.mailfrom=pcc@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684440385; 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:dkim-signature; bh=Llsf50DWFe4C4yt4CKwUU/mwMek/qP2tT3Isdnsoo/E=; b=H8s9k0goppqyLXr5ZaqIlC+J97Essdk5I1Yf94pNRi+h0/NEyX2EaXdMl7XDDPHpTB0CuR pICiBcqfLUgpCKftB1wUGIWIOdajFjgWNDZaB5Y5+LXlDcLsxJDycPj5eJrZiq0VnzFZ3z aJcJwElRFxCVjG5/q83s6R7VWcoa5Yo= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=QwXTDrd3; spf=pass (imf04.hostedemail.com: domain of pcc@google.com designates 209.85.166.180 as permitted sender) smtp.mailfrom=pcc@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684440385; a=rsa-sha256; cv=none; b=jIObCSObpHnTifJz9VSNFNI2btxw+3nc/xKusYJrQGpmiT3xcqQT+x2rEyY8zaFRQT1nX8 NHPwjzCLQgvrecREaCUb3+DpA2elYk9JeYYllACz/Bkx+KOOCw1wF7iipWPMhapWy1tzSH V91RKPSPPQsfWRlQ1KFkZiYTpVQSvDs= Received: by mail-il1-f180.google.com with SMTP id e9e14a558f8ab-33164ec77ccso32555ab.0 for ; Thu, 18 May 2023 13:06:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1684440384; x=1687032384; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Llsf50DWFe4C4yt4CKwUU/mwMek/qP2tT3Isdnsoo/E=; b=QwXTDrd3SJelts9j+j9UzmNzyhPBsTx2joXvlvK05j+iopzqy0g9YNVbc9veuyqgMD qbVeu5jMKxAi/rsKorhn3MvqigHN/I2VcoIXJs5aNs4l+vYlCjbftWTkCxz7vRmY57ES 1DdYCsLvRAD6/IsVfHo1cS5qvxvdOAIzxkwihEHTLui58+fkSG3dN/p7n7LUdVsT0xpD /b2xfk43CpN5V1eIN8EpmA9KcBJE6or8NOBuz7fm/BdSvFOSxA5YnnQlVwI10hCaoyRO FTcRnrMxDZBg/ZDevgMwGxAglwWPl/9PBkJ4wGXsPxt8iq20b6C8i1ONFvL8SjRuScx4 6zEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684440384; x=1687032384; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Llsf50DWFe4C4yt4CKwUU/mwMek/qP2tT3Isdnsoo/E=; b=d3bWRVW7253VbzqFFJPIqNII8soZhmwQUn8cw1FI+CQQp/a7+lFK+xjPZ3om8CEJHl Dt1ghGAwaPdBdHRNfzCrNOPel6fRW3F/19aekcU6CIGAPGtX58LuWAFyedrs9Ot7bSnZ uth7MA3DIYM+8Wp9dB503/k++jk8q1sRoa4H+8pNsczcI0W3bGcgwJldDC1VQwfZC5+5 LLOG5rJxI6dZV7lEKOCZZmd909hY/a0xhlZzJpfcW3MfBi2ucTCYY5LsVI7q83TT/gAK 4tjuFa5bcDUcKpIR3frhI5fl7FFcR1OC9KLKIQ+mA1fNjvV5f2vzr703v8wDqtfdF3hK Jpug== X-Gm-Message-State: AC+VfDwW8DAjZU29yn/LIqszhLYxe+3NOWceRqyzgonC2APRJDu4DIw7 M7+P2EqC77cNKbPOv2Y3Ds3JH/jOD7d+Uz221YYqmA== X-Google-Smtp-Source: ACHHUZ7TnKSs1H8nCSexD5mn0PX6Pbdp7GYAtzTugz6CaARe7amjq9yGFwtzRQzLMzOtQyHpMHkr74j3WGyUaTolUEQ= X-Received: by 2002:a05:6e02:12cc:b0:335:f8e9:2791 with SMTP id i12-20020a056e0212cc00b00335f8e92791mr26729ilm.18.1684440384333; Thu, 18 May 2023 13:06:24 -0700 (PDT) MIME-Version: 1.0 References: <20230512235755.1589034-1-pcc@google.com> <20230512235755.1589034-2-pcc@google.com> <7471013e-4afb-e445-5985-2441155fc82c@redhat.com> <851940cd-64f1-9e59-3de9-b50701a99281@redhat.com> In-Reply-To: From: Peter Collingbourne Date: Thu, 18 May 2023 13:06:13 -0700 Message-ID: Subject: Re: [PATCH 1/3] mm: Move arch_do_swap_page() call to before swap_free() To: David Hildenbrand Cc: Catalin Marinas , =?UTF-8?B?UXVuLXdlaSBMaW4gKOael+e+pOW0tCk=?= , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "surenb@google.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, Steven Price , stable@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 7155740009 X-Rspam-User: X-Stat-Signature: 9eaouhhkra98uxgymt4aggnafm11cdtz X-Rspamd-Server: rspam01 X-HE-Tag: 1684440385-854527 X-HE-Meta: U2FsdGVkX1/dbCUaAUQLszTNu1w++K+d5OOxIsd7PnROUyopn6z3cx18uBnuz+DP71n2Rst1ZNP7DXoJwLPdCylaGghJLUrb2GyqcwTQ0tEIGZFIhKVHWnO1sAB8rcyNYNiKc0MwueAMD/BaUR4ufOsj5oj6aGsu4xrYdZ8nH3k+hgpqKTQfKUaLa4b3spMSgNnB8Yzb4dH62feSqCivCiwBEyHIS/E4MI5/lN52/XGtMDdMg92JuaXu7alz0p+CWXeO62paO8aIwCRmHBGdC+ZKY2RmLcaB+Ca8SyvHVePjVcyer9lVtTxMLJiLwk87c8qQ0tVi7/0Rx0ixKNnTCHq1ahwu9Np6JT7Prp9SPxIZRigSRpSmSdwuvco0PziDJaZqo9fBtUvYBGUpYGi3M0mKKk7ag4pW8CFFaZlw+aQeYgJHRN3nM1OM4jxhOs3sOAOJ2ZykUyjcHD5aOk0wdP2uFqVO51R3rk5KFM58aFZ3OFoWCsUifxwrTbSGMT5YllewTgtj5pLCOpQEyuEk/PbQr9oNaM40Akq+E8JaLPrikB3/6EcA1sj0fhs/oiBRQCJYYJdR4GgnuaHzQybhDCfardymCAlsM9OIynApvcs7fTCtAjER9tHlBtELsA3GS5r6UISra2HkHRU/ZPw4xDX9vrBPWfvGIbfc8lJN735U+wZOHd2E5tp9WfchKrMe57TiPeP8LCZApOMzbx0MhFpwPbeEB0jq9ezhLpUAZ6ZTdc7WymFFfC+Rfb+GRBZoQY5TBB3CGQQoS3vUojmD4mJbNoLFpHPAfFcuZxiiKQKr1G7QwfbeE4eux+huYC8ZtCWfCrfPp2eidaZ2doe/d5801m2NANmqivlmmO9wGmodNRYtAAQ5UuQSe2U9t4DNY93xj/6Aw0HO8MDW4eQ3lc118FTVW05T/H3PvW68i+bM0RSUJxTlibm/Dovbgoc2pM0b20KmiI5rc+PJBnQ L+2BW0XO mnayLc9OL1I4kC83FFFs5KVz8q9cP8/Ipwqoet2w8wwmJOD0HgRBkmtyrXlGp0JVTAUM0MZiTEOqhBffZT9rohFzOHJR82JiV6iIXO8LrNZP0dj49kmUJhuk5nJoKqJGHnEOD3L+AJu+r2YUtKw9uNPhUT5Ch0JATyGU/TjaOO9MgmbCMgZh/41Ai2RH6d1v1I1gZX/SuIRYvPo5Ww642sQA+8QuBbPvvizdODl9Ud+iIN4k8Njaz7oN7GeZ4+QMb7FVLnLHFy3tHS7Tap6b128Km3QjgGkL3ZFJ3lSdcJx8mum2HUiXJicLmlOyNbbgy3MGsno0fFYcENH7oJauCJrpnDA== 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 Wed, May 17, 2023 at 1:30=E2=80=AFAM David Hildenbrand wrote: > > >> Would the idea be to fail swap_readpage() on the one that comes last, > >> simply retrying to lookup the page? > > > > The idea would be that T2's arch_swap_readpage() could potentially not > > find tags if it ran after swap_free(), so T2 would produce a page > > without restored tags. But that wouldn't matter, because T1 reaching > > swap_free() means that T2 will follow the goto at [1] after waiting > > for T1 to unlock at [2], and T2's page will be discarded. > > Ah, right. > > > > >> This might be a naive question, but how does MTE play along with share= d > >> anonymous pages? > > > > It should work fine. shmem_writepage() calls swap_writepage() which > > calls arch_prepare_to_swap() to write the tags. And > > shmem_swapin_folio() has a call to arch_swap_restore() to restore > > them. > > Sorry, I meant actual anonymous memory pages, not shmem. Like, anonymous > pages that are COW-shared due to fork() or KSM. > > How does MTE, in general, interact with that? Assume one process ends up > modifying the tags ... and the page is COW-shared with a different > process that should not observe these tag modifications. Tag modifications cause write faults if the page is read-only, so for COW shared pages we would end up copying the page in the usual way, which on arm64 would copy the tags as well via the copy_highpage hook (see arch/arm64/mm/copypage.c). Peter