[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080908073732.GC5798@linux.vnet.ibm.com>
Date: Mon, 8 Sep 2008 13:07:32 +0530
From: Chirag Jog <chirag@...ux.vnet.ibm.com>
To: xavier droubay <xavier.droubay@...il.com>
Cc: linux-rt-users@...r.kernel.org,
LKML <linux-kernel@...r.kernel.org>,
Steven Rostedt <rostedt@...dmis.org>,
Thomas Gleixner <tglx@...utronix.de>
Subject: [PATCH] Convert tlbstate_lock spin_lock to raw_spin_lock
* xavier droubay <xavier.droubay@...il.com> [2008-09-08 03:06:51]:
> Hello,
>
> I experienced this "rtmutex.c:743" known bug with rt3 patch, using
>
> http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.3.tar.bz2
> http://rt.et.redhat.com/download/patch-2.6.26.3-rt3.bz2
>
> I compiled this kernel with the "make-kpkg" debian utility.
>
> I first compiled this kernel with NO SMP, NO HIGHMEM, and partial ACPI
> (without fan, processor, ... modules). Attached file
> "config-2.6.26.3-rt3lowlty.frwr.gz".
> I didn't experience any problem with this kernel.
>
> I then enabled SMP and HIGHMEM, and experienced "rtmutex.c:743" BUG.
> Attached files
> "config-2.6.26.3-rt3rt-smp-hm.gz" and "dmesg.gz" for some BUGGY message.
>
>
> I have seen somewhere on the archive, that some people still
> experienced problems with SMP.
> I guess no fix has been done from rt3 to rt7 patch. Can you confirm?
>
> If so, which recent kernel should I use in order to get smp and rt
> running without problems?
>
This simple patch should solve the above problem. Seeing the config, its
seems to be a 32bit box.
It convert tlbstate_lock spin_lock to raw_spin_lock.
Preemption has already been disabled, hence this change shouldn't
affect latency numbers.
Signed-Off-By: Chirag <chirag@...ux.vnet.ibm.com>
diff --git a/arch/x86/kernel/tlb_32.c b/arch/x86/kernel/tlb_32.c
index 9bb2363..228849c 100644
--- a/arch/x86/kernel/tlb_32.c
+++ b/arch/x86/kernel/tlb_32.c
@@ -23,7 +23,7 @@ DEFINE_PER_CPU(struct tlb_state, cpu_tlbstate)
static cpumask_t flush_cpumask;
static struct mm_struct *flush_mm;
static unsigned long flush_va;
-static DEFINE_SPINLOCK(tlbstate_lock);
+static DEFINE_RAW_SPINLOCK(tlbstate_lock);
/*
* We cannot call mmdrop() because we are in interrupt context,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists