On 04/14/14 at 10:55pm, WANG Chao wrote: > Hi, All > > This patchset enables passing memory map via E820 map on x86 platform instead > of memmap=exactmap. It's a better design and will solve the following problem > so far: > > - kernel cmdline is limited resource and large machines tend to have many > memory ranges that may excceed kernel cmdline limit size. > - kASLR doesn't work with memmap=exactmap, because kASLR happens early than > user defined memmap=exactmap takes effect. > > Unfortunately, saved_max_pfn still got its user out there (calgry pci, it looks > like the only one). So for backward compatibility, I'm introducing a new option > --pass-memmap-cmdline to force kexec-tools to pass memmap=exactmap, the old way. > > This patchset contains massive updates from the previous one. I take some > suggestions from reviewers. I try to split the changes into smaller pieces and > keep the whole change as minimal as I can so it wouldn't be too harsh to review > the patch. > > Any comment is appreciate! Hi, Linn Thanks for testing the patch in the past. Do you have chance to test this update? This updated patchset changed too much and I want things to work as it's used to be on your prototype machine with large number of memory ranges. Thanks in advance! WANG Chao > > v6->v5: > dyoung: > - use nr_memmap instead of nr_memmap_p > - .end inclusive > Simon: > - more description on some patches > > v5->v4: > Dave: > - separate add_setup_data() to another patch. > Vivek: > - adding comments for setup_data. > - store crash memory range info golobally in kexec_info. > me: > -remove dbgprint_mem_range defination, Simon has merged the patch. > > v3->v4: > Linn: check return value of malloc (use xmalloc). > me: fix dbgprintf_mem_range. > > v2->v3: > Linn: > - do not free sd (setup_data) buffer. > - reuse code in setup_e820 and setup_e820_ext. > > v1->v2: > Vivek: > - Use function instead of macro for dbgprint_mem_range > - Do not pass reserved memory range for kdump. It could addressed later > separately. > > WANG Chao (9): > x86, cleanup: add extra arguments to add_memmap() and delete_memmap() > x86, cleanup: add_memmap() only do alignment check on RANGE_RAM > x86, cleanup: add other types of memory range for 2nd kernel boot to > memmap_p > x86, cleanup: use dbgprint_mem_range for memory range debugging > x86, cleanup: increase CRASH_MAX_MEMMAP_NR up to > CRASH_MAX_MEMORY_RANGES > x86, cleanup: Store crash memory ranges kexec_info > x86, cleanup: kexec memory range .end to be inclusive > x86: add --pass-memmap-cmdline option > x86: Pass memory range via E820 for kdump > > kexec/arch/i386/crashdump-x86.c | 69 +++++++-------- > kexec/arch/i386/crashdump-x86.h | 2 +- > kexec/arch/i386/include/arch/options.h | 2 + > kexec/arch/i386/kexec-x86-common.c | 3 +- > kexec/arch/i386/kexec-x86.c | 4 + > kexec/arch/i386/kexec-x86.h | 1 + > kexec/arch/i386/x86-linux-setup.c | 149 ++++++++++++++++++++++----------- > kexec/arch/i386/x86-linux-setup.h | 1 + > kexec/arch/x86_64/kexec-x86_64.c | 5 ++ > kexec/firmware_memmap.c | 1 - > kexec/kexec.h | 2 + > 11 files changed, 147 insertions(+), 92 deletions(-) > > -- > 1.9.0 >