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 540B9C35274 for ; Mon, 18 Dec 2023 15:58:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E7B106B0075; Mon, 18 Dec 2023 10:58:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E29E66B0078; Mon, 18 Dec 2023 10:58:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D18DF6B007D; Mon, 18 Dec 2023 10:58:11 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id C44566B0075 for ; Mon, 18 Dec 2023 10:58:11 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 9A41F1A01AB for ; Mon, 18 Dec 2023 15:58:11 +0000 (UTC) X-FDA: 81580395582.19.B6CA652 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf23.hostedemail.com (Postfix) with ESMTP id D0093140015 for ; Mon, 18 Dec 2023 15:58:09 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702915089; a=rsa-sha256; cv=none; b=gquWe+8ar/aIZbXBpvERcv646VV1QAOPEnbXGD4S0lsSsBGboaLcTqwzS4I0zbI8AZ4Txg Jugyod0asVYdJNyGZ6uRbkoBmjz+IImXtXODpJEgocvINdQyqKq3U+y8VMFcFfC9Q7Vum9 mvmSDct8bdiZWOaYrZjoLv+LpTcgiMo= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@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=1702915089; 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=Ll4+EbR3AcwkfGpkvvp2FgH+rJY5tW2cpZwHuXYbTkE=; b=TEP4muaA0hU5fgJEXgg8jnvnh14DaKEJvYekw8+cD7HdeMlytQA/p1YRQIzbQ7KvDqUyQc icnazmWhZlglABYPfGeY5iedt1cwxCKque1AM3TPtB/lHrmGJoFzvGESM4A59irtAcDHFY awPLuO7kdsSaIGzKTeyGIWHZW6K4UYY= 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 088922F4; Mon, 18 Dec 2023 07:58:53 -0800 (PST) Received: from [10.57.75.230] (unknown [10.57.75.230]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2F40D3F5A1; Mon, 18 Dec 2023 07:58:07 -0800 (PST) Message-ID: <2edb0a15-a677-4e4e-b4f9-ba2d85bfaa46@arm.com> Date: Mon, 18 Dec 2023 15:58:06 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1 09/39] mm/huge_memory: page_add_file_rmap() -> folio_add_file_rmap_pmd() Content-Language: en-GB To: David Hildenbrand , linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, Andrew Morton , "Matthew Wilcox (Oracle)" , Hugh Dickins , Yin Fengwei , Mike Kravetz , Muchun Song , Peter Xu References: <20231211155652.131054-1-david@redhat.com> <20231211155652.131054-10-david@redhat.com> From: Ryan Roberts In-Reply-To: <20231211155652.131054-10-david@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: D0093140015 X-Stat-Signature: cq7u8tcorcaiae3mk1pnwkmmctww3rjp X-HE-Tag: 1702915089-770250 X-HE-Meta: U2FsdGVkX1/6ukNm5gw8ncGSzJ5D5B8L+kaoQWnNVvNu+Muw8yb6mO+XrHxfxTh1kYX6V314Qe/pQPf12ODsJ+BNeZ2bNL/qV27VjTok3G5Zr2l8LxUkD2sG5PJDnz7tYKoSHqNfVRsjDs5SL+8CXRKc99rueWZfiAsRhw4OIS5Ot7WIRB35eF6GljZ2xb4pwM91z9HdwHWiuVpc8DSSatOBsH7r17cLhGpFJmi538mqFJrV/RAok7Wzz9CO+wj+kICgSIz66sZxf5pddERL0E39Gn+4XyeZC7DEtfDnKkEcTVuw+acT1aD407aMzoQII7whefK0MVP0JxJe3M8oQhv77OlNG3WckkeMywDrDFArn6TyOJs9HN6gRhaH/x/ZYDRKLHqvmuGH62Swd3/PbCmUtEU7RnCtggIAILB3rvpKQz5VE12zaHzEFKq1AopOei54iOt1qdg/VsdnLW3XNs5oZKCfYrwPK4iHhuvS8gd1LWbb4b4WKyP8dRsIcaOq6m1iZ6CskXkzIf6bN4YLDuH/N8G5xO5nQIJ48Rgrwk9Efr1yiW0Yk4uNXez1+wNPF0elKwHAg3ZuG4aYAlTQHwTLG/jXeCrL9/QFBRNEK3TR3Y3qYYyZUUuHi1sk4GdDbKqeUYILIn6eM5dYLmUglPFkr74wekgvFJeMEYznjqd4u1NDmYekThlD76zuSbACHvvabhm9IXzed+ky3d86E87dflMt84W1qJNDY+NofsZRq0OTA+1AmeCXb0CiQmIiWxoTUh5GDVFaP1ldxcEfye0KbS0m7ql2bEDTk/+IdM8p7svNXx+lvqIKKgA0PigyMxdPs5FanaGjLmLDn1PZ4hmH6wlAx5988ibKv6J6kOGrN2HcQZfwaMJebagdO33nszh+9xG0d13ghASb1KJ1KldStLWjiWnPvnJnlvasPBuG1m6pvKRIyqz48e4YIWciyJZmwbrOSFwLvh/ZOl+ Jo7303bf RWZLF6jiR2xoGes/mVYlIgS5ypWFaNnVzdZwsxhmzDv5xpjr0/izuBy5kE3U4ps5TKtfQ/EixMO9/E8H8VPtowKyyi0aYDcZL1vKLnGUXMsdwTlDFD6ctTq1yO4NeC4khZ/v3iWPtyBKfGcbUcPBh9+iazPpjYzC3D0a1bFsbOF6cFVivymMe1rOW6W8Y64s1jj2wP3feUUFreKltAQK0tGWBqzYBAys7KtxiF7pZwgN0jOOWECMKP5UyMC625b8KnO73DO6KPNyOnE97i508axTF8IZ8XJ3qsivLV+adr8Yq/h0= 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: List-Subscribe: List-Unsubscribe: On 11/12/2023 15:56, David Hildenbrand wrote: > Let's convert remove_migration_pmd() and while at it, perform some folio > conversion. > > Reviewed-by: Yin Fengwei > Signed-off-by: David Hildenbrand Reviewed-by: Ryan Roberts > --- > mm/huge_memory.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 3a387c6f18b6..1f5634b2f374 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -3577,6 +3577,7 @@ int set_pmd_migration_entry(struct page_vma_mapped_walk *pvmw, > > void remove_migration_pmd(struct page_vma_mapped_walk *pvmw, struct page *new) > { > + struct folio *folio = page_folio(new); > struct vm_area_struct *vma = pvmw->vma; > struct mm_struct *mm = vma->vm_mm; > unsigned long address = pvmw->address; > @@ -3588,7 +3589,7 @@ void remove_migration_pmd(struct page_vma_mapped_walk *pvmw, struct page *new) > return; > > entry = pmd_to_swp_entry(*pvmw->pmd); > - get_page(new); > + folio_get(folio); > pmde = mk_huge_pmd(new, READ_ONCE(vma->vm_page_prot)); > if (pmd_swp_soft_dirty(*pvmw->pmd)) > pmde = pmd_mksoft_dirty(pmde); > @@ -3599,10 +3600,10 @@ void remove_migration_pmd(struct page_vma_mapped_walk *pvmw, struct page *new) > if (!is_migration_entry_young(entry)) > pmde = pmd_mkold(pmde); > /* NOTE: this may contain setting soft-dirty on some archs */ > - if (PageDirty(new) && is_migration_entry_dirty(entry)) > + if (folio_test_dirty(folio) && is_migration_entry_dirty(entry)) > pmde = pmd_mkdirty(pmde); > > - if (PageAnon(new)) { > + if (folio_test_anon(folio)) { > rmap_t rmap_flags = RMAP_COMPOUND; > > if (!is_readable_migration_entry(entry)) > @@ -3610,9 +3611,9 @@ void remove_migration_pmd(struct page_vma_mapped_walk *pvmw, struct page *new) > > page_add_anon_rmap(new, vma, haddr, rmap_flags); > } else { > - page_add_file_rmap(new, vma, true); > + folio_add_file_rmap_pmd(folio, new, vma); > } > - VM_BUG_ON(pmd_write(pmde) && PageAnon(new) && !PageAnonExclusive(new)); > + VM_BUG_ON(pmd_write(pmde) && folio_test_anon(folio) && !PageAnonExclusive(new)); > set_pmd_at(mm, haddr, pvmw->pmd, pmde); > > /* No need to invalidate - it was non-present before */