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 B2A83C35274 for ; Mon, 18 Dec 2023 15:56:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DBA86B007E; Mon, 18 Dec 2023 10:56:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 48BE76B0080; Mon, 18 Dec 2023 10:56:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 37B396B0081; Mon, 18 Dec 2023 10:56:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 292426B007E for ; Mon, 18 Dec 2023 10:56:30 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id F36A3A2C39 for ; Mon, 18 Dec 2023 15:56:29 +0000 (UTC) X-FDA: 81580391298.13.D0F46C7 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf26.hostedemail.com (Postfix) with ESMTP id 2557D14001C for ; Mon, 18 Dec 2023 15:56:27 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf26.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702914988; a=rsa-sha256; cv=none; b=JwzTIby9vz7ke+vwPq9IIVQsolp6qzigDj6FlTaST6UpGYJoF5tJ0R1+ORRklYy/A732Bk gvTZ2lI74rTWNxRqz9IdfyrU8m7UWM36hYlhujkt6lLYYlPIVHzmrKXI7vr74TZXqs6Zsa 5cptQswiGqNwm4eEffvXLS5eKBpa8Dc= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf26.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702914988; 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=Aq6LBAlxISqlZyScBvKU7JSRvNJp71SS+vtH37m1ZZU=; b=JNTJJu9I7lTrwbRr+MKyknEnTmaO4nj/rBMySz8aKg9nvjv+nN8CpvLw4JYcdnzlDh6YV1 ovjorZ/NHV/yoZ1/n45LVcASmNaryhkwb0VjmR3q5qfL+fsNi6aqmDgp9oxiPqpfI7u/v5 KtMRjdGIPdt9xui3Ab75azmNfj6qMEQ= 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 9FCBA2F4; Mon, 18 Dec 2023 07:57:11 -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 84CD13F5A1; Mon, 18 Dec 2023 07:56:25 -0800 (PST) Message-ID: <5ea33aec-86f8-489c-937b-77a53fca20ce@arm.com> Date: Mon, 18 Dec 2023 15:56:23 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1 08/39] mm/memory: page_add_file_rmap() -> folio_add_file_rmap_[pte|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-9-david@redhat.com> From: Ryan Roberts In-Reply-To: <20231211155652.131054-9-david@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 2557D14001C X-Stat-Signature: 5xjr7fabm1j6y4f7fxwx7k9dgbb4i5up X-Rspam-User: X-HE-Tag: 1702914987-347233 X-HE-Meta: U2FsdGVkX1/kuRDzf9dTpEj7C0AOp9x9Zrf5i7P6j1JYDoh8eLDQBvra+7TSIitbqS/ZxNP9XHOHMqfnGDFqpgLbFnOnB7l3XxKtu3RreRjJmLpTwXt1p6YVARemaHvADgQbeLRTUwbyDuNw7JDc58IElkkTVqF79k0QJHrHmmRmmwTqEDqbjSdSewnp8qcbOT087rmOGhHXq5WKngSKb8C7Ujmz69oAneJJYgD0cyfdium0w/iAzedyfjE9miZ/bTIeA+UtOzNRe9sBcF80TKakOetWMb1hlgQUWNuR36zvc4DoHoevmTJsA9HWCbq/8JtjsrCu7C9uIzCPB+UG+tswXqwtF3hTnep291BA6QpwiXGxL9y/LRwjWMZnb08sY6idsSgTgEyNdag1/9zi8fI2COMiRDZbeApRcGXYRRizFHLaphbbEVed1WZhqmiwm1s5gm9yejFgULUy6CjOb5UmdGTh9cCEoX6x2/5vsPI/CaPrX/hMmzxsy2WzgUfJ93AQVfuzCgdHsI9x0FjF1R6V5IPDX1Uo4Z2t1/COhxO3XsA7yO+ml2eJl80AGyGAodM+LAZJ0NTaL2N1nKQsCDad+qXOwqPNcS4O7UCt3aAQXecOZmIVNEgQ4d1lq/5VjXjnPD79D46OqCwSWHq4GlInFwzkNfHmPmUwHwNkVOax71KrXsXwO8hsZYQRLh1VehWfcyAhP3P9EH0TXKImmP5P6SCXrPb4gKuG5JYWXEXtIqtloG/sEIgn86SUXIIOoQ4XQi37bx91VzBl6uuxMn3iYhy7DygfkZyCXcOBgtikizlfapo3gw4zwxTavFht/Y5AEis7UiD50eagjWtxkAvOPyC5e+JgGvbLWhM+pgN51fzhn5HH6uyBBYjZSmY004ypbMJ9bSkBJARA1jgKYpXzxMatVE/I6e+GQllmCOn3HLWdbskstr1ht/J9enbvZW6w/v6XgM2ze211E38 MuzrSYNM 6nnGmZ0x+FzsfLML1KYHFwPZL9PSpYKHisw0EZUTVHMwR/T2bcWO8Sft8NVOKnG3GeIbQpI0cUsQyUbnQkJeEqY/Ui+m0GUPDK+NfmLTJW0XNvlSBNDrmHfLhvf/Sa1l/w/UpmRIBAMbsGkV9oPQSoKqOJj5wjKRPZcs4G9tWgSdIb/Y05EmKuRzER+7pzPfZrCkwPZnLtSjymqyzggvHdBtK4SifcRbH5OexTHZZBDDrMTlRTD0PrISZDnrKY87Yvvbi3RnCImRt7olH2MsxHUc8xLIBpfqv7Sw1C7HxyCIFY7c= 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 insert_page_into_pte_locked() and do_set_pmd(). While at it, > perform some folio conversion. > > Reviewed-by: Yin Fengwei > Signed-off-by: David Hildenbrand Reviewed-by: Ryan Roberts > --- > mm/memory.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index 6a5540ba3c65..70754fd65788 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -1859,12 +1859,14 @@ static int validate_page_before_insert(struct page *page) > static int insert_page_into_pte_locked(struct vm_area_struct *vma, pte_t *pte, > unsigned long addr, struct page *page, pgprot_t prot) > { > + struct folio *folio = page_folio(page); > + > if (!pte_none(ptep_get(pte))) > return -EBUSY; > /* Ok, finally just insert the thing.. */ > - get_page(page); > + folio_get(folio); > inc_mm_counter(vma->vm_mm, mm_counter_file(page)); > - page_add_file_rmap(page, vma, false); > + folio_add_file_rmap_pte(folio, page, vma); > set_pte_at(vma->vm_mm, addr, pte, mk_pte(page, prot)); > return 0; > } > @@ -4409,6 +4411,7 @@ static void deposit_prealloc_pte(struct vm_fault *vmf) > > vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) > { > + struct folio *folio = page_folio(page); > struct vm_area_struct *vma = vmf->vma; > bool write = vmf->flags & FAULT_FLAG_WRITE; > unsigned long haddr = vmf->address & HPAGE_PMD_MASK; > @@ -4418,8 +4421,7 @@ vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) > if (!thp_vma_suitable_order(vma, haddr, PMD_ORDER)) > return ret; > > - page = compound_head(page); > - if (compound_order(page) != HPAGE_PMD_ORDER) > + if (page != &folio->page || folio_order(folio) != HPAGE_PMD_ORDER) > return ret; > > /* > @@ -4428,7 +4430,7 @@ vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) > * check. This kind of THP just can be PTE mapped. Access to > * the corrupted subpage should trigger SIGBUS as expected. > */ > - if (unlikely(PageHasHWPoisoned(page))) > + if (unlikely(folio_test_has_hwpoisoned(folio))) > return ret; > > /* > @@ -4452,7 +4454,7 @@ vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) > entry = maybe_pmd_mkwrite(pmd_mkdirty(entry), vma); > > add_mm_counter(vma->vm_mm, mm_counter_file(page), HPAGE_PMD_NR); > - page_add_file_rmap(page, vma, true); > + folio_add_file_rmap_pmd(folio, page, vma); > > /* > * deposit and withdraw with pmd lock held