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 A4DEEE7AD7D for ; Tue, 3 Oct 2023 16:56:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F0C076B024E; Tue, 3 Oct 2023 12:56:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EBBC46B0250; Tue, 3 Oct 2023 12:56:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D5C816B0252; Tue, 3 Oct 2023 12:56:10 -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 C441D6B024E for ; Tue, 3 Oct 2023 12:56:10 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9A4D2803D5 for ; Tue, 3 Oct 2023 16:56:10 +0000 (UTC) X-FDA: 81304752900.20.43B2243 Received: from mail-yw1-f181.google.com (mail-yw1-f181.google.com [209.85.128.181]) by imf02.hostedemail.com (Postfix) with ESMTP id BDD628001D for ; Tue, 3 Oct 2023 16:56:08 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=OgzWDiqh; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf02.hostedemail.com: domain of surenb@google.com designates 209.85.128.181 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696352168; 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=qVY4O3aDRJ+9l9d853reVluvwxUpObOaI+Y9TV87Rh4=; b=Ph923vnTizZ0MnUO3Td10nTly/Wzt4eTRhUnQPEtkMl35WTxTLnZHU2+hd1VI8xrI+vKSz wKl99hLqI/MgyBb4bGszImOmwyVMb1+hAu+wnUSPYDCv+7q5bWy7XybC/YO/MtwuGXRA9C MCWOiyB5veEANB1AhFEo7bMNDcupjoo= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=OgzWDiqh; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf02.hostedemail.com: domain of surenb@google.com designates 209.85.128.181 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696352168; a=rsa-sha256; cv=none; b=G+49evEzdjbl9ISiKzt9RvK1w28f932iuO4BhlX0GowYatpRHGNWXzSz6Ux911HCXHoxCa fLym9vkNLDViD5pB3ircuA/PKKfuliOAaGVoEGEswVZdZifChwYlL8M0oz/0wm7+E3iUa+ xHZSoHDv7XPQYuaPzBG9Gv+bcaSlu5M= Received: by mail-yw1-f181.google.com with SMTP id 00721157ae682-59f82ad1e09so14309187b3.0 for ; Tue, 03 Oct 2023 09:56:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1696352168; x=1696956968; 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=qVY4O3aDRJ+9l9d853reVluvwxUpObOaI+Y9TV87Rh4=; b=OgzWDiqhqMg1rj25alYbK9sBycwmTsR0MOw0mwkA788mNAo0V8Xiv95LRNdV2DGUpt QCyasfURqQZHJ6PeVpfK7HXx6pRFd/HQpLOkCohpWvOWWJhZaccnIA40OTPki4/Y3Ho0 DdVkyXIwy7d4bkKCS2WhboFHD6sKCFVUMtYh7I5RJP7Mb+u+QiVeSno06zAerw3v686/ mrxzBTWXikivFIR9z0E6prKbZcIqRmgfQbLH9ReByqQLhDt4dYt4XECQ2ykSS4wBSoCv pETUFaSm7SQsAfuDIgDdX8Bmppl1qCoL2A5874rR+FYxR5T764gPtv1+w5F+bCYB7rRw jfDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696352168; x=1696956968; 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=qVY4O3aDRJ+9l9d853reVluvwxUpObOaI+Y9TV87Rh4=; b=Pd8KWxNemBCtDwkFH2Fje5ckXvWN/cQHuAMhbP2xaG9cqBEaOo8rS4QujcRiEbfeIP LaMRYDBp9nFSHPxSEPZyklt4Tw/Ygt/Rc+C/ywJ1aTomlw5FkUdAbzqH/sAkljFGX/RF lc3WlNJyClN+Jl+ohegKpzbV7CaFy36WoAGmrnlzUbiMTx6hHahVAGrqWEXZ4yViFN4j p9o6OQbmi8dRkCC2bI6oKfM4Zmi+pWzWQ/RS8+iqBRBNZgin/cZPLZy94eFtH2kdRnxU QGBegxVRAaDFlnMdsTN56IjpshxWU1w3co0luB89PxTfzZJ2QR7MoGpJR7aCfUOwTVoy 2yVw== X-Gm-Message-State: AOJu0YxCzu/8AYfJJ0UTDWf9rUNAAugDQTQy8X/Gj1oC/iOOzyG094Bf fHZaz1xuFjpqRki3T2eVub+MbDo9xNgrJD+ljMJ3jQ== X-Google-Smtp-Source: AGHT+IHW2FWWosxQsv+RqGCrW8QqqapSDoaKCao+4kM7T48rQ7jHI9TcooWQJg7IqM3DmO1+wyTvuo56N+GkvbC6Qrs= X-Received: by 2002:a81:690b:0:b0:592:227f:7964 with SMTP id e11-20020a81690b000000b00592227f7964mr130880ywc.47.1696352167618; Tue, 03 Oct 2023 09:56:07 -0700 (PDT) MIME-Version: 1.0 References: <20231002142949.235104-1-david@redhat.com> <20231002142949.235104-2-david@redhat.com> In-Reply-To: <20231002142949.235104-2-david@redhat.com> From: Suren Baghdasaryan Date: Tue, 3 Oct 2023 09:55:55 -0700 Message-ID: Subject: Re: [PATCH v1 1/3] mm/rmap: move SetPageAnonExclusive() out of page_move_anon_rmap() To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , Mike Kravetz , Muchun Song Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: 7as9xdittgeci1f1osrap9hfhaxfworj X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: BDD628001D X-HE-Tag: 1696352168-171053 X-HE-Meta: U2FsdGVkX18dId/Tfu3g4glg5sVJ1R5689za4Uk80rMi3Y3ChuPhFqHQp6nH/iu6KVOsOaJ7z43ZxXVchlu15QQ7/Vt4edswpnCWNWQ2elJFADxVD5cI9fiy2mKKARglKsd+FayiiqpqQLSUC4LtxARqOIR6r+9XSpyYTZEPwFkth30tsX4A2VmRTHxciy6XQqHxWytl7Hru0LBPI14RJubxADio96QLMPq6Cc6aZqMH/nQUJhjPecBfuUsGVr7EBgGG4eKnKLgqWObZbD4EMUuxm5KhgW5iRiu1kH1i8LQfF/dRKYclyFTUfQm51LJb//220wdn9EHA9fqy+EF/Jepp9nymz8t5IpI3IZ0oSz9o6hVx2RoiHJ9VJiLETdDGBgPKT5UIaN+1clHN7mgbLOPJVONmKlJO7H6zRXZHe02+4BeJFe1jetaxf31uv8d2+6cFxx9HPKx08ZqdzLcaqyFhk+v/w9ROhWPsVSwEUeU5C2K6VPE/tyVO4naO54LU/u0NOIQGAsk+EQ/UUuXB4gDabwmDWMlb6l/dhzK+k3BmwMJVep+ML83OoDRMqyLev6LpKgKMdmM4FmjKFlwjXoCHs2XYwubcA88TXltyAyqXLzgKNAQMdkR5nVYWiTZB7C7TK91ahQpFyZ6ueTiO7po8x0A3nRozEM0d/juGkbW40KkrHOrZkHpecDrnOgw+JvCS347bYAth3AKczED0N45uO+uMGPY/IUYAQSV6vhrVqmchRVia1ccPcsvdT8N8Z7e0T/cEXQctkhuaSo7mYIUHaqwBVlpdY415+8SEWe6RTt9rqiQhvY4Fg/yykUUg6Knz8U/Rm6y2tLOfgzRtWqD4wjrpxaaum4dhcA3AxBk1V+iulHMtrvZIklu9uhSyDayPMqdwnYlbMEJALJ4CSOLaOSF/2ICI4xUUGfaM47wsqxddSfpcgqzdrWbvHFGaueaN9FntEUWmaFVnv5W xCN3GS7k 6pLK9x2Vaqyvd23OtJqdT34fqAbCiEqI2siRny1a714N6iwWpWj4vYo8A1tMSkyOwkpXZkdBmsYkArHIs3xMEYKa5XATcFoxwb3xxm7IW0Uciryv5Npky5qtuyHbLO1kpqqhQpk/fJfVZ63llguyzyCD/5mPqy7oreSIFeDB3Z22YoNs78rfP/WWtlhUk5FDKBzhxhYj6WBLap+3N6P0H24VqGqjnSAgqmYuQBsifSVrkLGX++UwBe5jXKUL/92s/oRbCpIJJd8rLSBPG7NMJL/Q5AGV1qL9ijnuGrr8fujnjIZAa30byRDYes8fw+/CQutkl 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 Mon, Oct 2, 2023 at 7:29=E2=80=AFAM David Hildenbrand = wrote: > > Let's move it into the caller: there is a difference between whether an > anon folio can only be mapped by one process (e.g., into one VMA), and > whether it is truly exclusive (e.g., no references -- including GUP -- > from other processes). > > Further, for large folios the page might not actually be pointing at the > head page of the folio, so it better be handled in the caller. This is a > preparation for converting page_move_anon_rmap() to consume a folio. > > Signed-off-by: David Hildenbrand Reviewed-by: Suren Baghdasaryan > --- > mm/huge_memory.c | 1 + > mm/hugetlb.c | 4 +++- > mm/memory.c | 1 + > mm/rmap.c | 1 - > 4 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index e54fb9c542bb..01d0d65ece13 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -1506,6 +1506,7 @@ vm_fault_t do_huge_pmd_wp_page(struct vm_fault *vmf= ) > pmd_t entry; > > page_move_anon_rmap(page, vma); > + SetPageAnonExclusive(page); > folio_unlock(folio); > reuse: > if (unlikely(unshare)) { > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 9c22297d9c57..24591fc145ff 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -5460,8 +5460,10 @@ static vm_fault_t hugetlb_wp(struct mm_struct *mm,= struct vm_area_struct *vma, > * owner and can reuse this page. > */ > if (folio_mapcount(old_folio) =3D=3D 1 && folio_test_anon(old_fol= io)) { > - if (!PageAnonExclusive(&old_folio->page)) > + if (!PageAnonExclusive(&old_folio->page)) { > page_move_anon_rmap(&old_folio->page, vma); > + SetPageAnonExclusive(&old_folio->page); > + } > if (likely(!unshare)) > set_huge_ptep_writable(vma, haddr, ptep); > > diff --git a/mm/memory.c b/mm/memory.c > index d4820802b01b..9de231c92769 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -3484,6 +3484,7 @@ static vm_fault_t do_wp_page(struct vm_fault *vmf) > * sunglasses. Hit it. > */ > page_move_anon_rmap(vmf->page, vma); > + SetPageAnonExclusive(vmf->page); > folio_unlock(folio); > reuse: > if (unlikely(unshare)) { > diff --git a/mm/rmap.c b/mm/rmap.c > index 77222adccda1..854ccbd66954 100644 > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -1165,7 +1165,6 @@ void page_move_anon_rmap(struct page *page, struct = vm_area_struct *vma) > * folio_test_anon()) will not see one without the other. > */ > WRITE_ONCE(folio->mapping, anon_vma); > - SetPageAnonExclusive(page); > } > > /** > -- > 2.41.0 >