All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Young <dyoung@redhat.com>
To: Baoquan He <bhe@redhat.com>
Cc: Junichi Nomura <j-nomura@ce.jp.nec.com>,
	Borislav Petkov <bp@alien8.de>,
	Chao Fan <fanc.fnst@cn.fujitsu.com>,
	Kairui Song <kasong@redhat.com>,
	"x86@kernel.org" <x86@kernel.org>,
	"kexec@lists.infradead.org" <kexec@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernel
Date: Mon, 15 Apr 2019 15:46:20 +0800	[thread overview]
Message-ID: <20190415074620.GA15224@dhcp-128-65.nay.redhat.com> (raw)
In-Reply-To: <20190412002345.GA6356@MiWiFi-R3L-srv>

On 04/12/19 at 08:23am, Baoquan He wrote:
> On 04/11/19 at 09:14am, Junichi Nomura wrote:
> > On 4/11/19 5:42 PM, Baoquan He wrote:
> > > On 04/11/19 at 08:16am, Junichi Nomura wrote:
> > >> kexec_get_rsdp_addr() might fail on kexec-booted kernel, e.g. if the
> > >> setup_data was invalid. In such a case, falling back to efi_get_rsdp_addr()
> > >> will hit the problem of accessing invalid table pointer again.
> > > 
> > > Seems you are trying to address Dave Young's comment in 
> > > http://lkml.kernel.org/r/20190404073233.GC5708@dhcp-128-65.nay.redhat.com
> > 
> > Right. His "In case kexec_get_rsdp_addr failed.." comment.
> > 
> > > We may need discuss and make clear if those are doable. E.g the first
> > > comment, if not hang by below line of code, returning 0 for what? Can
> > > kexec still be saved, or just reset to firmware?
> > > 
> > > 	error("EFI system table not found in kexec boot_params.")
> > 
> > If we return 0 and also don't hang in the rest of get_rsdp_addr(),
> > it just work as the same way as v5.0 and earlier kernel do.
> > 
> > Failure cases in kexec_get_rsdp_addr() are followings:
> > 1. efi_setup_data is invalid
> > 2. loader signature is invalid
> > 3. EFI systab is not found in boot_params
> > 4. RSDP is not found by parsing tables pointed to by efi_setup_data
> > 
> > I think all of them are critical for EFI boot, so one option could be
> > we never return failure in kexec_get_rsdp_addr() and just hang.
> > But hanging in this very early stage of boot may make the problem
> > harder to investigate once happens. Even earlyprintk is not working yet.
> > So the other option is returning 0 to defer the crash for later stage.
> 
> OK, I got the point, thanks. So it is deferred to the late stage, KASLR
> may not avoid those memory region which is marked as hotpluggable in
> SRAT. Kernel can boot up, but doesn't function well on hotplug stuff.
> In this case, people don't know why it happened. We are still blind.
> 
> Seems early console in efi is the problem, but not kexec or hotplug. I
> am fine to hang, or make it continue booting for now.
> 
> Hi Dave, 
> 
> Is it possible to fix the efi early console issue? I mean the
> feasibility, I believe it won't be easy. Ask this because not only this
> issue encountered, any other issue could be triggered during boot
> decompressing stage. If efi has this problem, we can't debug them
> either.

For normal boot, it maybe doable to use some boot services eg. some
graphic protocols efi firmware provided.

But for kexec, it is different because it become virtual mode, boot
services are not available, and kernel takes over the mode setting etc.
the early framebuffer maybe usable, maybe not, it is not reliable.

Thanks
Dave

WARNING: multiple messages have this Message-ID (diff)
From: Dave Young <dyoung@redhat.com>
To: Baoquan He <bhe@redhat.com>
Cc: Chao Fan <fanc.fnst@cn.fujitsu.com>,
	Kairui Song <kasong@redhat.com>,
	"x86@kernel.org" <x86@kernel.org>,
	"kexec@lists.infradead.org" <kexec@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Borislav Petkov <bp@alien8.de>,
	Junichi Nomura <j-nomura@ce.jp.nec.com>
Subject: Re: [PATCH v4] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernel
Date: Mon, 15 Apr 2019 15:46:20 +0800	[thread overview]
Message-ID: <20190415074620.GA15224@dhcp-128-65.nay.redhat.com> (raw)
In-Reply-To: <20190412002345.GA6356@MiWiFi-R3L-srv>

On 04/12/19 at 08:23am, Baoquan He wrote:
> On 04/11/19 at 09:14am, Junichi Nomura wrote:
> > On 4/11/19 5:42 PM, Baoquan He wrote:
> > > On 04/11/19 at 08:16am, Junichi Nomura wrote:
> > >> kexec_get_rsdp_addr() might fail on kexec-booted kernel, e.g. if the
> > >> setup_data was invalid. In such a case, falling back to efi_get_rsdp_addr()
> > >> will hit the problem of accessing invalid table pointer again.
> > > 
> > > Seems you are trying to address Dave Young's comment in 
> > > http://lkml.kernel.org/r/20190404073233.GC5708@dhcp-128-65.nay.redhat.com
> > 
> > Right. His "In case kexec_get_rsdp_addr failed.." comment.
> > 
> > > We may need discuss and make clear if those are doable. E.g the first
> > > comment, if not hang by below line of code, returning 0 for what? Can
> > > kexec still be saved, or just reset to firmware?
> > > 
> > > 	error("EFI system table not found in kexec boot_params.")
> > 
> > If we return 0 and also don't hang in the rest of get_rsdp_addr(),
> > it just work as the same way as v5.0 and earlier kernel do.
> > 
> > Failure cases in kexec_get_rsdp_addr() are followings:
> > 1. efi_setup_data is invalid
> > 2. loader signature is invalid
> > 3. EFI systab is not found in boot_params
> > 4. RSDP is not found by parsing tables pointed to by efi_setup_data
> > 
> > I think all of them are critical for EFI boot, so one option could be
> > we never return failure in kexec_get_rsdp_addr() and just hang.
> > But hanging in this very early stage of boot may make the problem
> > harder to investigate once happens. Even earlyprintk is not working yet.
> > So the other option is returning 0 to defer the crash for later stage.
> 
> OK, I got the point, thanks. So it is deferred to the late stage, KASLR
> may not avoid those memory region which is marked as hotpluggable in
> SRAT. Kernel can boot up, but doesn't function well on hotplug stuff.
> In this case, people don't know why it happened. We are still blind.
> 
> Seems early console in efi is the problem, but not kexec or hotplug. I
> am fine to hang, or make it continue booting for now.
> 
> Hi Dave, 
> 
> Is it possible to fix the efi early console issue? I mean the
> feasibility, I believe it won't be easy. Ask this because not only this
> issue encountered, any other issue could be triggered during boot
> decompressing stage. If efi has this problem, we can't debug them
> either.

For normal boot, it maybe doable to use some boot services eg. some
graphic protocols efi firmware provided.

But for kexec, it is different because it become virtual mode, boot
services are not available, and kernel takes over the mode setting etc.
the early framebuffer maybe usable, maybe not, it is not reliable.

Thanks
Dave

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

  reply	other threads:[~2019-04-15  7:46 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-08 23:10 [PATCH v4] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernel Junichi Nomura
2019-04-08 23:10 ` Junichi Nomura
2019-04-10 17:14 ` Borislav Petkov
2019-04-10 17:14   ` Borislav Petkov
2019-04-10 23:34   ` Junichi Nomura
2019-04-10 23:34     ` Junichi Nomura
2019-04-11  8:09     ` Borislav Petkov
2019-04-11  8:09       ` Borislav Petkov
2019-04-11  8:16       ` Junichi Nomura
2019-04-11  8:16         ` Junichi Nomura
2019-04-11  8:37         ` Borislav Petkov
2019-04-11  8:37           ` Borislav Petkov
2019-04-11  9:13           ` Junichi Nomura
2019-04-11  9:13             ` Junichi Nomura
2019-04-11  9:21             ` Boris Petkov
2019-04-11  9:21               ` Boris Petkov
2019-04-11  9:32               ` Junichi Nomura
2019-04-11  9:32                 ` Junichi Nomura
2019-04-11  9:40                 ` Boris Petkov
2019-04-11  9:40                   ` Boris Petkov
2019-04-11 12:58                   ` Borislav Petkov
2019-04-11 12:58                     ` Borislav Petkov
2019-04-12  2:54                     ` Junichi Nomura
2019-04-12  2:54                       ` Junichi Nomura
2019-04-12  8:49                       ` Borislav Petkov
2019-04-12  8:49                         ` Borislav Petkov
2019-04-12 13:35                         ` Borislav Petkov
2019-04-12 13:35                           ` Borislav Petkov
2019-04-15  7:01                           ` Junichi Nomura
2019-04-15  7:01                             ` Junichi Nomura
2019-04-15  9:07                             ` Borislav Petkov
2019-04-15  9:07                               ` Borislav Petkov
2019-04-15 10:25                               ` Borislav Petkov
2019-04-15 10:25                                 ` Borislav Petkov
2019-04-15 23:00                                 ` Junichi Nomura
2019-04-15 23:00                                   ` Junichi Nomura
2019-04-15 23:14                                   ` Junichi Nomura
2019-04-15 23:14                                     ` Junichi Nomura
2019-04-16  9:45                                     ` Borislav Petkov
2019-04-16  9:45                                       ` Borislav Petkov
2019-04-16 23:09                                       ` kexec crash on OVMF i386 + x86_64 kernel (Re: [PATCH v4] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernel) Junichi Nomura
2019-04-16 23:09                                         ` Junichi Nomura
2019-04-17  5:14                                         ` Dave Young
2019-04-17  5:14                                           ` Dave Young
2019-04-17 17:57                                           ` Prakhya, Sai Praneeth
2019-04-17 17:57                                             ` Prakhya, Sai Praneeth
2019-04-16  9:40                                   ` [PATCH v4] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernel Borislav Petkov
2019-04-16  9:40                                     ` Borislav Petkov
2019-04-16  9:52                                     ` [PATCH] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernels Borislav Petkov
2019-04-16  9:52                                       ` Borislav Petkov
2019-04-16 10:02                                       ` Ingo Molnar
2019-04-16 10:02                                         ` Ingo Molnar
2019-04-16 10:31                                         ` Borislav Petkov
2019-04-16 10:31                                           ` Borislav Petkov
2019-04-16 11:41                                       ` Dave Young
2019-04-16 11:41                                         ` Dave Young
2019-04-16 13:22                                         ` Borislav Petkov
2019-04-16 13:22                                           ` Borislav Petkov
2019-04-17  1:38                                           ` Dave Young
2019-04-17  1:38                                             ` Dave Young
2019-04-17  4:57                                             ` Dave Young
2019-04-17  4:57                                               ` Dave Young
2019-04-17  6:00                                               ` Kairui Song
2019-04-17  6:00                                                 ` Kairui Song
2019-04-17  7:08                                                 ` Dave Young
2019-04-17  7:08                                                   ` Dave Young
2019-04-17  8:22                                             ` Borislav Petkov
2019-04-17  8:22                                               ` Borislav Petkov
2019-04-18  1:24                                               ` Dave Young
2019-04-18  1:24                                                 ` Dave Young
2019-04-19  8:34                                       ` [RFC PATCH] kexec, x86/boot: map systab region in identity mapping before accessing it Kairui Song
2019-04-19  8:34                                         ` Kairui Song
2019-04-19  8:58                                         ` Baoquan He
2019-04-19  8:58                                           ` Baoquan He
2019-04-19  9:39                                           ` Kairui Song
2019-04-19  9:39                                             ` Kairui Song
2019-04-16 22:44                                     ` [PATCH v4] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernel Junichi Nomura
2019-04-16 22:44                                       ` Junichi Nomura
2019-04-17  7:02                                       ` Dave Young
2019-04-17  7:02                                         ` Dave Young
2019-04-17  8:54                                         ` Borislav Petkov
2019-04-17  8:54                                           ` Borislav Petkov
2019-04-17  9:02                                           ` Borislav Petkov
2019-04-17  9:02                                             ` Borislav Petkov
2019-04-17 10:31                                           ` Chao Fan
2019-04-17 10:31                                             ` Chao Fan
2019-04-11  8:42         ` Baoquan He
2019-04-11  8:42           ` Baoquan He
2019-04-11  9:14           ` Junichi Nomura
2019-04-11  9:14             ` Junichi Nomura
2019-04-12  0:23             ` Baoquan He
2019-04-12  0:23               ` Baoquan He
2019-04-15  7:46               ` Dave Young [this message]
2019-04-15  7:46                 ` Dave Young
2019-06-06 19:22 ` [tip:x86/boot] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernels tip-bot for Junichi Nomura

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=20190415074620.GA15224@dhcp-128-65.nay.redhat.com \
    --to=dyoung@redhat.com \
    --cc=bhe@redhat.com \
    --cc=bp@alien8.de \
    --cc=fanc.fnst@cn.fujitsu.com \
    --cc=j-nomura@ce.jp.nec.com \
    --cc=kasong@redhat.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.