From: Zhang Yanfei <zhangyanfei.yes@gmail.com>
To: Thomas Renninger <trenn@suse.de>
Cc: kexec@lists.infradead.org, horms@verge.net.au,
Zhang Yanfei <zhangyanfei@cn.fujitsu.com>,
"Eric W. Biederman" <ebiederm@xmission.com>,
"H. Peter Anvin" <hpa@zytor.com>,
yinghai@kernel.org, cpw@sgi.com, vgoyal@redhat.com
Subject: Re: [PATCH 5/5] kexec: X86: Pass memory ranges via e820 table instead of memmap= boot parameter
Date: Tue, 16 Apr 2013 20:41:26 +0800 [thread overview]
Message-ID: <516D46F6.2020907@gmail.com> (raw)
In-Reply-To: <8993037.v16xiECWWu@skinner.arch.suse.de>
于 2013年04月16日 15:52, Thomas Renninger 写道:
> On Monday, April 15, 2013 12:54:47 PM H. Peter Anvin wrote:
>> On 04/15/2013 12:48 PM, Thomas Renninger wrote:
>>> On Monday, April 15, 2013 05:20:24 AM H. Peter Anvin wrote:
>>>> Except that is wrong. The kernel can receive more than 128 e820 entries,
>>>> they just have to be passed via a different mechanism.
>
> But you do not name/describe it.
> Is it the "efi map mechanism" you are talking about or is there
> something else?
Hi Thomas
I think hpa meant the mechanism related to the field setup_data in
setup_header.
Field name: setup_data
Type: write (special)
Offset/size: 0x250/8
Protocol: 2.09+
The 64-bit physical pointer to NULL terminated single linked list of
struct setup_data. This is used to define a more extensible boot
parameters passing mechanism. The definition of struct setup_data is
as follow:
struct setup_data {
u64 next;
u32 type;
u32 len;
u8 data[0];
};
Where, the next is a 64-bit physical pointer to the next node of
linked list, the next field of the last node is 0; the type is used
to identify the contents of data; the len is the length of data
field; the data holds the real payload.
This list may be modified at a number of points during the bootup
process. Therefore, when modifying this list one should always make
sure to consider the case where the linked list already contains
entries.
And Linux has the setup_data type SETUP_E820_EXT which means extended
e820 entries.
Also see kernel functions:
setup_arch
--> parse_setup_data
--> parse_e820_ext
Thanks
Zhang
>
> Thomas
>
>>> Would it make sense to pass the tables via efi_map by moving up
>>> efi_map parsing to the beginning of efi init in
>>> arch/x86/platform/efi/efi.c?
>>>
>>> And in kexec pass the efi signature, efi map pointers, add add_efi_memmap
>>> param (and possibly some more?)?
>>> Then there would be no limit at all anymore.
>>
>> There is no limit... that's what I'm telling you.
>
>> kexec should certainly pass the EFI information, otherwise the second
>> kernel can't invoke EFI runtime calls at all. Therein lies a whole bit
>> of pain.
>>
>> -hpa
>
> _______________________________________________
> kexec mailing list
> kexec@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2013-04-16 12:41 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-11 12:26 Cleanups and passing memory ranges via e820 table instead of memmap= Thomas Renninger
2013-04-11 12:26 ` [PATCH 1/5] kexec: X86: Show e820 table which gets passed in debug mode Thomas Renninger
2013-04-11 12:26 ` [PATCH 2/5] kexec: X86: Enhance crash range debug output Thomas Renninger
2013-04-11 12:26 ` [PATCH 3/5] kexec: X86: Do not exclude memory regions in each get_xy_memory_range() func Thomas Renninger
2013-04-11 12:26 ` [PATCH 4/5] kexec: X86: make crash_memory_range global and store its no of elements in crash_ranges Thomas Renninger
2013-04-11 12:26 ` [PATCH 5/5] kexec: X86: Pass memory ranges via e820 table instead of memmap= boot parameter Thomas Renninger
2013-04-11 14:55 ` Yinghai Lu
2013-04-11 15:06 ` H. Peter Anvin
2013-04-12 14:31 ` Vivek Goyal
2013-04-12 14:56 ` H. Peter Anvin
2013-04-12 22:17 ` Dave Hansen
2013-04-12 23:17 ` H. Peter Anvin
2013-04-15 4:52 ` HATAYAMA Daisuke
2013-04-15 5:58 ` Dave Hansen
2013-04-15 7:58 ` HATAYAMA Daisuke
2013-04-15 14:49 ` H. Peter Anvin
2013-04-12 12:24 ` Thomas Renninger
2013-04-12 9:56 ` Zhang Yanfei
2013-04-12 11:12 ` Thomas Renninger
2013-04-15 9:05 ` Thomas Renninger
2013-04-15 12:20 ` H. Peter Anvin
2013-04-15 19:48 ` Thomas Renninger
2013-04-15 19:54 ` H. Peter Anvin
2013-04-16 7:52 ` Thomas Renninger
2013-04-16 11:59 ` H. Peter Anvin
2013-04-16 12:41 ` Zhang Yanfei [this message]
2013-04-12 15:24 ` Eric W. Biederman
2013-04-15 11:48 ` Thomas Renninger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=516D46F6.2020907@gmail.com \
--to=zhangyanfei.yes@gmail.com \
--cc=cpw@sgi.com \
--cc=ebiederm@xmission.com \
--cc=horms@verge.net.au \
--cc=hpa@zytor.com \
--cc=kexec@lists.infradead.org \
--cc=trenn@suse.de \
--cc=vgoyal@redhat.com \
--cc=yinghai@kernel.org \
--cc=zhangyanfei@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox