From: Khalid Aziz <khalid_aziz@hp.com>
To: linux-ia64@vger.kernel.org
Subject: Re: efi_memmapwalk re-write
Date: Thu, 04 Aug 2005 18:16:58 +0000 [thread overview]
Message-ID: <1123179418.23905.4.camel@lyra.fc.hp.com> (raw)
In-Reply-To: <B8E391BBE9FE384DAA4C5C003888BE6F040F73E2@scsmsx401.amr.corp.intel.com>
On Wed, 2005-08-03 at 15:45 -0700, Luck, Tony wrote:
> >one on x86. This patch is relative to 2.6.13-rc3 and applies on top of
> >the EFI memory map walk rewrite patch at
> ><http://free.linux.hp.com/~khalid/ia64/efi_memmapwalk_2.6.13rc3.patch>
> >(Tony, this EFI memory map walk patch is same as the one I sent you this
> >morning).
>
> Khalid,
>
> Thanks for working on this. I'm sorry it has taken this long to look
> at it.
>
> I think some areas can still benefit from more simplification. The only
> place I see you split a kern_memdesc_t is in efi_trim_memory() in order
> to limit memory according to either of mem_limit or max_addr. Wouldn't
> it be simpler to just adjust num_pages element of the element instead
> of splitting?
>
> If you do that ... then you don't need to have a linked list of kern_memdesc
> structures, you can treat them just like an array, nor do you need
> MEM_DESC_SAFETY_MARGIN
>
> Likewise the granule alignment functions. The original trim_top() and
> trim_bottom() are insanely complex ... and perhaps you were led astray
> trying to duplicate their behaivour? I believe that you should end up
> with the desired behaivour if you just do any coalescing of memory blocks
> that are WB and have one of the allowable types, then round the base
> addresses up to granule boundaries and the tops down. All that scanning
> around looking for holes or non-WB sections of memory looks pointless to
> me ... perhaps I'm missing some incredible subtlety in the original?
>
> By only copying from "is_available()" types into kern_memdesc_t structures
> you can avoid calling is_available() in your new efi_memmap_walk(), and
> indeed drop the "type" field from the structure.
>
> find_memmap_space() should be in efi.c ... just pass a pointer to space
> for it to fill in the address of the block it allocated and have it
> return the size so that reserve_memory() can fill these into an entry
> in rsvd_region[]. It shouldn't use is_available_memory() to decide
> which blocks are candidates for the allocation. This could result in
> choosing memory that is still in use by EFI, command line arguments, or
> even overwriting the kernel. EFI_CONVENTIONAL_MEMORY is definitely
> safe for this, perhaps EFI_LOADER_CODE too?
>
> It is not OK to call "machine_restart()" if you couldn't allocate space.
> This would put the machine into a loop ... rebooting and failing, with
> no oportunity to read the error message. Just use panic().
>
> -Tony
>
Tony,
Thanks for feedback. I will take a look at these and see if I can
simplify it further.
--
Khalid
==================================
Khalid Aziz Open Source and Linux Organization
(970)898-9214 Hewlett-Packard
khalid.aziz@hp.com Fort Collins, CO
"The Linux kernel is subject to relentless development"
- Alessandro Rubini
next prev parent reply other threads:[~2005-08-04 18:16 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-03 22:45 efi_memmapwalk re-write Luck, Tony
2005-08-03 23:00 ` Luck, Tony
2005-08-04 18:16 ` Khalid Aziz [this message]
2005-08-04 22:41 ` Luck, Tony
2005-08-05 22:46 ` Khalid Aziz
2005-08-08 18:59 ` Luck, Tony
2005-08-12 23:05 ` Khalid Aziz
2005-08-12 23:48 ` Luck, Tony
2005-08-15 14:33 ` Khalid Aziz
2005-09-03 6:25 ` tony.luck
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=1123179418.23905.4.camel@lyra.fc.hp.com \
--to=khalid_aziz@hp.com \
--cc=linux-ia64@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox