From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1m3hdj-00005h-BU for mharc-grub-devel@gnu.org; Wed, 14 Jul 2021 12:21:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38108) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3hdh-00005H-3T for grub-devel@gnu.org; Wed, 14 Jul 2021 12:21:37 -0400 Received: from dibed.net-space.pl ([84.10.22.86]:47425) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_3DES_EDE_CBC_SHA1:192) (Exim 4.90_1) (envelope-from ) id 1m3hde-0003cH-BM for grub-devel@gnu.org; Wed, 14 Jul 2021 12:21:36 -0400 Received: from router-fw.i.net-space.pl ([192.168.52.1]:47598 "EHLO tomti.i.net-space.pl") by router-fw-old.i.net-space.pl with ESMTP id S2109054AbhGNQVX (ORCPT ); Wed, 14 Jul 2021 18:21:23 +0200 X-Comment: RFC 2476 MSA function at dibed.net-space.pl logged sender identity as: dkiper Date: Wed, 14 Jul 2021 18:21:21 +0200 From: Daniel Kiper To: Daniel Axtens Cc: grub-devel@gnu.org, rashmica.g@gmail.com, alastair@d-silva.org, nayna@linux.ibm.com, stefanb@linux.ibm.com, eric.snowberg@oracle.com Subject: Re: [PATCH v2 01/22] ieee1275: drop HEAP_MAX_ADDR, HEAP_MIN_SIZE Message-ID: <20210714162121.2h6l77aozvgzlu57@tomti.i.net-space.pl> References: <20210630084031.2663622-1-dja@axtens.net> <20210630084031.2663622-2-dja@axtens.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210630084031.2663622-2-dja@axtens.net> User-Agent: NeoMutt/20170113 (1.7.2) Received-SPF: pass client-ip=84.10.22.86; envelope-from=dkiper@net-space.pl; helo=dibed.net-space.pl X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jul 2021 16:21:37 -0000 On Wed, Jun 30, 2021 at 06:40:10PM +1000, Daniel Axtens wrote: > HEAP_MAX_ADDR is confusing. Currently it is set to 32MB, except > on ieee1275 on x86, where it is 64MB. > > There is a comment which purports to explain it: > > /* If possible, we will avoid claiming heap above this address, because it > seems to cause relocation problems with OSes that link at 4 MiB */ > > This doesn't make a lot of sense when the constants are well above 4MB > already. It was not always this way. Prior to > commit 7b5d0fe4440c ("Increase heap limit") in 2010, HEAP_MAX_SIZE and > HEAP_MAX_ADDR were indeed 4MB. However, when the constants were increased > the comment was left unchanged. > > It's been over a decade. It doesn't seem like we have problems with > claims over 4MB on powerpc or x86 ieee1275. (sparc does things completely > differently and never used the constant.) > > Drop the constant and the check. > > The only use of HEAP_MIN_SIZE was to potentially override the > HEAP_MAX_ADDR check. It is now unused. Remove it. > > Signed-off-by: Daniel Axtens Reviewed-by: Daniel Kiper > --- > grub-core/kern/ieee1275/init.c | 17 ----------------- > 1 file changed, 17 deletions(-) > > diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c > index d483e35eed2b..c5d091689f29 100644 > --- a/grub-core/kern/ieee1275/init.c > +++ b/grub-core/kern/ieee1275/init.c > @@ -45,9 +45,6 @@ > #include > #endif > > -/* The minimal heap size we can live with. */ > -#define HEAP_MIN_SIZE (unsigned long) (2 * 1024 * 1024) > - > /* The maximum heap size we're going to claim */ > #ifdef __i386__ > #define HEAP_MAX_SIZE (unsigned long) (64 * 1024 * 1024) > @@ -55,14 +52,6 @@ > #define HEAP_MAX_SIZE (unsigned long) (32 * 1024 * 1024) > #endif > > -/* If possible, we will avoid claiming heap above this address, because it > - seems to cause relocation problems with OSes that link at 4 MiB */ > -#ifdef __i386__ > -#define HEAP_MAX_ADDR (unsigned long) (64 * 1024 * 1024) > -#else > -#define HEAP_MAX_ADDR (unsigned long) (32 * 1024 * 1024) > -#endif > - > extern char _start[]; > extern char _end[]; > > @@ -183,12 +172,6 @@ heap_init (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, > if (*total + len > HEAP_MAX_SIZE) > len = HEAP_MAX_SIZE - *total; > > - /* Avoid claiming anything above HEAP_MAX_ADDR, if possible. */ > - if ((addr < HEAP_MAX_ADDR) && /* if it's too late, don't bother */ > - (addr + len > HEAP_MAX_ADDR) && /* if it wasn't available anyway, don't bother */ > - (*total + (HEAP_MAX_ADDR - addr) > HEAP_MIN_SIZE)) /* only limit ourselves when we can afford to */ > - len = HEAP_MAX_ADDR - addr; > - > /* In theory, firmware should already prevent this from happening by not > listing our own image in /memory/available. The check below is intended > as a safeguard in case that doesn't happen. However, it doesn't protect > -- > 2.30.2 Daniel