On Fri, 2004-12-10 at 09:12, Dave Hansen wrote: > As for the aioalloc oops, I have been able to recreate it, and I'm > working on it now. OK, I think I found it. When I online()'d section 29, it happened to online the ACPI memory area. This was bad when memory started being allocated to and written in there. I've added a page_is_ram() check to the online routines, and added a check for PageReserved() in the removal code to work around this. But, I'm not convinced that this is without problems. If a driver (or anybody else) allocates some removable memory and marks it reserved, the remove operation could complete without it being notice that that particular memory hasn't been properly freed up. Also, I'm not sure that everybody has that page_is_ram() function. It looks like x86 and ppc64 are OK, but I'll have to make sure. We'll also have to make sure that we can use it at runtime. I know that the "real" memory hotplug systems aren't supposed to update their e820 tables after boot, so this page_is_ram() check won't work for any of those. Matt, do the efi tables get updated properly for this to work for you? -- Dave