public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
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


  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