Thread (24 messages) flat view 24 messages, 3 authors, 2017-03-20

Re: [PATCH 5/8] powerpc/64s: use PACA_THREAD_IDLE_STATE only in POWER8

From: Nicholas Piggin <npiggin@gmail.com>
Date: 2017-03-16 12:16:53

On Thu, 16 Mar 2017 17:24:03 +0530
Gautham R Shenoy [off-list ref] wrote:
Hi Nick,

On Tue, Mar 14, 2017 at 07:23:46PM +1000, Nicholas Piggin wrote:
quoted
POWER9 does not use this field, so it should be moved into the POWER8
code. Update the documentation in the paca struct too.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
 arch/powerpc/include/asm/paca.h   | 12 ++++++++++--
 arch/powerpc/kernel/idle_book3s.S | 13 +++++++------
 2 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h
index 708c3e592eeb..bbb59e226a9f 100644
--- a/arch/powerpc/include/asm/paca.h
+++ b/arch/powerpc/include/asm/paca.h
@@ -165,11 +165,19 @@ struct paca_struct {
 #endif

 #ifdef CONFIG_PPC_POWERNV
-	/* Per-core mask tracking idle threads and a lock bit-[L][TTTTTTTT] */
+	/* CPU idle fields */
+
+	/*
+	 * Per-core word used to synchronize between threads. See
+	 * asm/cpuidle.h, PNV_CORE_IDLE_*
+	 */
 	u32 *core_idle_state_ptr;
-	u8 thread_idle_state;		/* PNV_THREAD_RUNNING/NAP/SLEEP	*/
 	/* Mask to indicate thread id in core */
 	u8 thread_mask;
+
+	/* POWER8 specific fields */
+	/* PNV_THREAD_RUNNING/NAP/SLEEP	*/
+	u8 thread_idle_state;  
I am planning to use this in POWER9 DD1 to distinguish between a
SRESET received when the thread was running vs when it was in stop.
Unfortunately the SRR1[46:47] are not cleared in the former case. So
we need a way in software to distinguish between the two.
Okay, we can skip this for now. It was not a critical part of my
patches, just a tidy up.

Thanks,
Nick
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help