[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c384c5ea0908190416r4e0b5508x4765381888516484@mail.gmail.com>
Date: Wed, 19 Aug 2009 13:16:48 +0200
From: Leon Woestenberg <leon.woestenberg@...il.com>
To: Alan Cox <alan@...rguk.ukuu.org.uk>
Cc: David Howells <dhowells@...hat.com>,
Thomas Gleixner <tglx@...utronix.de>,
Kumar Gala <galak@...nel.crashing.org>,
Peter Zijlstra <peterz@...radead.org>,
Linux-Kernel List <linux-kernel@...r.kernel.org>,
Steven Rostedt <rostedt@...dmis.org>,
linuxppc-dev list <linuxppc-dev@...abs.org>,
Ingo Molnar <mingo@...e.hu>
Subject: Re: spin_is_locked() broken for uniprocessor?
Hello,
On Wed, Aug 19, 2009 at 12:53 PM, Alan Cox<alan@...rguk.ukuu.org.uk> wrote:
> On Wed, 19 Aug 2009 10:38:06 +0100
>
> in drivers because there is driver code that uses spin_is_locked() in
> fairly sensible fashion when dealing with locking.
>
One use is to measure lock contention hits on a particular spin lock.
However I wonder if there are tracing capabilities to measure lock
contention on a particular lock?
Currently I have inserted code much like this to get a feeling on the
contention:
this_cpu = get_cpu();
put_cpu();
contention = spin_is_locked(&lock);
spin_lock*(&lock);
if (contention) {
/* spin lock was contended, prev_cpu, this_cpu */
/* no hard guarantee, as we had a possible race inbetween
is_locked() and lock(), but works for driver/irq spin lock */
}
/* critical section */
prev_cpu = this_cpu;
spin_unlock*(&lock);
Regards,
--
Leon
--
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