[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190325090349.GE3659@MiWiFi-R3L-srv>
Date: Mon, 25 Mar 2019 17:03:49 +0800
From: Baoquan He <bhe@...hat.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Borislav Petkov <bp@...en8.de>,
Junichi Nomura <j-nomura@...jp.nec.com>,
"fanc.fnst@...fujitsu.com" <fanc.fnst@...fujitsu.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"x86@...nel.org" <x86@...nel.org>
Subject: Re: [PATCH] x86/boot: Use EFI setup data if provided
On 03/25/19 at 09:43am, Thomas Gleixner wrote:
> On Mon, 25 Mar 2019, Baoquan He wrote:
>
> > On 03/25/19 at 08:53am, Borislav Petkov wrote:
> > > On Mon, Mar 25, 2019 at 03:27:10PM +0800, Baoquan He wrote:
> > > > Kexec kernel also need to get rsdp to get SRAT tables so that KASLR can
> > > > avoid those hotpluggable regions in boot compression stage.
> > > >
> > > > The kexec_file_load has filled in acpi_rsdp_addr of kexec kernel in
> > > > below code. It will return direclty in get_rsdp_addr() since
> > > > acpi_rsdp_addr is got from boot_params->acpi_rsdp_addr.
> > > >
> > > > arch/x86/kernel/kexec-bzimage64.c <<setup_boot_parameters>>
> > > > params->acpi_rsdp_addr = boot_params.acpi_rsdp_addr;
> > > >
> > > > The other interface, kexec_load, its boot_params filling is done in user
> > > > space kexec_tools. And we haven't made the acpi_rsdp_addr filling yet.
> > > > And the old kexec_tools utility can also cause the new kexec kernel to
> > > > search efi rspd pointer even thought it's fixed.
> > >
> > > Yes, kexec is a pile of ugly and fragile hackery.
> >
> > Well, yes, we have to admit that, since kexec is based on hacking.
>
> Well, then the right thing to do is to think about it proper and replace
> the hackery by something well thought out instead of adding duct tape to it
> every other day.
I could make mistakes on expressing. I meant the mechanism of kexec is
based on hacking into kernel booting stuff. So sometime we call kexec a
bootloader, at least a bootloader variant. That means we may need to adapt
code when any change is made in kernel boot side.
E.g for this acpi_rsdp_addr adding, it happened in boot compressing
stage, to get rsdp to fix the conflict between KASLR and HOTPLUG.
Accordingly, kexec code need be adpated too.
So, when maintain kexec/kdump, we have to track and test any change
which could happen in kernel boot.
Thanks
Baoquan
Powered by blists - more mailing lists