Messages in this thread | | | Date | Wed, 27 Feb 2019 09:30:34 +0800 | From | Baoquan He <> | Subject | Re: [PATCH] x86/boot/KASLR: skip the specified crashkernel reserved region |
| |
On 02/26/19 at 11:46am, Borislav Petkov wrote: > On Tue, Feb 26, 2019 at 11:08:42AM +0800, Pingfan Liu wrote: > > I follow Baoquan's opinion. Due to the randomness caused by KASLR, a > > user may be surprised to find crashkernel=x@y not working sometime. > > And she/he will get told in dmesg that the allocation failed. > > > If kernel can help them out of this corner automatically, then no > > need to bother them with the message to use alternative method > > crashkernel=M. Anyway it is a cheap method already used by other > > options like hugepages and memmap in handle_mem_options(). > > If commitment, then do it without failure. Or just removing > > crashkernel=x@y option on x86. > > I can't parse what you're trying to say here but let me repeat myself: > specifying a crashkernel region should not have an influence on KASLR > because this way you limit the kernel where it selects the offset. It > should be other other way around: KASLR offset should be selected and > *then* crashkernel region.
Agree that 'crashkernel=x' should be encouraged to use as the first choice when reserve crashkernel. If we decide to not obsolete 'crashkernel=x@y', it will leave a unstable kernel parameter. Another worry is that KASLR won't always fail 'crashkernel=x@y', customer may set and check in testing stage, then later in production environment one time of neglect to not check may cause carashed kernel uncaptured.
IMHO, 'crashkernel=x@y' is similar to those specified memmap=ss[#$!]nn which have been avoided in boot stage KASLR.
And in kernel life cycle, we specify kernel parameter before kernel boot, later KASLR lives to choose position. So KASLR can avoid firstly specified regions which are being reserved for usage, 'crashkernel=x@y' have no way to compromise with KASLR if it's still allowed to exist in kernel.
Personal thought.
Thanks Baoquan
| |