All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Mike Rapoport <rppt@kernel.org>
Cc: Qian Cai <quic_qiancai@quicinc.com>,
	linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
	linux-kernel@vger.kernel.org,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH] memblock: exclude NOMAP regions from kmemleak
Date: Tue, 19 Oct 2021 12:37:10 +0100	[thread overview]
Message-ID: <YW6t5tBe/IjSYWn3@arm.com> (raw)
In-Reply-To: <YW5bjV128Qk1foIv@kernel.org>

On Tue, Oct 19, 2021 at 08:45:49AM +0300, Mike Rapoport wrote:
> On Mon, Oct 18, 2021 at 11:55:40PM -0400, Qian Cai wrote:
> > On 10/13/2021 1:47 AM, Mike Rapoport wrote:
> > > From: Mike Rapoport <rppt@linux.ibm.com>
> > > 
> > > Vladimir Zapolskiy reports:
> > > 
> > > commit a7259df76702 ("memblock: make memblock_find_in_range method private")
> > > invokes a kernel panic while running kmemleak on OF platforms with nomaped
> > > regions:
> > > 
> > >   Unable to handle kernel paging request at virtual address fff000021e00000
> > >   [...]
> > >     scan_block+0x64/0x170
> > >     scan_gray_list+0xe8/0x17c
> > >     kmemleak_scan+0x270/0x514
> > >     kmemleak_write+0x34c/0x4ac
> > > 
> > > Indeed, NOMAP regions don't have linear map entries so an attempt to scan
> > > these areas would fault.
> > > 
> > > Prevent such faults by excluding NOMAP regions from kmemleak.
> > > 
> > > Link: https://lore.kernel.org/all/8ade5174-b143-d621-8c8e-dc6a1898c6fb@linaro.org
> > > Fixes: a7259df76702 ("memblock: make memblock_find_in_range method private")
> > > Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
> > > Tested-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
> > 
> > Mike, reverting this commit on the top of today's linux-next fixed the early booting hang
> > on an arm64 server with kmemleak. Even with "earlycon", it could only print out those
> > lines.
> > 
> > EFI stub: Booting Linux Kernel...
> > EFI stub: EFI_RNG_PROTOCOL unavailable
> > EFI stub: ERROR: FIRMWARE BUG: kernel image not aligned on 128k boundary
> > EFI stub: ERROR: FIRMWARE BUG: Image BSS overlaps adjacent EFI memory region
> > EFI stub: Using DTB from configuration table
> > EFI stub: Exiting boot services…
> > 
> > I could help to confirm if it hangs right in the early boot somewhere if needed.
> 
> The kernel config and a log of working kernel would help to start with.

I don't think there's much in the log other than the EFI stub above.

> > start_kernel()
> >   setup_arch()
> >     paging_init()
> >       map_mem()
> >         memblock_mark_nomap(

Is this actual trace? It would be good to know where exactly it got
stuck.

> So we have kmemleak_free_part_phys() here.

I wonder whether the memblock_mark_nomap() here is too early for
kmemleak. We don't have the linear map created, though it shouldn't be
an issue as the kernel sections are mapped. Also I think
delete_object_part() in kmemleak.c would bail out early as there
shouldn't be any prior memblock_alloc for this range.

-- 
Catalin

  reply	other threads:[~2021-10-19 11:37 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-13  5:47 [PATCH] memblock: exclude NOMAP regions from kmemleak Mike Rapoport
2021-10-13  7:45 ` Catalin Marinas
2021-10-13 11:35   ` Mike Rapoport
2021-10-19  3:55 ` Qian Cai
2021-10-19  5:45   ` Mike Rapoport
2021-10-19 11:37     ` Catalin Marinas [this message]
2021-10-19 15:06       ` Qian Cai
2021-10-19 15:53         ` Catalin Marinas
2021-10-19 17:59           ` Qian Cai
2021-10-19 18:33             ` Mike Rapoport
2021-10-20  7:38               ` Mike Rapoport
2021-10-20  8:18                 ` Catalin Marinas
2021-10-20  8:42                   ` Mike Rapoport
2021-10-20  9:33                     ` Catalin Marinas
2021-10-20 10:13                 ` Catalin Marinas
2021-10-20 10:39                   ` Mike Rapoport
2021-10-19  4:21 ` Anshuman Khandual

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YW6t5tBe/IjSYWn3@arm.com \
    --to=catalin.marinas@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=quic_qiancai@quicinc.com \
    --cc=rppt@kernel.org \
    --cc=rppt@linux.ibm.com \
    --cc=torvalds@linux-foundation.org \
    --cc=vladimir.zapolskiy@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.