Chris McDermott wrote on 2010-03-09T16:01:46 -0800: [...] > So, what do folks think about moving the code that relocates the initrd to > INITRD_START from start_kernel() to sysdeps_create_boot_params()?
Isn't that asking for trouble? Given, that the firmware didn't hand out that memory, when it's been kindly asked, I'd consider it dangerous to just ignore that and simply overwrite it, especially way before ExitBootServices is called. > Another possible fix would be to have load_file() use the AllocateAddress > allocation type, which it appears to conditionally do now, but the code > looks suspect to me. And rightly so: it's buggy! The call to 'sysdeps_initrd_get_addr()' is ignored twice, first when 'start_addr' is initialized as NULL and second, when alloc_pages() is given a '0' even when 'start_addr' should happen to be non-null! [...] > A secondary unrelated problem I worry about is how we prevent the initrd > from being relocated on top of itself (if the firmware returns an > AllocateAnyPages that happens to span 50MB)? That's been taken care of by the patch to MEMCPY by Stuart Hayes! (It simply adjusts the copy direction.) > Here's the current working patch I'm using that relocates the initrd in > sysdeps_create_boot_params(). In order to preserve existing behavior, I > actually implemented a patch that only relocates initrd's that start above > 4GB. But, I don't see any reason why this couldn't be done in _all_ cases. [...] See above. We should simply avoid allocating the initrd above the kernel-specified 'initrd_addr_max' (which is significantly below 4GB ATM). (BTW, this will be addressed by patch #2 in the series I'm about to send!) Thanks, -- Raymund Will [email protected] SUSE LINUX Products GmbH GF: Markus Rex HRB 16746 (AG Nuernberg) ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ elilo-discuss mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/elilo-discuss
