# git rev-parse -q --verify e310e405015f48d18684d89aa27f8c7536b51268^{commit} e310e405015f48d18684d89aa27f8c7536b51268 already have revision, skipping fetch # git checkout -q -f -B kisskb e310e405015f48d18684d89aa27f8c7536b51268 # git clean -qxdf # < git log -1 # commit e310e405015f48d18684d89aa27f8c7536b51268 # Author: Mahesh Salgaonkar # Date: Sun Aug 19 22:38:32 2018 +0530 # # powerpc/pseries: Dump the SLB contents on SLB MCE errors. # # If we get a machine check exceptions due to SLB errors then dump the # current SLB contents which will be very much helpful in debugging the # root cause of SLB errors. Introduce an exclusive buffer per cpu to hold # faulty SLB entries. In real mode mce handler saves the old SLB contents # into this buffer accessible through paca and print it out later in virtual # mode. # # With this patch the console will log SLB contents like below on SLB MCE # errors: # # [ 507.297236] SLB contents of cpu 0x1 # [ 507.297237] Last SLB entry inserted at slot 16 # [ 507.297238] 00 c000000008000000 400ea1b217000500 # [ 507.297239] 1T ESID= c00000 VSID= ea1b217 LLP:100 # [ 507.297240] 01 d000000008000000 400d43642f000510 # [ 507.297242] 1T ESID= d00000 VSID= d43642f LLP:110 # [ 507.297243] 11 f000000008000000 400a86c85f000500 # [ 507.297244] 1T ESID= f00000 VSID= a86c85f LLP:100 # [ 507.297245] 12 00007f0008000000 4008119624000d90 # [ 507.297246] 1T ESID= 7f VSID= 8119624 LLP:110 # [ 507.297247] 13 0000000018000000 00092885f5150d90 # [ 507.297247] 256M ESID= 1 VSID= 92885f5150 LLP:110 # [ 507.297248] 14 0000010008000000 4009e7cb50000d90 # [ 507.297249] 1T ESID= 1 VSID= 9e7cb50 LLP:110 # [ 507.297250] 15 d000000008000000 400d43642f000510 # [ 507.297251] 1T ESID= d00000 VSID= d43642f LLP:110 # [ 507.297252] 16 d000000008000000 400d43642f000510 # [ 507.297253] 1T ESID= d00000 VSID= d43642f LLP:110 # [ 507.297253] ---------------------------------- # [ 507.297254] SLB cache ptr value = 3 # [ 507.297254] Valid SLB cache entries: # [ 507.297255] 00 EA[0-35]= 7f000 # [ 507.297256] 01 EA[0-35]= 1 # [ 507.297257] 02 EA[0-35]= 1000 # [ 507.297257] Rest of SLB cache entries: # [ 507.297258] 03 EA[0-35]= 7f000 # [ 507.297258] 04 EA[0-35]= 1 # [ 507.297259] 05 EA[0-35]= 1000 # [ 507.297260] 06 EA[0-35]= 12 # [ 507.297260] 07 EA[0-35]= 7f000 # # Suggested-by: Aneesh Kumar K.V # Suggested-by: Michael Ellerman # Signed-off-by: Mahesh Salgaonkar # Reviewed-by: Nicholas Piggin # Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < git log --format=%s --max-count=1 e310e405015f48d18684d89aa27f8c7536b51268 # < make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next_ppc32_allmodconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ppc32_allmodconfig # make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next_ppc32_allmodconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- /kisskb/src/net/Makefile:24: CC cannot link executables. Skipping bpfilter. In file included from /kisskb/src/arch/powerpc/include/asm/book3s/pgtable.h:8:0, from /kisskb/src/arch/powerpc/include/asm/pgtable.h:18, from /kisskb/src/include/linux/hugetlb.h:12, from /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c:19: /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c: In function 'populate_markers': /kisskb/src/arch/powerpc/include/asm/book3s/32/pgtable.h:53:19: error: 'PKMAP_BASE' undeclared (first use in this function) #define KVIRT_TOP PKMAP_BASE ^ /kisskb/src/arch/powerpc/include/asm/book3s/32/pgtable.h:64:23: note: in expansion of macro 'KVIRT_TOP' #define IOREMAP_TOP ((KVIRT_TOP - CONFIG_CONSISTENT_SIZE) & PAGE_MASK) ^ /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c:456:39: note: in expansion of macro 'IOREMAP_TOP' address_markers[i++].start_address = IOREMAP_TOP; ^ /kisskb/src/arch/powerpc/include/asm/book3s/32/pgtable.h:53:19: note: each undeclared identifier is reported only once for each function it appears in #define KVIRT_TOP PKMAP_BASE ^ /kisskb/src/arch/powerpc/include/asm/book3s/32/pgtable.h:64:23: note: in expansion of macro 'KVIRT_TOP' #define IOREMAP_TOP ((KVIRT_TOP - CONFIG_CONSISTENT_SIZE) & PAGE_MASK) ^ /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c:456:39: note: in expansion of macro 'IOREMAP_TOP' address_markers[i++].start_address = IOREMAP_TOP; ^ /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c:464:39: error: implicit declaration of function 'PKMAP_ADDR' [-Werror=implicit-function-declaration] address_markers[i++].start_address = PKMAP_ADDR(LAST_PKMAP); ^ /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c:464:50: error: 'LAST_PKMAP' undeclared (first use in this function) address_markers[i++].start_address = PKMAP_ADDR(LAST_PKMAP); ^ cc1: some warnings being treated as errors make[2]: *** [/kisskb/src/scripts/Makefile.build:317: arch/powerpc/mm/dump_linuxpagetables.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/kisskb/src/Makefile:1034: arch/powerpc/mm] Error 2 make[1]: *** Waiting for unfinished jobs.... /kisskb/src/arch/powerpc/kernel/head_32.S: Assembler messages: /kisskb/src/arch/powerpc/kernel/head_32.S:990: Warning: invalid register expression /kisskb/src/arch/powerpc/platforms/52xx/lite5200_sleep.S: Assembler messages: /kisskb/src/arch/powerpc/platforms/52xx/lite5200_sleep.S:184: Warning: invalid register expression make: *** [Makefile:146: sub-make] Error 2 Command 'make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next_ppc32_allmodconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/powerpc-next_ppc32_allmodconfig_powerpc-gcc5 # Build took: 0:00:27.825000