Re: mtrr failure, 3.1-rc1

From: Tejun Heo
Date: Thu Aug 25 2011 - 12:47:09 EST


Hello,

On Thu, Aug 25, 2011 at 08:55:12AM -0700, Linus Torvalds wrote:
> Hmm. Some of those commits are marked for stable too.
>
> I'm adding appropriate parties to the discussion (authors and
> sign-offs from the five commits that that merge brings in), but it
> would also be great if you could bisect exactly which commit broke for
> you. You can make it quick by just doing
>
> git bisect start
> git bisect bad dc43d9fa73d82083656fb9c02f4823bcdcfb9f91
> git bisect good dc43d9fa73d82083656fb9c02f4823bcdcfb9f91^
>
> and it should take just a couple of tests. I *assume* it's the
> stop_machine changes by Tejun &co, but who knows..
>
> Anders, is this a single-CPU system?

Indeed, while removing custom rendezvous code and switching to
stop_machine, commit 192d8857427d "x86, mtrr: use stop_machine APIs
for doing MTRR rendezvous" completely dropped mtrr setting code on
!CONFIG_SMP.

Anders, if your kernel didn't have SMP turned on, can you please
verify the following patch fixes the problem?

Thanks.

diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
index 08119a3..6b96110 100644
--- a/arch/x86/kernel/cpu/mtrr/main.c
+++ b/arch/x86/kernel/cpu/mtrr/main.c
@@ -149,7 +149,6 @@ struct set_mtrr_data {
*/
static int mtrr_rendezvous_handler(void *info)
{
-#ifdef CONFIG_SMP
struct set_mtrr_data *data = info;

/*
@@ -171,7 +170,6 @@ static int mtrr_rendezvous_handler(void *info)
} else if (mtrr_aps_delayed_init || !cpu_online(smp_processor_id())) {
mtrr_if->set_all();
}
-#endif
return 0;
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/