# git rev-parse -q --verify 91a62bac46aaa40d6fc94fb95f01119ea9a561c2^{commit} 91a62bac46aaa40d6fc94fb95f01119ea9a561c2 already have revision, skipping fetch # git checkout -q -f -B kisskb 91a62bac46aaa40d6fc94fb95f01119ea9a561c2 # git clean -qxdf # git log -1 commit 91a62bac46aaa40d6fc94fb95f01119ea9a561c2 Author: Anton Blanchard Date: Sat Oct 1 20:41:56 2016 +1000 powerpc/pseries: Use H_CLEAR_HPT to clear MMU hash table during kexec An hcall was recently added that does exactly what we need during kexec - it clears the entire MMU hash table, ignoring any VRMA mappings. Try it and fall back to the old method if we get a failure. On a POWER8 box with 5TB of memory, this reduces the time it takes to kexec a new kernel from from 4 minutes to 1 minute. Signed-off-by: Anton Blanchard [mpe: Split into separate functions and tweak function naming] Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < git log --format=%s --max-count=1 91a62bac46aaa40d6fc94fb95f01119ea9a561c2 # < make -j 10 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_corenet64_smp_defconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- corenet64_smp_defconfig # make -j 10 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_corenet64_smp_defconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- make[1]: Entering directory '/home/kisskb/slave/build/powerpc-next_corenet64_smp_defconfig_powerpc-5.3' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release GEN ./Makefile WRAP arch/powerpc/include/generated/asm/clkdev.h WRAP arch/powerpc/include/generated/asm/div64.h WRAP arch/powerpc/include/generated/asm/irq_regs.h WRAP arch/powerpc/include/generated/asm/irq_work.h WRAP arch/powerpc/include/generated/asm/local64.h WRAP arch/powerpc/include/generated/asm/mcs_spinlock.h WRAP arch/powerpc/include/generated/asm/preempt.h WRAP arch/powerpc/include/generated/asm/rwsem.h WRAP arch/powerpc/include/generated/asm/vtime.h CHK include/generated/uapi/linux/version.h UPD include/generated/uapi/linux/version.h HOSTCC scripts/basic/bin2c UPD include/config/kernel.release Using /home/kisskb/slave/src as source for kernel CHK include/generated/utsrelease.h UPD include/generated/utsrelease.h HOSTCC scripts/dtc/dtc.o HOSTCC scripts/genksyms/genksyms.o HOSTCC scripts/dtc/flattree.o HOSTCC scripts/dtc/fstree.o CC scripts/mod/empty.o SHIPPED scripts/genksyms/parse.tab.c HOSTCC scripts/kallsyms HOSTCC scripts/mod/mk_elfconfig HOSTCC scripts/dtc/data.o SHIPPED scripts/genksyms/lex.lex.c HOSTCC scripts/dtc/livetree.o CC scripts/mod/devicetable-offsets.s HOSTCC scripts/dtc/treesource.o SHIPPED scripts/genksyms/keywords.hash.c HOSTCC scripts/dtc/srcpos.o MKELF scripts/mod/elfconfig.h GEN scripts/mod/devicetable-offsets.h HOSTCC scripts/mod/sumversion.o HOSTCC scripts/dtc/checks.o HOSTCC scripts/dtc/util.o SHIPPED scripts/genksyms/parse.tab.h HOSTCC scripts/genksyms/parse.tab.o HOSTCC scripts/genksyms/lex.lex.o CC kernel/bounds.s HOSTCC scripts/conmakehash CHK include/generated/timeconst.h UPD include/generated/timeconst.h CHK include/generated/bounds.h UPD include/generated/bounds.h CC arch/powerpc/kernel/asm-offsets.s SHIPPED scripts/dtc/dtc-lexer.lex.c HOSTCC scripts/mod/modpost.o HOSTCC scripts/sortextable HOSTCC scripts/mod/file2alias.o SHIPPED scripts/dtc/dtc-parser.tab.h SHIPPED scripts/dtc/dtc-parser.tab.c HOSTCC scripts/asn1_compiler HOSTCC scripts/dtc/dtc-lexer.lex.o HOSTCC scripts/dtc/dtc-parser.tab.o CHK include/generated/asm-offsets.h UPD include/generated/asm-offsets.h CALL /home/kisskb/slave/src/scripts/checksyscalls.sh HOSTLD scripts/genksyms/genksyms HOSTLD scripts/dtc/dtc HOSTLD scripts/mod/modpost HOSTCC usr/gen_init_cpio CC init/main.o CHK include/generated/compile.h CC init/do_mounts.o CC init/do_mounts_rd.o CC init/do_mounts_initrd.o CC init/initramfs.o CC init/init_task.o UPD include/generated/compile.h CC arch/powerpc/mm/fault.o AS arch/powerpc/lib/string.o CC arch/powerpc/kernel/cputable.o CC arch/powerpc/lib/alloc.o GEN usr/initramfs_data.cpio.gz AS usr/initramfs_data.o LD usr/built-in.o AS arch/powerpc/lib/crtsavres.o CC arch/powerpc/lib/ppc_ksyms.o CC arch/powerpc/lib/code-patching.o CC arch/powerpc/kernel/ptrace.o CC init/version.o CC arch/powerpc/mm/mem.o CC arch/powerpc/lib/feature-fixups.o CC arch/powerpc/mm/pgtable.o AS arch/powerpc/lib/checksum_64.o /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S: Assembler messages: /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:233: Error: unrecognized opcode: `ex_table(100b,.Lsrc_error_nr)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:237: Error: unrecognized opcode: `ex_table(200b,.Ldest_error_nr)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:259: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:260: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:262: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:263: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:274: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:275: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:278: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:279: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:283: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:284: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:287: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:288: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:291: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:292: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:295: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:296: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:300: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:301: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:304: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:305: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:310: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:311: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:314: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:315: Error: unrecognized opcode: `ex_table(150b,.Lsrc_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:319: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:320: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:323: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:324: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:327: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:328: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:331: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:332: Error: unrecognized opcode: `ex_table(250b,.Ldest_error)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:351: Error: unrecognized opcode: `ex_table(100b,.Lsrc_error_nr)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:354: Error: unrecognized opcode: `ex_table(200b,.Ldest_error_nr)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:364: Error: unrecognized opcode: `ex_table(100b,.Lsrc_error_nr)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:367: Error: unrecognized opcode: `ex_table(200b,.Ldest_error_nr)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:375: Error: unrecognized opcode: `ex_table(100b,.Lsrc_error_nr)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:378: Error: unrecognized opcode: `ex_table(200b,.Ldest_error_nr)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:386: Error: unrecognized opcode: `ex_table(100b,.Lsrc_error_nr)' /home/kisskb/slave/src/arch/powerpc/lib/checksum_64.S:389: Error: unrecognized opcode: `ex_table(200b,.Ldest_error_nr)' /home/kisskb/slave/src/scripts/Makefile.build:326: recipe for target 'arch/powerpc/lib/checksum_64.o' failed make[2]: *** [arch/powerpc/lib/checksum_64.o] Error 1 make[2]: *** Waiting for unfinished jobs.... CC arch/powerpc/kernel/syscalls.o CC arch/powerpc/mm/mmap.o CC arch/powerpc/sysdev/mpic.o CC arch/powerpc/platforms/85xx/smp.o /home/kisskb/slave/src/Makefile:968: recipe for target 'arch/powerpc/lib' failed make[1]: *** [arch/powerpc/lib] Error 2 make[1]: *** Waiting for unfinished jobs.... CC arch/powerpc/mm/init_64.o CC arch/powerpc/sysdev/mpic_msi.o CC arch/powerpc/kernel/irq.o CC arch/powerpc/platforms/85xx/common.o CC arch/powerpc/kernel/align.o LD init/mounts.o LD init/built-in.o CC arch/powerpc/platforms/85xx/corenet_generic.o CC arch/powerpc/sysdev/mpic_u3msi.o CC arch/powerpc/sysdev/ehv_pic.o CC arch/powerpc/sysdev/msi_bitmap.o CC arch/powerpc/sysdev/fsl_soc.o CC arch/powerpc/kernel/signal_32.o CC arch/powerpc/mm/pgtable_64.o CC arch/powerpc/sysdev/fsl_mpic_err.o CC arch/powerpc/kernel/pmc.o CC arch/powerpc/kernel/vdso.o CC arch/powerpc/sysdev/fsl_pci.o CC arch/powerpc/sysdev/fsl_msi.o LD arch/powerpc/platforms/85xx/built-in.o LD arch/powerpc/platforms/built-in.o CC arch/powerpc/sysdev/fsl_rcpm.o CC arch/powerpc/kernel/process.o CPP arch/powerpc/kernel/systbl_chk.i CC arch/powerpc/sysdev/fsl_lbc.o CC arch/powerpc/mm/mmu_context_nohash.o CC arch/powerpc/mm/tlb_nohash.o CC arch/powerpc/sysdev/fsl_rio.o CC arch/powerpc/sysdev/fsl_rmu.o CC arch/powerpc/sysdev/rtc_cmos_setup.o CC arch/powerpc/kernel/idle.o CC arch/powerpc/kernel/signal.o CC arch/powerpc/sysdev/indirect_pci.o AS arch/powerpc/mm/tlb_nohash_low.o AS arch/powerpc/mm/tlb_low_64e.o CC arch/powerpc/mm/pgtable-book3e.o CC arch/powerpc/mm/fsl_booke_mmu.o CC arch/powerpc/mm/hugetlbpage.o {standard input}: Assembler messages: {standard input}:3228: Error: can't resolve `.fixup' {.fixup section} - `.LFB2468' {.text section} {standard input}:3228: Error: expression too complex {standard input}:25444: Error: can't resolve `.fixup' {.fixup section} - `.LFB2468' {.text section} {standard input}:25444: Error: expression too complex {standard input}: Error: .size expression for .fsl_rio_config_read does not evaluate to a constant CC arch/powerpc/mm/hugetlbpage-book3e.o /home/kisskb/slave/src/scripts/Makefile.build:289: recipe for target 'arch/powerpc/sysdev/fsl_rio.o' failed make[2]: *** [arch/powerpc/sysdev/fsl_rio.o] Error 1 make[2]: *** Waiting for unfinished jobs.... CC arch/powerpc/kernel/sysfs.o CC arch/powerpc/kernel/cacheinfo.o CC arch/powerpc/kernel/time.o /home/kisskb/slave/src/Makefile:968: recipe for target 'arch/powerpc/sysdev' failed make[1]: *** [arch/powerpc/sysdev] Error 2 CC arch/powerpc/kernel/prom.o CC arch/powerpc/kernel/traps.o CC arch/powerpc/kernel/setup-common.o CC arch/powerpc/kernel/udbg.o AS arch/powerpc/kernel/misc.o CC arch/powerpc/kernel/io.o CC arch/powerpc/kernel/dma.o AS arch/powerpc/kernel/misc_64.o CC arch/powerpc/kernel/of_platform.o CC arch/powerpc/kernel/prom_parse.o CC arch/powerpc/kernel/setup_64.o LD arch/powerpc/mm/built-in.o CC arch/powerpc/kernel/sys_ppc32.o CC arch/powerpc/kernel/signal_64.o CC arch/powerpc/kernel/ptrace32.o CC arch/powerpc/kernel/paca.o CC arch/powerpc/kernel/nvram_64.o CC arch/powerpc/kernel/firmware.o LDS arch/powerpc/kernel/vdso32/vdso32.lds VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o AS arch/powerpc/kernel/exceptions-64e.o LDS arch/powerpc/kernel/vdso64/vdso64.lds VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o AS arch/powerpc/kernel/vdso64/sigtramp.o AS arch/powerpc/kernel/idle_book3e.o VDSO32A arch/powerpc/kernel/vdso32/datapage.o AS arch/powerpc/kernel/vdso64/gettimeofday.o VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o CC arch/powerpc/kernel/vecemu.o AS arch/powerpc/kernel/vdso64/datapage.o VDSO32A arch/powerpc/kernel/vdso32/note.o AS arch/powerpc/kernel/vdso64/cacheflush.o CC arch/powerpc/kernel/proc_powerpc.o VDSO32A arch/powerpc/kernel/vdso32/getcpu.o AS arch/powerpc/kernel/vdso64/note.o VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg AS arch/powerpc/kernel/vdso64/getcpu.o OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so AS arch/powerpc/kernel/vdso32/vdso32_wrapper.o CC arch/powerpc/kernel/module.o VDSO64L arch/powerpc/kernel/vdso64/vdso64.so.dbg LD arch/powerpc/kernel/vdso32/built-in.o CC arch/powerpc/kernel/module_64.o OBJCOPY arch/powerpc/kernel/vdso64/vdso64.so AS arch/powerpc/kernel/vdso64/vdso64_wrapper.o LD arch/powerpc/kernel/vdso64/built-in.o AS arch/powerpc/kernel/cpu_setup_fsl_booke.o CC arch/powerpc/kernel/dbell.o CC arch/powerpc/kernel/dma-iommu.o CC arch/powerpc/kernel/iommu.o CC arch/powerpc/kernel/ppc_ksyms.o CC arch/powerpc/kernel/smp.o CC arch/powerpc/kernel/legacy_serial.o CC arch/powerpc/kernel/udbg_16550.o CC arch/powerpc/kernel/dma-swiotlb.o CC arch/powerpc/kernel/pci_64.o CC arch/powerpc/kernel/pci_dn.o CC arch/powerpc/kernel/pci-hotplug.o CC arch/powerpc/kernel/isa-bridge.o CC arch/powerpc/kernel/pci-common.o CC arch/powerpc/kernel/pci_of_scan.o CC arch/powerpc/kernel/msi.o CC arch/powerpc/kernel/audit.o CC arch/powerpc/kernel/iomap.o CC arch/powerpc/kernel/compat_audit.o CC arch/powerpc/kernel/epapr_paravirt.o AS arch/powerpc/kernel/epapr_hcalls.o AS arch/powerpc/kernel/head_64.o LDS arch/powerpc/kernel/vmlinux.lds AS arch/powerpc/kernel/fpu.o AS arch/powerpc/kernel/vector.o AS arch/powerpc/kernel/entry_64.o CALL /home/kisskb/slave/src/arch/powerpc/kernel/systbl_chk.sh AS arch/powerpc/kernel/systbl.o LD arch/powerpc/kernel/built-in.o make[1]: Leaving directory '/home/kisskb/slave/build/powerpc-next_corenet64_smp_defconfig_powerpc-5.3' Makefile:150: recipe for target 'sub-make' failed make: *** [sub-make] Error 2 Command 'make -j 10 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_corenet64_smp_defconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ' returned non-zero exit status 2 # rm -rf /home/kisskb/slave/build/powerpc-next_corenet64_smp_defconfig_powerpc-5.3 # Build took: 0:00:16.443025