Re: regression: 9a56493f6942 "uts: Use generic ns_common::count" broke makedumpfile 1.6.7
From: Christian Brauner
Date: Wed Dec 16 2020 - 09:26:35 EST
On Wed, Dec 16, 2020 at 05:23:30PM +0300, Kirill Tkhai wrote:
> On 16.12.2020 16:32, Mike Galbraith wrote:
> > On Wed, 2020-12-16 at 15:35 +0300, Kirill Tkhai wrote:
> >> Hi, Alexander,
> >>
> >> On 16.12.2020 14:02, Mike Galbraith wrote:
> >>> Greetings,
> >>>
> >>> With this commit, bisected and confirmed, kdump stops working here,
> >>> makedumpfile saying "check_release: Can't get the kernel version".
> >>
> >> hasn't your commit 55d9e11398a4 "kdump: append uts_namespace.name offset to VMCOREINFO"
> >> fixed this issue?
> >
> > FWIW, I applied the below, but it didn't help.
> >
> > ---
> > kernel/crash_core.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > --- a/kernel/crash_core.c
> > +++ b/kernel/crash_core.c
> > @@ -447,6 +447,7 @@ static int __init crash_save_vmcoreinfo_
> > VMCOREINFO_PAGESIZE(PAGE_SIZE);
> >
> > VMCOREINFO_SYMBOL(init_uts_ns);
> > + VMCOREINFO_OFFSET(uts_namespace, name);
> > VMCOREINFO_SYMBOL(node_online_map);
> > #ifdef CONFIG_MMU
> > VMCOREINFO_SYMBOL_ARRAY(swapper_pg_dir);
>
> As I see, makedumpfile hardcodes recent supported kernel version.
> (I downloaded makedumpfile from here: https://github.com/makedumpfile/makedumpfile)
>
> #define LATEST_VERSION KERNEL_VERSION(5, 9, 4) /* linux-5.9.4 */
> int32_t
> get_kernel_version(char *release)
> {
> ...
> if ((version < OLDEST_VERSION) || (LATEST_VERSION < version)) {
> MSG("The kernel version is not supported.\n");
> MSG("The makedumpfile operation may be incomplete.\n");
> }
> ...
> }
>
> So, in case of you revert the patch, makedumpfile also should fail:
>
> root@qemu:~# ./makedumpfile/makedumpfile -g VMCOREINFO -x ./vmlinux
> The kernel version is not supported.
> The makedumpfile operation may be incomplete.
>
> The vmcoreinfo is saved to VMCOREINFO.
>
> makedumpfile Completed.
>
> Does this regression only cause that one error message "check_release: Can't get the kernel version"
> is printed instead of another: "The kernel version is not supported."?
(I take it you're debugging this now, Kirill. Thank you!)