# git rev-parse -q --verify 36e826b568e412f61d68fedc02a67b4d8b7583cc^{commit} 36e826b568e412f61d68fedc02a67b4d8b7583cc already have revision, skipping fetch # git checkout -q -f -B kisskb 36e826b568e412f61d68fedc02a67b4d8b7583cc # git clean -qxdf # < git log -1 # commit 36e826b568e412f61d68fedc02a67b4d8b7583cc # Author: Aditya Gupta # Date: Mon Oct 23 12:56:12 2023 +0530 # # powerpc/vmcore: Add MMU information to vmcoreinfo # # 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@linux.ibm.com/ # # 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 # Signed-off-by: Aditya Gupta # Signed-off-by: Michael Ellerman # Link: https://msgid.link/20231023072612.50874-1-adityag@linux.ibm.com # < /opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 36e826b568e412f61d68fedc02a67b4d8b7583cc # make -s -j 160 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_defconfig+KVM_powerpc-gcc12 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux- mpc85xx_defconfig Using /kisskb/src/arch/powerpc/configs/mpc85xx_base.config as base Merging /kisskb/src/arch/powerpc/configs/85xx-32bit.config Merging /kisskb/src/arch/powerpc/configs/85xx-hw.config Merging /kisskb/src/arch/powerpc/configs/fsl-emb-nonhw.config # # merged configuration written to .config (needs make) # # Added to kconfig CONFIG_PPC_E500MC=y # Added to kconfig CONFIG_VIRTUALIZATION=y # Added to kconfig CONFIG_KVM_E500MC=y # Added to kconfig # < make -s -j 160 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_defconfig+KVM_powerpc-gcc12 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 160 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_defconfig+KVM_powerpc-gcc12 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig .config:4542:warning: override: reassigning to symbol PPC_E500MC .config:4543:warning: override: reassigning to symbol VIRTUALIZATION # make -s -j 160 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_defconfig+KVM_powerpc-gcc12 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux- In file included from /kisskb/src/include/linux/build_bug.h:5, from /kisskb/src/include/linux/container_of.h:5, from /kisskb/src/include/linux/list.h:5, from /kisskb/src/include/linux/module.h:12, from /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:15: /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c: In function 'allocate_bd': /kisskb/src/include/linux/err.h:28:49: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 28 | #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO) | ^ /kisskb/src/include/linux/compiler.h:77:45: note: in definition of macro 'unlikely' 77 | # define unlikely(x) __builtin_expect(!!(x), 0) | ^ /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:138:13: note: in expansion of macro 'IS_ERR_VALUE' 138 | if (IS_ERR_VALUE(fep->ring_mem_addr)) | ^~~~~~~~~~~~ Completed OK # rm -rf /kisskb/build/powerpc-next_mpc85xx_defconfig+KVM_powerpc-gcc12 # Build took: 0:02:18.428894