Re: [PATCH] Fix sparsemem on Cell
From: Dave Hansen <hidden>
Date: 2006-12-15 17:57:54
Also in:
linux-mm, lkml
On Fri, 2006-12-15 at 18:22 +0100, Michael Buesch wrote:
On Friday 15 December 2006 17:53, Dave Hansen wrote:quoted
lxc-dave/init/main.c | 4 ++++ lxc-dave/mm/page_alloc.c | 28 +++++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff -puN init/main.c~sparsemem-fix init/main.c--- lxc/init/main.c~sparsemem-fix 2006-12-15 08:49:53.000000000 -0800 +++ lxc-dave/init/main.c 2006-12-15 08:49:53.000000000 -0800@@ -770,6 +770,10 @@ static int init(void * unused) free_initmem(); unlock_kernel(); mark_rodata_ro(); + /* + * Memory hotplug requires that this system_state transition + * happer after free_initmem(). (see memmap_init_zone())s/happer/happens/ Other than that, can't this possibly race and crash here? I mean, it's not a big race window, but it can happen, no?
That's a good point. Nice eye. There are three routes in here: boot-time init, an ACPI call, and a write to a sysfs file. Bootmem is taken care of. The write to a sysfs file can't happen yet because userspace isn't up. The only question would be about ACPI. I _guess_ an ACPI event could come in at any time, and could hit this race window. One other thought I had was to add an argument to memmap_init_zone() to indicate that the memory being fed to it was contiguous and did not need the validation checks. Anybody have thoughts on that? -- Dave