Re: [PATCH v2 0/2] memblock: exclude MEMBLOCK_NOMAP regions from kmemleak

From: Qian Cai
Date: Thu Oct 21 2021 - 12:52:06 EST




On 10/21/21 3:09 AM, Mike Rapoport wrote:
> From: Mike Rapoport <rppt@xxxxxxxxxxxxx>
>
> Hi,
>
> This is take 2 to fix interaction between MEMBLOCK_NOMAP and kmemleak.
>
> The previous version caused boot failures Qian Cai reported here:
>
> https://lore.kernel.org/all/c30ff0a2-d196-c50d-22f0-bd50696b1205@xxxxxxxxxxx
>
> The failures happened because calling kmemleak_free_part_phys() (or any
> kmemleak phys APIs for that matter) too early means it cannot use __va() on
> arm64.
>
> This late in the cycle I can only think of reverting kmemleak wavier from
> memblock_mark_nomap() and putting it in the only two callers that set
> MEMBLOCK_NOMAP to an allocated chunk rather than marking NOMAP "unusable"
> memory reported by firmware.
>
> The first patch here is the revert of v1 and the second patch is actual v2
> implementation.
>
> Vladimir and Qian, I'd appreciate if you could verify that v2 works for
> you.

FYI, this passed the regression tests here.


>
> v2:
> * move kmemleak waiver from memblock_mark_nomap() to callers that need it
> * use kmemleak_ignore_phys() rather than kmemleak_free_part_phys() as
> Catalin suggested.
>
> v1: https://lore.kernel.org/all/20211013054756.12177-1-rppt@xxxxxxxxxx
>
> Mike Rapoport (2):
> Revert "memblock: exclude NOMAP regions from kmemleak"
> memblock: exclude MEMBLOCK_NOMAP regions from kmemleak
>
> drivers/acpi/tables.c | 3 +++
> drivers/of/of_reserved_mem.c | 2 ++
> mm/memblock.c | 10 ++++------
> 3 files changed, 9 insertions(+), 6 deletions(-)
>
>
> base-commit: 519d81956ee277b4419c723adfb154603c2565ba
>