From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ozlabs.org (ozlabs.org [IPv6:2401:3900:2:1::2]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 41WNmz0HVBzDqCD for ; Thu, 19 Jul 2018 16:06:11 +1000 (AEST) In-Reply-To: <1531902796-32294-1-git-send-email-ego@linux.vnet.ibm.com> To: "Gautham R. Shenoy" , Benjamin Herrenschmidt , Michael Neuling , Vaidyanathan Srinivasan From: Michael Ellerman Cc: Florian Weimer , "Gautham R. Shenoy" , linux-kernel@vger.kernel.org, stable@vger.kernel.org, Oleg Nesterov , linuxppc-dev@lists.ozlabs.org Subject: Re: [v2] powerpc/powernv : Save/Restore SPRG3 on entry/exit from stop. Message-Id: <41WNmy63X5z9s55@ozlabs.org> Date: Thu, 19 Jul 2018 16:06:10 +1000 (AEST) List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Wed, 2018-07-18 at 08:33:16 UTC, "Gautham R. Shenoy" wrote: > From: "Gautham R. Shenoy" > > On 64-bit servers, SPRN_SPRG3 and its userspace read-only mirror > SPRN_USPRG3 are used as userspace VDSO write and read registers > respectively. > > SPRN_SPRG3 is lost when we enter stop4 and above, and is currently not > restored. As a result, any read from SPRN_USPRG3 returns zero on an > exit from stop4 and above. > > Thus in this situation, on POWER9, any call from sched_getcpu() always > returns zero, as on powerpc, we call __kernel_getcpu() which relies > upon SPRN_USPRG3 to report the CPU and NUMA node information. > > Fix this by restoring SPRN_SPRG3 on wake up from a deep stop state > with the sprg_vdso value that is cached in PACA. > > Fixes: e1c1cfed5432 ("powerpc/powernv: Save/Restore additional SPRs > for stop4 cpuidle") > > Reported-by: Florian Weimer > Cc: # 4.14 > Cc: Oleg Nesterov > Cc: Michael Neuling > Cc: Michael Ellerman > Cc: Benjamin Herrenschmidt > Cc: Vaidyanathan Srinivasan > Signed-off-by: Gautham R. Shenoy Applied to powerpc fixes, thanks. https://git.kernel.org/powerpc/c/b03897cf318dfc47de33a7ecbc7655 cheers