From: "H. Peter Anvin" <hpa@zytor.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: Li Zhijian <zhijianx.li@intel.com>,
Juergen Gross <jgross@suse.com>,
Li Zhijian <lizhijian@cn.fujitsu.com>,
Peter Maydell <peter.maydell@linaro.org>,
x86@kernel.org, bp@alien8.de, mingo@redhat.com,
tglx@linutronix.de, QEMU Developers <qemu-devel@nongnu.org>,
Philip Li <philip.li@intel.com>,
linux-kernel@vger.kernel.org,
Linus Torvalds <torvalds@linux-foundation.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Kees Cook <keescook@chromium.org>
Subject: Re: [Qemu-devel] [RFC/PoC PATCH 1/3] i386: set initrd_max to 4G - 1 to allow up to 4G initrd
Date: Sun, 11 Nov 2018 22:00:42 -0800 [thread overview]
Message-ID: <fcf1d6b5-e64f-3aea-f794-99237e1988cf@zytor.com> (raw)
In-Reply-To: <20181112045624.GA28219@gmail.com>
On 11/11/18 8:56 PM, Ingo Molnar wrote:
>
>> Also note that the ext_ramdisk_image and ext_ramdisk_size are part of
>> struct boot_params as opposed to struct setup_header, which means that
>> they are not supported when entering via the 16-bit BIOS entry point,
>> and I am willing to bet that there will be, ahem, "strangeness" if
>> entered via the 32-bit entry point if at least the command line is
>> loaded above the 4 GB mark; the initrd should be fine, though.
>>
>> This is obviosly not an issue in EFI environments, where we enter
>> through the EFI handover entry point.
>>
>> The main reason these were not added to struct setup_header is that
>> there are only 24 bytes left in that header and so space is highly
>> precious. One way to deal with that if we really, really need to would
>> be to add an initrd/initramfs type of setup_data.
>
> Is there no way to extend that header by making an extended header part
> of the payload?
>
> IIRC that header is small and fixed size to be part of a single sector at
> the very beginning of boot images, but accessing any extended header bits
> from the payload section shouldn't really be an issue for a modern
> bootloader to handle, right?
>
> Such an extended header could use a more modern (self-extending) ABI as
> well.
>
Yes, although I don't really think it is as much of an issue as it seems at
this point.
The limit comes from having used a one-byte jump instruction at the beginning;
however, these days that limit is functionally walled.
It is of course possible to address this if it should become necessary,
however, the current protocol has lasted for 23 years so far and we haven't
run out yet, even with occasional missteps. As such, I don't think we are in a
huge hurry to address this particular aspect.
In part as a result of this exchange I have spent some time thinking about the
boot protocol and its dependencies, and there is, in fact, a much more serious
problem that needs to be addressed: it is not currently possible in a
forward-compatible way to map all data areas that may be occupied by
bootloader-provided data. The kernel proper has an advantage here, in that the
kernel will by definition always be the "owner of the protocol" (anything the
kernel doesn't know how to map won't be used by the kernel anyway), but it
really isn't a good situation. So I'm currently trying to think up a way to
make that possible.
-hpa
next prev parent reply other threads:[~2018-11-12 6:02 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1541674784-25936-1-git-send-email-lizhijian@cn.fujitsu.com>
[not found] ` <1541674784-25936-2-git-send-email-lizhijian@cn.fujitsu.com>
[not found] ` <CAFEAcA_47wyar3WNhuBmNPdr02RHx-wn_TeyFaajpjzvzG8j5Q@mail.gmail.com>
2018-11-09 1:47 ` Li Zhijian
2018-11-09 7:20 ` Ingo Molnar
2018-11-09 9:57 ` Li Zhijian
2018-11-09 10:04 ` Juergen Gross
2018-11-09 13:11 ` Li Zhijian
2018-11-09 13:40 ` Li Zhijian
2018-11-09 21:10 ` H. Peter Anvin
2018-11-12 4:56 ` Ingo Molnar
2018-11-12 6:00 ` H. Peter Anvin [this message]
2018-11-12 6:19 ` Ingo Molnar
2018-11-12 6:36 ` H. Peter Anvin
2018-11-12 16:47 ` H. Peter Anvin
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=fcf1d6b5-e64f-3aea-f794-99237e1988cf@zytor.com \
--to=hpa@zytor.com \
--cc=a.p.zijlstra@chello.nl \
--cc=bp@alien8.de \
--cc=jgross@suse.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lizhijian@cn.fujitsu.com \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philip.li@intel.com \
--cc=qemu-devel@nongnu.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
--cc=zhijianx.li@intel.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
all inboxes | Powered by JetHome®