Patch "powerpc/vmcore: Add MMU information to vmcoreinfo" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    powerpc/vmcore: Add MMU information to vmcoreinfo

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     powerpc-vmcore-add-mmu-information-to-vmcoreinfo.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit ff9e972d542604f0ccda33a407a133426928912a
Author: Aditya Gupta <adityag@xxxxxxxxxxxxx>
Date:   Mon Oct 23 12:56:12 2023 +0530

    powerpc/vmcore: Add MMU information to vmcoreinfo
    
    [ Upstream commit 36e826b568e412f61d68fedc02a67b4d8b7583cc ]
    
    Since below commit, address mapping for vmemmap has changed for Radix
    MMU, where address mapping is stored in kernel page table itself,
    instead of earlier used 'vmemmap_list'.
    
        commit 368a0590d954 ("powerpc/book3s64/vmemmap: switch radix to use
        a different vmemmap handling function")
    
    Hence with upstream kernel, in case of Radix MMU, makedumpfile fails
    to do address translation for vmemmap addresses, as it depended on
    vmemmap_list, which can now be empty.
    
    While fixing the address translation in makedumpfile, it was identified
    that currently makedumpfile cannot distinguish between Hash MMU and
    Radix MMU, unless VMLINUX is passed with -x flag to makedumpfile. And
    hence fails to assign offsets and shifts correctly (such as in L4 to
    PGDIR offset calculation in makedumpfile).
    
    For getting the MMU, makedumpfile uses `cur_cpu_spec.mmu_features`.
    
    Add `cur_cpu_spec` symbol and offset of `mmu_features` in the `cpu_spec`
    struct, to VMCOREINFO, so that makedumpfile can assign the offsets
    correctly, without needing a VMLINUX.
    
    Also, even along with `cur_cpu_spec->mmu_features` makedumpfile has to
    depend on the 'MMU_FTR_TYPE_RADIX' flag in mmu_features, implying kernel
    developers need to be cautious of changes to 'MMU_FTR_*' defines.
    
    A more stable approach was suggested in the below thread by contributors:
     https://lore.kernel.org/linuxppc-dev/20230920105706.853626-1-adityag@xxxxxxxxxxxxx/
    
    The suggestion was to add whether 'RADIX_MMU' is enabled in vmcoreinfo
    
    This patch also implements the suggestion, by adding 'RADIX_MMU' in
    vmcoreinfo, which makedumpfile can use to get whether the crashed system
    had RADIX MMU (in which case 'NUMBER(RADIX_MMU)=1') or not (in which
    case 'NUMBER(RADIX_MMU)=0')
    
    Fixes: 368a0590d954 ("powerpc/book3s64/vmemmap: switch radix to use a different vmemmap handling function")
    Reported-by: Sachin Sant <sachinp@xxxxxxxxxxxxx>
    Signed-off-by: Aditya Gupta <adityag@xxxxxxxxxxxxx>
    Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
    Link: https://msgid.link/20231023072612.50874-1-adityag@xxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/powerpc/kexec/core.c b/arch/powerpc/kexec/core.c
index de64c79629912..005269ac3244c 100644
--- a/arch/powerpc/kexec/core.c
+++ b/arch/powerpc/kexec/core.c
@@ -74,6 +74,9 @@ void arch_crash_save_vmcoreinfo(void)
 	VMCOREINFO_STRUCT_SIZE(mmu_psize_def);
 	VMCOREINFO_OFFSET(mmu_psize_def, shift);
 #endif
+	VMCOREINFO_SYMBOL(cur_cpu_spec);
+	VMCOREINFO_OFFSET(cpu_spec, mmu_features);
+	vmcoreinfo_append_str("NUMBER(RADIX_MMU)=%d\n", early_radix_enabled());
 	vmcoreinfo_append_str("KERNELOFFSET=%lx\n", kaslr_offset());
 }
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux