From: "Luis R. Rodriguez" <mcgrof@kernel.org>
To: hpa@zytor.com
Cc: Chao Peng <chao.p.peng@linux.intel.com>,
linux-kernel@vger.kernel.org, x86@kernel.org, grub-devel@gnu.org,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Andy Lutomirski <luto@kernel.org>,
Juergen Gross <jgross@suse.com>,
"Luis R. Rodriguez" <mcgrof@kernel.org>,
Borislav Petkov <bp@suse.de>,
Josh Poimboeuf <jpoimboe@redhat.com>,
Thomas Garnier <thgarnie@google.com>,
Al Viro <viro@zeniv.linux.org.uk>,
"Michael S. Tsirkin" <mst@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Amnon Ilan <ailan@redhat.com>, Alexander Graf <agraf@suse.de>,
Matt Fleming <matt@codeblueprint.co.uk>,
Daniel Kiper <daniel.kiper@oracle.com>
Subject: Re: [RFC PATCH] x86/boot: make ELF kernel multiboot-able
Date: Wed, 15 Feb 2017 21:13:36 +0100 [thread overview]
Message-ID: <20170215201336.GA24047@wotan.suse.de> (raw)
In-Reply-To: <60323D2A-BB58-4112-B21C-62D7A483F2D3@zytor.com>
On Wed, Feb 15, 2017 at 10:12:07AM -0800, hpa@zytor.com wrote:
> On February 15, 2017 6:41:56 AM PST, Chao Peng <chao.p.peng@linux.intel.com> wrote:
> >Multiboot specification
> >(http://git.savannah.gnu.org/cgit/grub.git/tree/doc/multiboot.texi?h=multiboot2)
> >is an open standard that provides kernels with a uniform way to be booted
> >by multiboot-compliant bootloaders (like grub).
> >
> >This patch is trying to make Linux ELF kernel image to be a
> >multiboot-compliant OS so that it can be loaded by a multiboot-comliant
> >bootloader. The benefit is eliminating the maintainance for realmode and
> >decompression code and especially when the kernel is loaded in a virtual
> >machine, the reducing for these code can greatly cuts down the boot time.
> >
> >However, the current version of multiboot spec doesn't support 64 bit well
> >so for 64 bit kernel we need stub code to jump from 32 bit code to 64 bit
> >code. Besides, there are still some other issues:
> >
> >1). '-z max-page-size=0x1000' is used so the text segment start is in
> >multiboot header search scope because GNU LD has default page size of
> >0x00200000 for ELF64, which will fail multiboot test.
> >
> >2). The bootloader like grub has support for ELF kernel (even for ELF64)
> >which makes the patch easier. However, the current grub implementaion thinks
> >the entry address should be a VA. E.g. for 64 bit kernel, the entry address
> >(0x1000000) is actually phiscial address, grub refuses to load it by saying:
> >'entry point isn't in a segment'.
> >
> >This patch is sent out as RFC in case you have some ideas.
> >
> >Signed-off-by: Chao Peng <chao.p.peng@linux.intel.com>
>
> As has been shown many times before, this is a really bad idea. Unless there
> is a real-life use case where this matters enormously, this is nacked with
> extreme prejudice.
Just something to consider, provided the issues with multiboot get resolved:
If you want to boot Xen you actually use the multiboot protocol, the last PVH
boot patches had borrowed ideas from Multiboot to add an entry to Linux, only
it was Xen'ified. What would be Multiboot 2 seemed flexible enough to allow all
sorts of custom semantics and information stacked into a boot image. The last
thought I had over this topic (before giving up) was-- if we're going to add
yet-another-entry (TM) why not add extend Mulitiboot 2 protocol with the
semantics we need to boot any virtual environment and then add Multiboot 2
support entry on Linux? We could redirect any custom boot mechanism then to
just use that given its flexibility.
Luis
next prev parent reply other threads:[~2017-02-15 20:13 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-15 14:41 Chao Peng
2017-02-15 16:42 ` Paolo Bonzini
2017-02-16 2:12 ` Chao Peng
2017-02-15 18:12 ` hpa
2017-02-15 20:13 ` Luis R. Rodriguez [this message]
2017-02-15 20:58 ` hpa
2017-02-16 2:07 ` Chao Peng
2017-02-16 23:27 ` Daniel Kiper
2017-02-17 5:00 ` H. Peter Anvin
2017-02-20 18:46 ` Daniel Kiper
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=20170215201336.GA24047@wotan.suse.de \
--to=mcgrof@kernel.org \
--cc=agraf@suse.de \
--cc=ailan@redhat.com \
--cc=bp@suse.de \
--cc=chao.p.peng@linux.intel.com \
--cc=daniel.kiper@oracle.com \
--cc=grub-devel@gnu.org \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=matt@codeblueprint.co.uk \
--cc=mingo@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=tglx@linutronix.de \
--cc=thgarnie@google.com \
--cc=viro@zeniv.linux.org.uk \
--cc=x86@kernel.org \
/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®