All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Rapoport <rppt@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Wandun <chenwandun1@gmail.com>,
	robh@kernel.org, saravanak@kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, akpm@linux-foundation.org
Subject: Re: [PATCH v3 0/5] of: reserved_mem: several fixes about reserved memory
Date: Thu, 8 Oct 2026 08:38:38 +0200	[thread overview]
Message-ID: <asc6brs_g0ky0wOM@kernel.org> (raw)
In-Reply-To: <5dccea9b-a9e1-44f5-84d9-bc9efe04edee@samsung.com>

On Tue, Oct 06, 2026 at 03:26:21PM +0200, Marek Szyprowski wrote:
> On 03.10.2026 10:04, Mike Rapoport wrote:
> > On Tue, Sep 22, 2026 at 05:24:32PM +0800, Wandun wrote:
> >>>> From: Wandun Chen <chenwandun@lixiang.com>
> >>>>
> >>>> This series fixes several error-handling issues in the reserved-memory
> >>>> initialization paths.
> >>>>
> >>>> v2 --> v3:
> >>>> 1. Rework the mechanism that checks in the late scan whether the early
> >>>>    reservation succeeded (patches 3-5, suggested by Marek, thanks).
> >>>>
> >>>>    Patch 3 adds a new memblock flag MEMBLOCK_RSRV_RMEM, which is set when
> >>>>    the early reservation of a static region succeeds and checked in the
> >>>>    late scan.
> >>> Can we keep this local to of_reserved_mem please?
> >> Probably not. I do not see a way to keep this entirely local to
> >> of_reserved_mem while handling the issue robustly.
> >>
> >> I previously implemented an approach in of_reserved_mem that records
> >> static reserved-memory nodes whose early reservation failed in a local
> >> array [1]. However, the early scan runs before paging_init(), so the array
> >> cannot be dynamically expanded. If the number of failed nodes exceeds
> >> the array size, some failures cannot be recorded and the issue remains,
> >> and that is why Marek said "partial solution", although in practice
> >> having that many failed nodes is unlikely.
> > Even before paging_init() there is memblock_alloc().
> 
> One can call it, but such memory cannot be dereferenced/accessed for example
> on ARM64, because it is not yet mapped in the linear map.

Can't we use early_memremap() for it?

If there are many regions that need MEMBLOCK_RSRV_RMEM set, memblock will
need to allocate memory. If that memory is still not mapped we'll end up
with a crash in memblock.
 
> >> To handle this robustly, the late scan needs a way to determine whether
> >> the corresponding early reservation actually succeeded. Current approach
> >> uses memblock to retain that state.
> > I can't say I like the idea of keeping this state in memblock.
> > This add flags and code to memblock to deal with corner cases of bad
> > firmware that reports weird memory layouts, and once there is a flag in
> > the common infrastructure, people tend to abuse it.
> 
> So far I found no better place to store the information about successful
> region reservation.

We can have reserve_failed_nodes larger than MAX_RESERVED_REGIONS, it's
__initdata and anyway discarded after boot.

But even a DT with more than 64 bad regions seems broken enough to WARN()
and ignore remaining errors.

> Best regards
> -- 
> Marek Szyprowski, PhD

-- 
Sincerely yours,
Mike.


  reply	other threads:[~2026-10-08  6:38 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-20  9:28 [PATCH v3 0/5] of: reserved_mem: several fixes about reserved memory Wandun Chen
2026-09-20  9:28 ` [PATCH v3 1/5] of: reserved_mem: release dynamically allocated no-map region on init failure Wandun Chen
2026-09-20  9:28 ` [PATCH v3 2/5] of: reserved_mem: retain static no-map memory " Wandun Chen
2026-09-20  9:28 ` [PATCH v3 3/5] of: reserved_mem: skip init for regions whose early reservation failed Wandun Chen
2026-09-20  9:28 ` [PATCH v3 4/5] of: reserved_mem: reject static regions overlapping no-map memory Wandun Chen
2026-09-20 10:03   ` sashiko-bot
2026-09-20  9:28 ` [PATCH v3 5/5] of: reserved_mem: reject static mapped regions overlapping existing reservations Wandun Chen
2026-09-20 10:13   ` sashiko-bot
2026-09-22  8:48 ` [PATCH v3 0/5] of: reserved_mem: several fixes about reserved memory Mike Rapoport
2026-09-22  9:24   ` Wandun
2026-10-03  8:04     ` Mike Rapoport
2026-10-06 13:26       ` Marek Szyprowski
2026-10-08  6:38         ` Mike Rapoport [this message]
2026-10-08  9:43           ` Marek Szyprowski

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=asc6brs_g0ky0wOM@kernel.org \
    --to=rppt@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=chenwandun1@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=m.szyprowski@samsung.com \
    --cc=robh@kernel.org \
    --cc=saravanak@kernel.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.