grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] efika memory issues


From: Hollis Blanchard
Subject: Re: [PATCH] efika memory issues
Date: Wed, 1 Aug 2007 12:34:21 -0500

On 7/31/07, Robert Millan <address@hidden> wrote:
> On Tue, Jul 31, 2007 at 10:55:09AM -0500, Hollis Blanchard wrote:
> > I think the simplest solution will be to allocate Efika's heap high,
> > as we talked about earlier. If the first "available" region is above
> > 4MB, just reserve 4MB and don't worry about where it is. In general we
> > should try to keep 4MB free, but at the end of the day it's Efika's
> > fault and probably won't be a big deal for them anyways.
>
> Ok, let's do that.  But what do we do if the first available region is
> just a few kBs below 4MB?  Or if it's just too small?  I think we need to
> determine what is the minimum heap size we want to accept, such that the
> ability to keep 4MB free still compensates having a small heap.
>
> Any suggestion?

Yup, it's a pain. Here's one idea: set a "GET_HEAP_FROM_WHEREVER"
flag, then later do
  if (GET_HEAP_FROM_WHEREVER) {
    grub_addr_t heap_addr;
    grub_ieee1275_claim(0, MIN_HEAP_SIZE, 4, &heap_addr);
  }

That will ask firmware to find us a suitable area of memory.and return
the address. It might even work.

We could try doing that in all situations, except:
- this method isn't often used, so firmwares can have bugs here
- if MIN_HEAP_SIZE were small enough (e.g. 2MB), it would mean we
probably would still have 4MB+ free. However, that depends on the size
of the modules. I would hate to document "oh, if you can't load your
OS, try using fewer GRUB modules." On the other hand, we already have
this problem to some extent: if our modules are too large, we will
fail to allocate any heap. So maybe this isn't a practical concern.

-Hollis




reply via email to

[Prev in Thread] Current Thread [Next in Thread]