All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: Len Brown <lenb@kernel.org>
Cc: Len Brown <len.brown@intel.com>,
	linux-acpi@vger.kernel.org, Natalie.Protasevich@unisys.com
Subject: Re: Freeing ACPI tables after parsing
Date: Tue, 22 Aug 2006 00:06:47 +0200	[thread overview]
Message-ID: <20060822000647.2b117f6c.ak@suse.de> (raw)
In-Reply-To: <200608211752.16616.len.brown@intel.com>

On Mon, 21 Aug 2006 17:52:16 -0400
Len Brown <len.brown@intel.com> wrote:


> > During SLES10 testing we had some problems with the ACPI 
> > tables on some Unisys systems being in a area where the kexec kernel
> > wanted to be loaded too. 
> 
> Why does the kexec kernel care what physical memory it is loaded into,

At least the one in SLES10 was linked to a fixed address (64MB@64MB)
In the future it will be relocatable, but still there will be defaults
passed in advance.

Unisys ended up fixing it with a new BIOS, but I can well see this
happening again.

> and how can it be guaranteed that address is not reserved by the platform firmware?

I don't think there is a fool proof method right now, just heuristics
However freeing ACPI would avoid some of the potential problems.

> > Also on other systems the ACPI tables are not 
> > exactly at the end but in the middle of the memory map and for some applications
> > it might be better to have a lot of physical continuous memory.
> > 
> > So are there any plans to free the BIOS supplied ACPI tables after parsing
> > or is there some obstacle to that that I'm missing?
> 
> As Alexey wrote, he and Bob have already deleted the kernel's new copy
> of the tables in favor of using them 'in place'.
> 
> I guess I'm not clear on the requirement here.
> If we were to alter that plan to make a kernel copy -- and release the original BIOS memory --
> assuming it is marked such that we can release it -- how do we know that
> we are not dropping the new copy someplace that kexec doesn't want it?

There are other allocations anyways and the allocators tend to cluster, so one would
assume it ends up being ok. If there are conflicts they can be handled in
one single place in Linux. But Linux can't affect the BIOS' choice of table
placement.

Also I suspect the kernel can store it more efficiently in memory. When the tables
are reserved in memory they will be always rounded up/down to page boundaries,
while a kernel allocation can fit it better. At least for some of them (like fadt)
the kernel seems to use globals already too, so the original mapping wouldn't be 
needed.

-Andi
 

  reply	other threads:[~2006-08-21 22:06 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-21  9:46 Freeing ACPI tables after parsing Andi Kleen
2006-08-21 16:59 ` Alexey Starikovskiy
2006-08-21 20:03   ` Andi Kleen
2006-08-21 21:52 ` Len Brown
2006-08-21 22:06   ` Andi Kleen [this message]
2006-08-21 22:22     ` Len Brown
2006-08-21 22:26       ` Andi Kleen
2006-08-22 10:00       ` Alexey Starikovskiy
  -- strict thread matches above, loose matches on Subject: below --
2006-08-22 20:28 Moore, Robert
2006-08-23  8:18 ` Andi Kleen

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=20060822000647.2b117f6c.ak@suse.de \
    --to=ak@suse.de \
    --cc=Natalie.Protasevich@unisys.com \
    --cc=len.brown@intel.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.