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 B6ACFE82CAE for ; Wed, 27 Sep 2023 17:00:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 335558D0098; Wed, 27 Sep 2023 13:00:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2E6148D0093; Wed, 27 Sep 2023 13:00:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1ADD98D0098; Wed, 27 Sep 2023 13:00:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 080028D0093 for ; Wed, 27 Sep 2023 13:00:50 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 0563280DA1 for ; Wed, 27 Sep 2023 17:00:48 +0000 (UTC) X-FDA: 81282991818.27.482BE9C Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf19.hostedemail.com (Postfix) with ESMTP id 11D6B1A0035 for ; Wed, 27 Sep 2023 17:00:40 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf19.hostedemail.com: domain of cmarinas@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695834041; 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: in-reply-to:in-reply-to:references:references; bh=CCFQEXiH3YiKMpuHWXBsClFZP/uX5QhpQruXqmOvJLg=; b=D+4pS3d0a6NO/NJsTN0tl0aMBOORmZaRg9cc7NOvmmPO5L5KmgfJqY3MQ7cs0jMvRurRIz rv9nw9NPELkeSGFrD3IWzDcJELTBt7o5QcYg0/kMVbtSqLky9T+s7fHd/7+NOSGdVMv3i4 aWd//jo7qydN0epzsOJVLfs3SA/lLbQ= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf19.hostedemail.com: domain of cmarinas@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695834041; a=rsa-sha256; cv=none; b=NnNuaO2r6l00+aO41HtxSqvzGMyKVwcat4c0a8RTO8rnuJ3WpA9piW3QCwuhNswojtRmFN iseBuoTWp4+6z/nSnYpsBSujRtLIxp6tl0YiTIJmQp5pZxycWE5sd0GLlGEdb5ovhv2N6f DcoOpn50aX0Nu8LNIpUG8XtZWp7Nowc= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id C9AA0CE1A97; Wed, 27 Sep 2023 17:00:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ED933C433C9; Wed, 27 Sep 2023 17:00:35 +0000 (UTC) Date: Wed, 27 Sep 2023 18:00:33 +0100 From: Catalin Marinas To: Liu Shixin Cc: Patrick Wang , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/3] bootmem: use kmemleak_free_part_phys in free_bootmem_page/put_page_bootmem Message-ID: References: <20230927035923.1425340-1-liushixin2@huawei.com> <20230927035923.1425340-2-liushixin2@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230927035923.1425340-2-liushixin2@huawei.com> X-Rspamd-Queue-Id: 11D6B1A0035 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: ukja9nnzq78f6owiutmngfbhn7fnjzap X-HE-Tag: 1695834040-648918 X-HE-Meta: U2FsdGVkX1+iun4IN3jG6SEfpBwigMer/w/M6RXy9c2xO3ZxcUNOQ2YDkELNKwy28FS0986ZRcVDy3OVo2Z8KMgOZHrjj6b3G9kOeEL584plfgWRF6+20syNONotbMgbnF4JmaS1JprnpY6vDO+s2XlSwkLZt3WvpHRTpjp3Wn4ninWFcPlJnjA0f3UAolYUkg9OzcoFKjK8x8RZNyZEkS1oZzcf0u+mkzJgqMqaw04miIP20qaSp/FODLm1QBdQ4rDYXf3qGoxkw59x1ykwxGKq5OK2Kz6QQrBJ3UW2DUZQUmmv48Wv7oRO5yTymCHEAv8t7NUtqRZ5xcW36RhFGynFk+nboo5s6O3MueVoPst2+uahDvLAIONOnLKtzA6gnbJ73tIgYyoW9BFQTkAENgP17+vOSyrNh37y10PIW85o7t1RRmBVZCOI0O1WP/VCzpq7RQwskE7E8l0QEui9ErXsITfyiM2hXWFvAjRckpOl/v4c2+Uikg7yge2wFS5R02wO3+Ets5SX9zYw0RlIAuMwIpPNP6pGmHKikMoelcculdTPAE4ClqPK40Jhw5xY+qPE61Yu+76tSg2mID+P+QxB0bWKjn1e2dPL/78qKE9p54udl6RidiPVCeYhuu0JmdFm2/cuVPeoxOec79pXA8rhn08UfZ/voGMACP6Y6AwJz/ZqRCQI6Wf6aMPMlGwoD6n4ZYa5Sw+VUE1lPMao6mM0gE42GArswjFVLZrmiSW8DqiU1+Dh3/dOQT8PPouAbehtyKhlloNQe8vmvZz4LdqyLHE7EMCsfmbCE3/g9NMOqjZtTefkmhT//vtaBZ6Vk2h+Z+gdbYjRsCAJbBojriAPtMHvJKc/XewNDwEfN0y2EYGbqWOQQG6A89WpAeT+mnQYOSc0PUvc0JQLBdxLoFv0zFmvAIm8nZveKQxnwIic1DBP20ROuevrbO9AbY6ZcdliOIiAqmB40Gi6lqL h9ycTwVV jiFCp1I9iRDv29ryEI47U0lIeeSdOXXyS+WvQJLFHrjLflDsEXYYrDKUBs2wrlYUe5IhZ4RxtKw7roEIpT5WFwPZLDe1lmsnwPdnQrziZPkLKUqsTtZTHqbD247l1fPZXpOuLV60xveqvQy71e1NCGeTRED+RL5XYXPDDKRAQKXuyeVpoHCpCaDnavVZWKwEexC/Uw0xyTLdRtiWBLQK5c//dwXZ+N63Rt8JtPPp0zJqjCm6UgaCf9w3QHvv38kgGRgJELd5A6DRguo0G1JFx++/9Bw6cqipqcHi5/C+nLn8KThiDlF2o4wJjW/SpQBk3DGzjGdtBD6jc2kBrOYbWX9folrEezskUQoDCtYyacNhjD4KfeQ4R4bRDs60SnpH8RTzRiT1qKLjzw/msOp5fQ03fYDXdvobz3H9XhvFmkTk+Mj1/m9xlTdEyr9EQ7mAYuVEnHFD1DY28NYOtDkFEW4dB8RfCohtjO/7SjJqf4rYVqdvg7WAHRPvNg5MvNun5Y/O/hQBVdv01KgQ= 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, Sep 27, 2023 at 11:59:21AM +0800, Liu Shixin wrote: > Since kmemleak_alloc_phys() rather than kmemleak_alloc() was called from > memblock_alloc_range_nid(), kmemleak_free_part_phys() should be used to > delete kmemleak object in free_bootmem_page() and put_page_bootmem(). > > Fixes: 028725e73375 ("bootmem: remove the vmemmap pages from kmemleak in free_bootmem_page") > Fixes: dd0ff4d12dd2 ("bootmem: remove the vmemmap pages from kmemleak in put_page_bootmem") > Signed-off-by: Liu Shixin Acked-by: Catalin Marinas > include/linux/bootmem_info.h | 2 +- > mm/bootmem_info.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/include/linux/bootmem_info.h b/include/linux/bootmem_info.h > index e1a3c9c9754c..cffa38a73618 100644 > --- a/include/linux/bootmem_info.h > +++ b/include/linux/bootmem_info.h > @@ -60,7 +60,7 @@ static inline void get_page_bootmem(unsigned long info, struct page *page, > > static inline void free_bootmem_page(struct page *page) > { > - kmemleak_free_part(page_to_virt(page), PAGE_SIZE); > + kmemleak_free_part_phys(PFN_PHYS(page_to_pfn(page)), PAGE_SIZE); We have a page_to_phys(), though it looks like the generic implementation (wrongly) assumes a dma_addr_t type rather than phys_addr_t. We have phys_do_dma() for such conversion as it needs to take the device into account, so I guess most page_to_phys() uses under drivers/ are wrong. Maybe as a separate series clean-up those page_to_phys() uses in drivers. > free_reserved_page(page); > } > #endif > diff --git a/mm/bootmem_info.c b/mm/bootmem_info.c > index b1efebfcf94b..fa7cb0c87c03 100644 > --- a/mm/bootmem_info.c > +++ b/mm/bootmem_info.c > @@ -34,7 +34,7 @@ void put_page_bootmem(struct page *page) > ClearPagePrivate(page); > set_page_private(page, 0); > INIT_LIST_HEAD(&page->lru); > - kmemleak_free_part(page_to_virt(page), PAGE_SIZE); > + kmemleak_free_part_phys(PFN_PHYS(page_to_pfn(page)), PAGE_SIZE); > free_reserved_page(page); > } > } > -- > 2.25.1 -- Catalin