Re: [PATCH] memory hotadd fixes [4/5] avoid check in acpi

From: keith mannthey
Date: Thu Aug 03 2006 - 23:06:55 EST

On Fri, 2006-08-04 at 11:15 +0900, KAMEZAWA Hiroyuki wrote:
> On Thu, 03 Aug 2006 18:54:32 -0700
> keith mannthey <kmannth@xxxxxxxxxx> wrote:
> > > Hmm..Okay. I'll try some check patch today. please review it.
> > > Maybe moving ioresouce collision check in early stage of add_memory() is good ?
> > Yea. I am working a a full patch set for but my sparsemem and reserve
> > add-based paths. It creates a valid_memory_add_range call at the start
> > of add_memory. I should be posting the set in the next few hours.
> >
> Ah..ok. but I wrote my own patch...and testing it now..

Sure that is fine.
> > > Note:
> > > I remove pfn_valid() here because pfn_valid() just says section exists or
> > > not. When adding seveal small memory chunks in one section, Only the first
> > > small chunk can be added.
> > Hmm... I thought memory add areas needed to be section aligned for the arch?
> >
> There are requests for memory-hot-add should allow to hot-add not-aligned memory.
> Then, I wrote ioresouce collision check patch (before..but had bug..)
> With ioresouce collistion check, alignments are not required at *add*.
> (onlining is just for *offlined section*, now)
> > What protecting is there for calling add_memory on an already present
> > memory range?
> >
> For example, considering ia64, which has 1Gbytes section...

Maybe 1gb sections is too large?

> hot add following region.
> ==
> (A) 0xc0000000 - 0xd7ffffff (section 3)
> (B) 0xe0000000 - 0xffffffff (section 3)
> ==
> (A) and (B) will go to the same section, but there is a memory hole between
> (A) and (B). Considering memory (B) appears after (A) in DSDT.
> After add_memory() against (A) is called, section 3 is ready.
> Then, pfn_valid(0xe0000000) and pfn_valid(0xffffffff) returns true because
> they are in section 3.
> So, checking pfn_valid() for (B) will returns true and memory (B) cannot be
> added. ioresouce collision check will help this situation.

With iommus out there throwing aliment all off way the flexability is

My question is this.

Assuming 0-0xbfffffff is present.

What keeps 0xa0000000 to 0xa1000000 from being re-onlined by a bad call
to add_memory?


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at