From: Baoquan He <bhe@redhat.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: tglx@linutronix.de, mingo@kernel.org,
kirill.shutemov@linux.intel.com, x86@kernel.org,
linux-kernel@vger.kernel.org, kexec@lists.infradead.org
Subject: Re: [PATCH 1/3] x86/boot: Add bit fields into xloadflags for 5-level kernel checking
Date: Tue, 4 Sep 2018 11:44:14 +0800 [thread overview]
Message-ID: <20180904034414.GI1740@192.168.1.3> (raw)
In-Reply-To: <6ea94875-ae07-6220-eb3e-d3f830cdac03@zytor.com>
Hi hpa,
Thanks for looking into this.
On 09/03/18 at 07:41pm, H. Peter Anvin wrote:
> I don't understand why there is any reason not to always enter the target
> kernel in 4-level mode. There certainly is no point whatsoever in having two
> xloadflags: the only thing that could possibly matter is whether or not the
> kernel in question *can* be entered in 5-level mode should that ever be necessary.
This patchset is only used to fix kexec/kdump issues. We never stop
kernel booting in 4-level mode from firmware as 1st kernel. However,
there are issues when jump from the 1st kernel which is in 5-level mode
to 2nd kernel. The reason is:
1) in arch/x86/kernel/relocate_kernel_64.S, we set X86_CR4_LA57 into cr4
if the 1st kernel is in 5-level mode. Then in
arch/x86/boot/compressed/head_64.S, paging_prepare() is called to decide
if 5-level mode will be enabled, and prepare the trampoline. If
kexec/kdump kernel is expected to be in 4-level, e.g with 'nolv5'
specified, it still can handle well. But for the old kernel w/o these
5-level codes, it will ignore the fact that X86_CR4_LA57 has been set
in CR4 and proceed anyway, then #GP is triggered. That's why XLF_5LEVEL
is used to mark.
2) For kexec_load interface, we put kernel/initrd at top of system RAM
in kexec_tools utility. If the 1st kernel is in 5-level mode, the
kexec-ed kernel has "CONFIG_X86_5LEVEL=n", we have to detect this and
limit the kernel to be loaded under 64TB, since kexec-ed kernel will
definitely run in 4-level mode. Putting kernel above 64TB will fail
kexec-ed kernel booting. That's why *XLF_5LEVEL_ENABLED* is needed.
Thanks
Baoquan
next prev parent reply other threads:[~2018-09-04 3:44 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-29 14:16 [PATCH 0/3] Add restrictions for kexec/kdump jumping between 5-level and 4-level kernel Baoquan He
2018-08-29 14:16 ` [PATCH 1/3] x86/boot: Add bit fields into xloadflags for 5-level kernel checking Baoquan He
2018-09-04 2:41 ` H. Peter Anvin
2018-09-04 3:44 ` Baoquan He [this message]
2018-09-04 4:13 ` H. Peter Anvin
2018-09-04 5:20 ` Baoquan He
2018-09-04 5:46 ` H. Peter Anvin
2018-09-04 6:06 ` Baoquan He
2018-09-04 6:36 ` H. Peter Anvin
2018-09-04 7:16 ` Baoquan He
2018-09-04 8:42 ` Kirill A. Shutemov
2018-09-05 4:06 ` H. Peter Anvin
2018-09-05 8:02 ` Thomas Gleixner
2018-09-26 7:54 ` Baoquan He
2018-08-29 14:16 ` [PATCH 2/3] x86/kexec/64: Error out if try to jump to old 4-level kernel from 5-level kernel Baoquan He
2018-08-29 14:16 ` [PATCH 3/3] x86/kdump/64: Change the upper limit of crashkernel reservation Baoquan He
2018-08-30 13:50 ` Kirill A. Shutemov
2018-08-30 14:13 ` Baoquan He
2018-08-30 13:58 ` [PATCH 0/3] Add restrictions for kexec/kdump jumping between 5-level and 4-level kernel Kirill A. Shutemov
2018-08-30 14:12 ` Baoquan He
2018-08-30 14:27 ` Kirill A. Shutemov
2018-08-30 14:57 ` Baoquan He
2018-08-30 15:01 ` Baoquan He
2018-09-02 20:45 ` Kirill A. Shutemov
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=20180904034414.GI1740@192.168.1.3 \
--to=bhe@redhat.com \
--cc=hpa@zytor.com \
--cc=kexec@lists.infradead.org \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--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