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 6A2AFE77188 for ; Tue, 7 Jan 2025 01:33:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DB1A66B0088; Mon, 6 Jan 2025 20:33:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D607E6B0089; Mon, 6 Jan 2025 20:33:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C28206B008C; Mon, 6 Jan 2025 20:33:47 -0500 (EST) 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 9E9AD6B0088 for ; Mon, 6 Jan 2025 20:33:47 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 16371AF02A for ; Tue, 7 Jan 2025 01:33:47 +0000 (UTC) X-FDA: 82978934094.15.6222981 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by imf27.hostedemail.com (Postfix) with ESMTP id 2B7014000C for ; Tue, 7 Jan 2025 01:33:44 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="Rp/rR53q"; spf=pass (imf27.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=ioworker0@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736213625; 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=S1cq8MFbpYBQ15nZ7TZmC38dR26HoCi1nRHmAE0jyLE=; b=bTZcXeOYdyvBpmfkAoK7Srul27Ur+m4337ExuW2raGu4q3nXrPw5498sly7askXG9rEjsx fHRIJJ/qNQ7qleiqG0OFEzHaRgr7e3IDwyw4uCyZIAb2HXdgYI+Ef3psLkMFCQFPcvWY1h cZNeeSpcDyNcd3LQpO9dAEAat9a5Swk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736213625; a=rsa-sha256; cv=none; b=RG+74UJBLqk2PfxR2+aWZX1LBbDdJtfWRfUKtFQEAEjTTC+EApEPQknkb/echjo/aP/iSh 3hYrZUglJ9bEUuKE1Dyykbb48mKaTiaUEZhF+iasAcdqESBpOSf2uZiGt2LJbo7h7mdtDB sEkfoA21M3ZISyk8Uk0xDaAXx83S0c0= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="Rp/rR53q"; spf=pass (imf27.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=ioworker0@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-5d3cf094768so1953234a12.0 for ; Mon, 06 Jan 2025 17:33:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736213623; x=1736818423; darn=kvack.org; 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=S1cq8MFbpYBQ15nZ7TZmC38dR26HoCi1nRHmAE0jyLE=; b=Rp/rR53qOvHrto8/FeOimu6YhFYIGJWNnbrJkOlgjaKp3R+R9PzERJAONI8IBG44Zy fqx/rEiWaMEk62Xtid+D+T0PQtK8s05bhqaPfmobziXBB4I+CHlIRnqHx467ChSA8cDn 5BB2INamLfAq5dkXZZ3hvM1h7n9Ri39ccrYK7k80Nhli8EetwluzIzQcmpwXAqtZQ51K WN1BMGxfyXja9JMwF9pz0ci/9gnnxh5LhJelQDfDo0Ge8oXwWxpz3Mcj3JwpXJEU68AU RuEq3OXDC8hb47f9XDdJCqaYpYNdoY08RKp1clFG3X9IGZXW19A/x6C+zAnp1l8Zn2S0 ilOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736213623; x=1736818423; 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=S1cq8MFbpYBQ15nZ7TZmC38dR26HoCi1nRHmAE0jyLE=; b=W7w/9e1okRq5ICb0XTYCKDHMf3KPya5kAySKoBlT5YyRpsUWyr0UQkC9JeC3e2uPwf pjS4VAKknxuQ+Ygr6mzUt4xJQKnCU/cKvCh41CNM3aTxoY806Oz79dRkG0Ee432rkcSi dTKmBuNXupbsh269zraBHdwDupKoSfhNRFT7HVj7DDWKPZ79a8riglvjGXVaxBFAVSAU cnpfHnqYoivpZm5vjbvvg0pnqJJpwiV8uYjB9cXhnMh+Jfu6crg82URitZWkRF0yFMWk OFgwkz+dPT9mp79k/ZJLRx23non/GUbQAHk0HKhw46+h6j1qeUQIwyyShCinu0fk9rB3 lfMQ== X-Forwarded-Encrypted: i=1; AJvYcCXskUEf8sOEdQ8rdDQOSIuP6QegpGsCjY3NxJIS/eW8eCCF93HdrjIVpjydZ+Lj4DS5/jdM5DQuhQ==@kvack.org X-Gm-Message-State: AOJu0YzrevpR0/9X32ooV8/BOiLE5+EOMMJf6hF9XqssOZ/MN5QgLfk6 emELPVbBNNuea7TwHQXO4h1WXC6pPtlDAzWmj1K9OAQfwWZH+3DekDztTeA61nzi+pg05QWtQHP eB4uueNns50+1Aqb4FlgbCIoTSWI= X-Gm-Gg: ASbGncvgfPtkgx60cdBTEybUcxhb2Vm2gUhRITr24U+nQh3lcK9P2j/rgT7wQdh1hPx em6NHrnhIqpEPwmsC22vHCmSt33Q6Ayp7c4TxAg== X-Google-Smtp-Source: AGHT+IFY1c/2d1AkAFyDlUnnS8En22lLEjmEOOwu78dZ4QLRW5CoAGB96WE7IsRvm/0TuAIextJbw7H2WkFHUM0Qd1Y= X-Received: by 2002:a05:6402:26c5:b0:5d1:f009:925e with SMTP id 4fb4d7f45d1cf-5d81ddad8edmr59384404a12.16.1736213623454; Mon, 06 Jan 2025 17:33:43 -0800 (PST) MIME-Version: 1.0 References: <20250106031711.82855-1-21cnbao@gmail.com> <20250106031711.82855-2-21cnbao@gmail.com> In-Reply-To: From: Lance Yang Date: Tue, 7 Jan 2025 09:33:06 +0800 Message-ID: Subject: Re: [PATCH 1/3] mm: set folio swapbacked iff folios are dirty in try_to_unmap_one To: Baolin Wang Cc: Barry Song <21cnbao@gmail.com>, akpm@linux-foundation.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, x86@kernel.org, linux-kernel@vger.kernel.org, david@redhat.com, ryan.roberts@arm.com, zhengtangquan@oppo.com, ying.huang@intel.com, kasong@tencent.com, chrisl@kernel.org, Barry Song Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 2B7014000C X-Stat-Signature: hyyiporcqhup39fui5ahzoihizmodau8 X-Rspam-User: X-HE-Tag: 1736213624-980968 X-HE-Meta: U2FsdGVkX1/84QnPDTg1B+8w761Khp6/mOeKBAHoznVLtFu1H7OrMrADzY5sjqPOBFwbenpoN/HNQIzP+UlEcmmIdlaQtYfOqcFynOMT2atYh1s+gFNuZgXrvol3Y1lL5LqWk2sMjgO6rAtGp3d2YXMfSW78hH9VYGDtXGOAScbQg7+PxnNKfeaQN1+eYfY/sTYYN4Z9TvDF+5E+OEcRLscmHDw+AfxXebxByvpsqQHiLdgSv5dHaFExNnRH/X6IG1YBFVZ9wK0cGE6WFl2xJpdS3u32S2Ud1QWIEM2d/9z5of0RDlL+5CFSpweK7j/ExNu9Y4RMStjmCROepA/GI/+DGQVHqPOUXFNqsD8CBUO6YIkP++EXfT2p28noNA10VaKOR9z4wkskOAFmNWeQDPp9X2lpLovaZjVA5Fq2d8o+10sywN3zPRR+vQfRETNd6Z8TFaYTiIh2GSzw9G+fh1h6il/yj+opRy8Z4QscSMwlyvBgD1GnhFMtTPq9cm8JqZ7nb9GMil2b97V6GcLCx4HCPZB5lEnVI15/qU+dnUUFqjA+OLKc9RDY4AahkMM+evCchW+TVKUN3xOGhhw5JX2XH1nSQBipq9ngo/xwH0JYVe9qS9gqV2fRfq21t5ks/e8ky91ujiPPkYWWXMH1+rwwo8LAXEqyBVG0BiquSLfSbaVBKYybaZ3A67KbmesY3AqJArG+g0ScT/T7fnW6kdQ39JHuMF6dHo9BGXwET7pbf2Hz7zWxWx2udaO5Jy6inORbTInjS13aDO6Hh5JqZ+tq6KxoA03C5xpieLFnf+iqtovVYydAydA8c20zBiwG4ijOm8zto/7dRkOnvwKihu5OWt2fgnaPsbES2Q83i99SjrPPAO9hTbRaP3XG2K/1mwFAN3NjIeSWNnxJ4t+zVLV4gLlugAbvOhd5IL5ri4+7o1yM5Vm/W3Bc1553k6MdAp4RfGIxrsVKyQYIMJa LR67y2Fj boiuvH7gVnzf48Z8WG5C/iICFqq/0463dsWgqUEN1075jSsvu2zyi2cG4JVnXaT4jQnjGaCI6xTsIxqsFdJDP6heYa59az36bcLRRJzzbX2QxHgU1X0ZA/AOyeB8xvPGnrNMbOc8cetMGC8SOYBseLX6MJC2pfyxvlSDHAvHMdQafZ/GIz8STu2W6dI1dncFumEtjTPnX7U65v04W9iavO6/VsSKGdF95oTtbzpjj46HddU05QflVAJzirXMX4iLqT9IxQdGrzZ9JCRgRAW/NR4oiprRyQzJYvKvRJg8UawIj1Qy98xVSY2qCGGpMRNgq8G/eUt27JRZCSNmBS6lao7cq2OJCHPZGrwYznmtbUTfBI8tAYFbGxVJQq8J3A7VwzK2CWKedhkmY/Q7W1mGffAzf7w4Jow2tU2xSvqv94aSnof6VnT6rKgyDc1CBQnWJPer0pfpcsH7ALxs= X-Bogosity: Ham, tests=bogofilter, spamicity=0.178539, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon, Jan 6, 2025 at 10:39=E2=80=AFPM Lance Yang wr= ote: > > On Mon, Jan 6, 2025 at 5:34=E2=80=AFPM Baolin Wang > wrote: > > > > > > > > On 2025/1/6 17:03, Barry Song wrote: > > > On Mon, Jan 6, 2025 at 7:40=E2=80=AFPM Baolin Wang > > > wrote: > > >> > > >> > > >> > > >> On 2025/1/6 11:17, Barry Song wrote: > > >>> From: Barry Song > > >>> > > >>> The refcount may be temporarily or long-term increased, but this do= es > > >>> not change the fundamental nature of the folio already being lazy- > > >>> freed. Therefore, we only reset 'swapbacked' when we are certain th= e > > >>> folio is dirty and not droppable. > > >>> > > >>> Suggested-by: David Hildenbrand > > >>> Signed-off-by: Barry Song > > >> > > >> The changes look good to me. While we are at it, could you also chan= ge > > >> the __discard_anon_folio_pmd_locked() to follow the same strategy fo= r > > >> lazy-freed PMD-sized folio? > > > > > > it seems you mean __discard_anon_folio_pmd_locked() is lacking > > > folio_set_swapbacked(folio) for dirty pmd-mapped folios? > > Good catch! > > Hmm... I don't recall why we don't call folio_set_swapbacked for dirty > THPs in __discard_anon_folio_pmd_locked() - possibly to align with > previous behavior ;) > > If a dirty PMD-mapped THP cannot be discarded, we just split it and > restart the page walk to process the PTE-mapped THP. After that, we > will only mark each folio within the THP as swap-backed individually. > > It seems like we could cut the work by calling folio_set_swapbacked() > for dirty THPs directly in __discard_anon_folio_pmd_locked(), skipping > the restart of the page walk after splitting the THP, IMHO ;) In correction to the earlier email: folio_set_swapbacked() is only called in __discard_anon_folio_pmd_locked() when '!(vma->vm_flags & VM_DROPPABLE)' is true, IIUC. Thanks, Lance > > Thanks, > Lance > > > > > and it seems !(vma->vm_flags & VM_DROPPABLE) is also not > > > handled properly? > > > > > > Right.