On 4/19/24 21:58, Greg Kroah-Hartman wrote:
On Fri, Apr 19, 2024 at 08:26:07PM +0800, Mingzheng Xing wrote:
On 4/19/24 18:44, Greg Kroah-Hartman wrote:
On Tue, Apr 16, 2024 at 04:56:47PM +0800, Mingzheng Xing wrote:
This reverts commit 1d6cd2146c2b58bc91266db1d5d6a5f9632e14c0 which has been merged into the mainline commit 39365395046f ("riscv: kdump: use generic interface to simplify crashkernel reservation"), but the latter's series of patches are not included in the 6.6 branch.
This will result in the loss of Crash kernel data in /proc/iomem, and kdump loading the kernel will also cause an error:
Memory for crashkernel is not reserved Please reserve memory by passing"crashkernel=Y@X" parameter to kernel Then try to loading kdump kernel
After revert this patch, verify that it works properly on QEMU riscv.
Link: https://lore.kernel.org/linux-riscv/ZSiQRDGLZk7lpakE@MiWiFi-R3L-srv Signed-off-by: Mingzheng Xing xingmingzheng@iscas.ac.cn
I do not understand, what branch is this for? Why have you not cc:ed any of the original developers here? Why does Linus's tree not have the same problem? And the first sentence above does not make much sense as a 6.6 change is merged into 6.7?
Sorry, I'll try to explain it more clearly.
This commit 1d6cd2146c2b ("riscv: kdump: fix crashkernel reserving problem on RISC-V") should not have existed because this patch has been merged into another larger patch [1]. Here is that complete series:
What "larger patch"? It is in Linus's tree, so it's not part of something different, right? I'm confused.
Hi, Greg
The email Cc:ed to author Chen Jiahao was bounced by the system, so maybe we can wait for Baoquan He to confirm.
This is indeed a bit confusing. The Fixes: tag in 1d6cd2146c2b58 is a false reference. If I understand correctly, this is similar to the following scenario:
A Fixes B, B doesn't go into linus mainline. C contains A, C goes into linus mainline 6.7, and C has more reconstruction code. but A goes into 6.6, so it doesn't make sense for A to be in the mainline, and there's no C in 6.6 but there's an A, thus resulting in an incomplete code that creates an error.
The link I quoted [1] shows that Baoquan had expressed an opinion on this at the time.
Link: https://lore.kernel.org/linux-riscv/ZSiQRDGLZk7lpakE@MiWiFi-R3L-srv [1]
Thanks, Mingzheng
c37e56cac3d62 crash_core.c: remove unneeded functions 39365395046fe riscv: kdump: use generic interface to simplify crashkernel reservation [1] fdc268232dbba arm64: kdump: use generic interface to simplify crashkernel reservation 9c08a2a139fe8 x86: kdump: use generic interface to simplify crashkernel reservation code b631b95dded5e crash_core: move crashk_*res definition into crash_core.c 0ab97169aa051 crash_core: add generic function to do reservation 70916e9c8d9f1 crash_core: change parse_crashkernel() to support crashkernel=,high|low parsing a9e1a3d84e4a0 crash_core: change the prototype of function parse_crashkernel() a6304272b03ec crash_core.c: remove unnecessary parameter of function
I checked and that series above is not present in 6.6.y. It is only present in 6.7+. So this commit is causing an error. Crash kernel information cannot be read from /proc/iomem when using the 6.6.y kernel.
Did that ever work in older kernels? Is this a regression? Or are the commits in 6.7 just to fix this feature up and get it to work?
I tested two ways to fix this error, the first one is to revert this commit. the second one is to backport the complete series above to 6.6.y, but according to stable-kernel-rules, it seems that the most appropriate method is the first one.
It depends if this is a regression from older kernels or not.
Please work with the maintainers of the above code to figure out what is best to do here and get them to agree what needs to happen.
thanks,
greg k-h