# git rev-parse -q --verify daebe06ec4af252eba275f602a08086bc2bca5dc^{commit} daebe06ec4af252eba275f602a08086bc2bca5dc already have revision, skipping fetch # git checkout -q -f -B kisskb daebe06ec4af252eba275f602a08086bc2bca5dc # git clean -qxdf # < git log -1 # commit daebe06ec4af252eba275f602a08086bc2bca5dc # Author: Shilpasri G Bhat # Date: Wed Apr 25 16:29:31 2018 +0530 # # cpufreq: powernv: Fix the hardlockup by synchronus smp_call in timer interrupt # # gpstate_timer_handler() uses synchronous smp_call to set the pstate # on the requested core. This causes the below hard lockup: # # smp_call_function_single+0x110/0x180 (unreliable) # smp_call_function_any+0x180/0x250 # gpstate_timer_handler+0x1e8/0x580 # call_timer_fn+0x50/0x1c0 # expire_timers+0x138/0x1f0 # run_timer_softirq+0x1e8/0x270 # __do_softirq+0x158/0x3e4 # irq_exit+0xe8/0x120 # timer_interrupt+0x9c/0xe0 # decrementer_common+0x114/0x120 # -- interrupt: 901 at doorbell_global_ipi+0x34/0x50 # LR = arch_send_call_function_ipi_mask+0x120/0x130 # arch_send_call_function_ipi_mask+0x4c/0x130 # smp_call_function_many+0x340/0x450 # pmdp_invalidate+0x98/0xe0 # change_huge_pmd+0xe0/0x270 # change_protection_range+0xb88/0xe40 # mprotect_fixup+0x140/0x340 # SyS_mprotect+0x1b4/0x350 # system_call+0x58/0x6c # # One way to avoid this is removing the smp-call. We can ensure that the # timer always runs on one of the policy-cpus. If the timer gets # migrated to a cpu outside the policy then re-queue it back on the # policy->cpus. This way we can get rid of the smp-call which was being # used to set the pstate on the policy->cpus. # # Fixes: 7bc54b652f13 ("timers, cpufreq/powernv: Initialize the gpstate timer as pinned") # Cc: stable@vger.kernel.org # v4.8+ # Reported-by: Nicholas Piggin # Reported-by: Pridhiviraj Paidipeddi # Signed-off-by: Shilpasri G Bhat # Acked-by: Nicholas Piggin # Acked-by: Viresh Kumar # Acked-by: Vaidyanathan Srinivasan # 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 daebe06ec4af252eba275f602a08086bc2bca5dc # < make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-fixes_amigaone_defconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- amigaone_defconfig WARNING: unmet direct dependencies detected for NOT_COHERENT_CACHE Depends on [n]: 4xx [=n] || PPC_8xx [=n] || E200 [=n] || PPC_MPC512x [=n] || GAMECUBE_COMMON [=n] Selected by [y]: - AMIGAONE [=y] && 6xx [=y] && BROKEN_ON_SMP [=y] WARNING: unmet direct dependencies detected for NOT_COHERENT_CACHE Depends on [n]: 4xx [=n] || PPC_8xx [=n] || E200 [=n] || PPC_MPC512x [=n] || GAMECUBE_COMMON [=n] Selected by [y]: - AMIGAONE [=y] && 6xx [=y] && BROKEN_ON_SMP [=y] # make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-fixes_amigaone_defconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- WARNING: unmet direct dependencies detected for NOT_COHERENT_CACHE Depends on [n]: 4xx [=n] || PPC_8xx [=n] || E200 [=n] || PPC_MPC512x [=n] || GAMECUBE_COMMON [=n] Selected by [y]: - AMIGAONE [=y] && 6xx [=y] && BROKEN_ON_SMP [=y] WARNING: unmet direct dependencies detected for NOT_COHERENT_CACHE Depends on [n]: 4xx [=n] || PPC_8xx [=n] || E200 [=n] || PPC_MPC512x [=n] || GAMECUBE_COMMON [=n] Selected by [y]: - AMIGAONE [=y] && 6xx [=y] && BROKEN_ON_SMP [=y] INFO: Uncompressed kernel (size 0x5c31c4) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x600000) Image Name: Linux-4.17.0-rc2+ Created: Thu Apr 26 21:38:49 2018 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 2925244 Bytes = 2856.68 kB = 2.79 MB Load Address: 00000000 Entry Point: 00000000 Image Name: Linux-4.17.0-rc2+ Created: Thu Apr 26 21:38:49 2018 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 2947991 Bytes = 2878.90 kB = 2.81 MB Load Address: 00800000 Entry Point: 00800108 Completed OK # rm -rf /kisskb/build/powerpc-fixes_amigaone_defconfig_powerpc-5.3 # Build took: 0:00:40.628788