Messages in this thread | | | Subject | Re: [PATCH 31/31] memblock: Add memblock_find_in_range() | From | Benjamin Herrenschmidt <> | Date | Wed, 28 Jul 2010 19:27:55 +1000 |
| |
On Tue, 2010-07-27 at 23:08 -0700, Yinghai Lu wrote: > > for example: > high/low allocation, from first kernel to kexec second kernel, always > work fine except system with Qlogic card. > because Qlogic card is using main RAM as EFT etc for card's FW log > trace. second kernel have not idea that those RAM > is used by first kernel for that purpose. that the CARD still use > that between two kernels. > second kernel could have crash it try to use those ram. > > low/high allocation seems to be safe, second kernel can slip to boot > fine.
No, it works 'by chance'. You need kexec to somewhat mark those regions as reserved. I don't know how x86 does those things, on architectures using the flat device-tree, we have added a concept of "reserve map" to the flat device tree blob to mark that kind of region.
Also, because you mark your new function as weak but not the one that's actually used by memblock_alloc(), it will still end up being top-down, so if you want to switch to bottom up, make the internal function weak, not the wrapper.
Cheers, Ben.
| |