public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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

  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