devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick Daly <quic_pdaly@quicinc.com>
To: Rob Herring <robh+dt@kernel.org>
Cc: linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	<devicetree@vger.kernel.org>, <surenb@google.com>
Subject: Re: [PATCH] of: of_reserved_mem: Increase limit for reserved_mem regions
Date: Mon, 25 Apr 2022 15:32:21 -0700	[thread overview]
Message-ID: <20220425223221.GA9901@hu-pdaly-lv.qualcomm.com> (raw)
In-Reply-To: <CAL_JsqKSJbPT5ChmLLQME7rF=OYFe8Mk_x-DH7hL9FoV9zprRg@mail.gmail.com>

On Fri, Apr 22, 2022 at 08:48:25AM -0500, Rob Herring wrote:
> On Wed, Apr 20, 2022 at 4:09 PM Patrick Daly <quic_pdaly@quicinc.com> wrote:
> >
> > The reserved_mem array must be statically allocated because it is used
> > prior to memblock being aware of all "no-map" or otherwise reserved
> > regions which have fixed physical addresses. Due to this limitation,
> > if one architecture/board has a large number of reserved_mem regions,
> > this limit must be raised for all.
> >
> > In particular, certain new qcom boards currently have 63 reserved memory
> > regions, which when new features are added, pushes them over the existing
> > limit of 64.
> 
> Please revive this instead:
> 
> https://lore.kernel.org/all/20211119075844.2902592-3-calvinzhang.cool@gmail.com/

Looks interesting, thanks for pointing it out.

> 
> >
> > A generalized breakdown by region type:
> > 13 for linux-loaded device firmware
> 
> If loaded by linux, why do you need fixed carveouts in DT? The devices
> can't be told what address their fw is at?
> 

These are good questions, but I don't know enough about the various usecases to
give complete answers.

> > 9 for guest-vms or inter-vm communication
> 
> Why does that need to be in DT?

Its a type-one hypervisor, so the guest VMs don't run in userspace. We want
to use largely physically contiguous memory to reduce TLB pressure - so a
devicetree carveout seemed to be a simple way of realizing this.

> 
> > 15 cma heaps/dma-buf heaps
> 
> Sounds like not trusting the OS to allocate memory itself. From what
> I've read, the kernel's memory allocation abilities are better now
> than when CMA was added.

Greater than MAX_ORDER physically contiguous memory is only available through
CMA. So it comes down to whether the usecase supports scattered memory or not.
I believe there is also a concern that placing many usecases in the same
CMA area could lead to fragmentation & allocation failures for sizes which
are a large percentage of the total CMA area size.

> 
> > 24 for bootloaders/hypervisor/secure-world devices or software
> > 2 misc
> >
> > Although this number could be reduced by a minor amount by combining
> > physically adjacent regions, this comes at the cost of losing
> > documention on what/who the regions are used by. In addition, combining
> > adjacent regions is not possible if there are phandles in devicetree
> > referring to the regions in question, such as "memory-region".
> >
> > Vmlinux before:
> > text      data      bss     dec       hex      filename
> > 31030829  15807732  588524  47427085  2d3ae0d  dist/vmlinux
> >
> > Vmlinux after:
> > text      data      bss     dec       hex      filename
> > 31030877  15807668  592108  47430653  2d3bbfd  dist/vmlinux
> >
> > Signed-off-by: Patrick Daly <quic_pdaly@quicinc.com>
> > ---
> >  drivers/of/of_reserved_mem.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c
> > index 75caa6f..de0cdda 100644
> > --- a/drivers/of/of_reserved_mem.c
> > +++ b/drivers/of/of_reserved_mem.c
> > @@ -26,7 +26,7 @@
> >
> >  #include "of_private.h"
> >
> > -#define MAX_RESERVED_REGIONS   64
> > +#define MAX_RESERVED_REGIONS   128
> >  static struct reserved_mem reserved_mem[MAX_RESERVED_REGIONS];
> >  static int reserved_mem_count;
> >
> > --
> > 2.7.4
> >

      reply	other threads:[~2022-04-25 22:32 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-20 21:09 [PATCH] of: of_reserved_mem: Increase limit for reserved_mem regions Patrick Daly
2022-04-22 13:48 ` Rob Herring
2022-04-25 22:32   ` Patrick Daly [this message]

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=20220425223221.GA9901@hu-pdaly-lv.qualcomm.com \
    --to=quic_pdaly@quicinc.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=robh+dt@kernel.org \
    --cc=surenb@google.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).