[PATCH 5/5] kexec: X86: Pass memory ranges via e820 table instead of memmap= boot parameter
H. Peter Anvin
hpa at zytor.com
Mon Apr 15 08:20:24 EDT 2013
Except that is wrong. The kernel can receive more than 128 e820 entries, they just have to be passed via a different mechanism.
Thomas Renninger <trenn at suse.de> wrote:
>On Friday, April 12, 2013 05:56:08 PM Zhang Yanfei wrote:
>> 于 2013年04月11日 20:26, Thomas Renninger 写道:
>> > Currently ranges are passed via kernel boot parameters:
>> > memmap=exactmap memmap=X#Y memmap=
>> >
>...
>> > - if (!(end - start))
>> > - return 0;
>> > + /*
>> > + * Ignore usable memory ranges for kdump kernel smaller
>> > + * than 100k to avoid too much ranges passed
>> > + * Save the new ranges (exluding lower than 100k ranges) in
>tmp_map
>> > + * and store the number of elements in tmp_map_ranges
>> > + */
>> > + for (m = 0, i = 0; i < CRASH_MAX_MEMMAP_NR; i++) {
>> > + unsigned long startk, endk;
>> > + startk = (usable_mem[i].start/1024);
>> > + endk = ((usable_mem[i].end + 1)/1024);
>> > + if (!startk && !endk)
>> > + /* All regions traversed. */
>> > + break;
>> > +
>> > + /* A region is not worth adding if region size < 100K. It eats
>> > + * up precious command line length. */
>>
>> Now you are passing the e820 table directly instead of the
>commandline, so
>> does this comment make sense now?
>Yes you are right, the comment is wrong.
>It should more be like:
>/*
>A region is not worth adding if region size < 100K. e820 entries are
>restricted to 128 in kernel, with kdump we may have to pass the one or
>other
>more and we want to try to stay at 128 max entries (from original
>table) as
>close as possible.
>*/
>
>Thanks,
>
> Thomas
--
Sent from my mobile phone. Please excuse brevity and lack of formatting.
More information about the kexec
mailing list