-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tracing: add lockdep tracepoints for lock acquire/release
Augment the traces with lock names when lockdep is available: 1) | down_read_trylock() { 1) | _spin_lock_irqsave() { 1) | /* lock_acquire: &sem->wait_lock */ 1) 4.201 us | } 1) | _spin_unlock_irqrestore() { 1) | /* lock_release: &sem->wait_lock */ 1) 3.523 us | } 1) | /* lock_acquire: try read &mm->mmap_sem */ 1) + 13.386 us | } 1) 1.635 us | find_vma(); 1) | handle_mm_fault() { 1) | __do_fault() { 1) | filemap_fault() { 1) | find_lock_page() { 1) | find_get_page() { 1) | /* lock_acquire: read rcu_read_lock */ 1) | /* lock_release: rcu_read_lock */ 1) 5.697 us | } 1) 8.158 us | } 1) + 11.079 us | } 1) | _spin_lock() { 1) | /* lock_acquire: __pte_lockptr(page) */ 1) 3.949 us | } 1) 1.460 us | page_add_file_rmap(); 1) | _spin_unlock() { 1) | /* lock_release: __pte_lockptr(page) */ 1) 3.115 us | } 1) | unlock_page() { 1) 1.421 us | page_waitqueue(); 1) 1.220 us | __wake_up_bit(); 1) 6.519 us | } 1) + 34.328 us | } 1) + 37.452 us | } 1) | up_read() { 1) | /* lock_release: &mm->mmap_sem */ 1) | _spin_lock_irqsave() { 1) | /* lock_acquire: &sem->wait_lock */ 1) 3.865 us | } 1) | _spin_unlock_irqrestore() { 1) | /* lock_release: &sem->wait_lock */ 1) 8.562 us | } 1) + 17.370 us | } Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: =?ISO-8859-1?Q?T=F6r=F6k?= Edwin <edwintorok@gmail.com> Cc: Jason Baron <jbaron@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> LKML-Reference: <1236166375.5330.7209.camel@laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
- Loading branch information
Peter Zijlstra
authored and
Ingo Molnar
committed
Mar 4, 2009
1 parent
28b1bd1
commit efed792
Showing
7 changed files
with
82 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#ifndef _TRACE_LOCKDEP_H | ||
#define _TRACE_LOCKDEP_H | ||
|
||
#include <linux/lockdep.h> | ||
#include <linux/tracepoint.h> | ||
|
||
#include <trace/lockdep_event_types.h> | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
|
||
#ifndef TRACE_EVENT_FORMAT | ||
# error Do not include this file directly. | ||
# error Unless you know what you are doing. | ||
#endif | ||
|
||
#undef TRACE_SYSTEM | ||
#define TRACE_SYSTEM lock | ||
|
||
#ifdef CONFIG_LOCKDEP | ||
|
||
TRACE_FORMAT(lock_acquire, | ||
TPPROTO(struct lockdep_map *lock, unsigned int subclass, | ||
int trylock, int read, int check, | ||
struct lockdep_map *next_lock, unsigned long ip), | ||
TPARGS(lock, subclass, trylock, read, check, next_lock, ip), | ||
TPFMT("%s%s%s", trylock ? "try " : "", | ||
read ? "read " : "", lock->name) | ||
); | ||
|
||
TRACE_FORMAT(lock_release, | ||
TPPROTO(struct lockdep_map *lock, int nested, unsigned long ip), | ||
TPARGS(lock, nested, ip), | ||
TPFMT("%s", lock->name) | ||
); | ||
|
||
#ifdef CONFIG_LOCK_STAT | ||
|
||
TRACE_FORMAT(lock_contended, | ||
TPPROTO(struct lockdep_map *lock, unsigned long ip), | ||
TPARGS(lock, ip), | ||
TPFMT("%s", lock->name) | ||
); | ||
|
||
TRACE_FORMAT(lock_acquired, | ||
TPPROTO(struct lockdep_map *lock, unsigned long ip), | ||
TPARGS(lock, ip), | ||
TPFMT("%s", lock->name) | ||
); | ||
|
||
#endif | ||
#endif | ||
|
||
#undef TRACE_SYSTEM |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,3 +2,4 @@ | |
|
||
#include <trace/sched_event_types.h> | ||
#include <trace/irq_event_types.h> | ||
#include <trace/lockdep_event_types.h> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,3 +2,4 @@ | |
|
||
#include <trace/sched.h> | ||
#include <trace/irq.h> | ||
#include <trace/lockdep.h> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters