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

Reply via email to