On Thu, Oct 27, 2022 at 02:24:11PM -0500, Eric DeVolder wrote: > Be aware, in reality, that if the system was fully populated, it would not > actually consume all 8192 phdrs. Rather /proc/iomem would essentially show a > large contiguous address space which would require just a single phdr. Then that from below: pnum += CONFIG_CRASH_MAX_MEMORY_RANGES; which then would end up allocating 8192 would be a total waste. So why don't you make that number dynamic then? You start with something sensible: total_num_pheaders = num_online_cpus() + "some number of regions" + "some few others" I.e., a number which is a good compromise on the majority of machines. Then, on hotplug events you count how many new regions are coming in and when you reach the total_num_pheaders number, you double it (or some other increase stragegy), reallocate the ELF header buffers etc needed for kdump and you're good. This way, you don't waste memory unnecessarily on the majority of systems and those who need more, get to allocate more. > I'd prefer keeping CRASH_MAX_MEMORY_RANGES as that allow the maximum phdr > number value to be reflective of CPUs and/or memory; not all systems support > both CPU and memory hotplug. For example, I have queued up this change to > reflect this: > > if (IS_ENABLED(CONFIG_HOTPLUG_CPU) || IS_ENABLED(CONFIG_MEMORY_HOTPLUG)) { If you're going to keep CRASH_MAX_MEMORY_RANGES, then you can test only that thing as it expresses the dependency on CONFIG_HOTPLUG_CPU and CONFIG_MEMORY_HOTPLUG already. If you end up making the number dynamic, then you could make that a different Kconfig item which contains all that crash code as most of the people won't need it anyway. Hmm? -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec