From ae34637c5a417865b08392b5ad31fd0b5663c0c3 Mon Sep 17 00:00:00 2001 From: Jake Moilanen Date: Tue, 25 Jul 2006 15:11:47 -0500 Subject: [PATCH] --- yaml --- r: 33001 b: refs/heads/master c: 9b9b72fe703bd5b89533815eb7eb682cdaf60a6e h: refs/heads/master i: 32999: 2973a2924c1009f469cfbc9495fe4c34a06a06dc v: v3 --- [refs] | 2 +- trunk/arch/powerpc/platforms/pseries/setup.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index c7a88402bacb..51e98e623e18 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9fc0a92c7ebcad96467d62077497ce195d9b741c +refs/heads/master: 9b9b72fe703bd5b89533815eb7eb682cdaf60a6e diff --git a/trunk/arch/powerpc/platforms/pseries/setup.c b/trunk/arch/powerpc/platforms/pseries/setup.c index 54a52437265c..71c634e0b87c 100644 --- a/trunk/arch/powerpc/platforms/pseries/setup.c +++ b/trunk/arch/powerpc/platforms/pseries/setup.c @@ -501,7 +501,8 @@ static void pseries_dedicated_idle_sleep(void) } /* - * Cede if the other thread is not idle, so that it can + * If not SMT, cede processor. If CPU is running SMT + * cede if the other thread is not idle, so that it can * go single-threaded. If the other thread is idle, * we ask the hypervisor if it has pending work it * wants to do and cede if it does. Otherwise we keep @@ -514,7 +515,8 @@ static void pseries_dedicated_idle_sleep(void) * very low priority. The cede enables interrupts, which * doesn't matter here. */ - if (!lppaca[cpu ^ 1].idle || poll_pending() == H_PENDING) + if (!cpu_has_feature(CPU_FTR_SMT) || !lppaca[cpu ^ 1].idle + || poll_pending() == H_PENDING) cede_processor(); out: