+ if (reliable_kernelcore) {
+ for_each_memblock(memory, r) {
+ if (memblock_is_mirror(r))
+ continue;
Should we have a safety check here that there is some mirrored memory? If you give
the kernelcore=reliable option on a machine which doesn't have any mirror configured,
then we'll mark all memory as removable.
What happens then? Do kernel allocations fail? Or do they fall back to using removable memory?
Is there a /proc or /sys file that shows the current counts for the removable zone? I just
tried this patch with a high percentage of memory marked as mirror ... but I'd like to see
how much is actually being used to tune things a bit.