diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-15 12:02:01 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-15 12:02:01 -0500 |
commit | 8f0ddf91f2aeb09602373e400cf8b403e9017210 (patch) | |
tree | b907c35c79caadafff6ad46a91614e30afd2f967 /kernel/trace/trace.c | |
parent | 050cbb09dac0402672edeaeac06094ef8ff1749a (diff) | |
parent | b5f91da0a6973bb6f9ff3b91b0e92c0773a458f3 (diff) |
Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (26 commits)
clockevents: Convert to raw_spinlock
clockevents: Make tick_device_lock static
debugobjects: Convert to raw_spinlocks
perf_event: Convert to raw_spinlock
hrtimers: Convert to raw_spinlocks
genirq: Convert irq_desc.lock to raw_spinlock
smp: Convert smplocks to raw_spinlocks
rtmutes: Convert rtmutex.lock to raw_spinlock
sched: Convert pi_lock to raw_spinlock
sched: Convert cpupri lock to raw_spinlock
sched: Convert rt_runtime_lock to raw_spinlock
sched: Convert rq->lock to raw_spinlock
plist: Make plist debugging raw_spinlock aware
bkl: Fixup core_lock fallout
locking: Cleanup the name space completely
locking: Further name space cleanups
alpha: Fix fallout from locking changes
locking: Implement new raw_spinlock
locking: Convert raw_rwlock functions to arch_rwlock
locking: Convert raw_rwlock to arch_rwlock
...
Diffstat (limited to 'kernel/trace/trace.c')
-rw-r--r-- | kernel/trace/trace.c | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index c82dfd92fdfd..bb6b5e7fa2a2 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -493,15 +493,15 @@ static ssize_t trace_seq_to_buffer(struct trace_seq *s, void *buf, size_t cnt) | |||
493 | * protected by per_cpu spinlocks. But the action of the swap | 493 | * protected by per_cpu spinlocks. But the action of the swap |
494 | * needs its own lock. | 494 | * needs its own lock. |
495 | * | 495 | * |
496 | * This is defined as a raw_spinlock_t in order to help | 496 | * This is defined as a arch_spinlock_t in order to help |
497 | * with performance when lockdep debugging is enabled. | 497 | * with performance when lockdep debugging is enabled. |
498 | * | 498 | * |
499 | * It is also used in other places outside the update_max_tr | 499 | * It is also used in other places outside the update_max_tr |
500 | * so it needs to be defined outside of the | 500 | * so it needs to be defined outside of the |
501 | * CONFIG_TRACER_MAX_TRACE. | 501 | * CONFIG_TRACER_MAX_TRACE. |
502 | */ | 502 | */ |
503 | static raw_spinlock_t ftrace_max_lock = | 503 | static arch_spinlock_t ftrace_max_lock = |
504 | (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED; | 504 | (arch_spinlock_t)__ARCH_SPIN_LOCK_UNLOCKED; |
505 | 505 | ||
506 | #ifdef CONFIG_TRACER_MAX_TRACE | 506 | #ifdef CONFIG_TRACER_MAX_TRACE |
507 | unsigned long __read_mostly tracing_max_latency; | 507 | unsigned long __read_mostly tracing_max_latency; |
@@ -555,13 +555,13 @@ update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) | |||
555 | return; | 555 | return; |
556 | 556 | ||
557 | WARN_ON_ONCE(!irqs_disabled()); | 557 | WARN_ON_ONCE(!irqs_disabled()); |
558 | __raw_spin_lock(&ftrace_max_lock); | 558 | arch_spin_lock(&ftrace_max_lock); |
559 | 559 | ||
560 | tr->buffer = max_tr.buffer; | 560 | tr->buffer = max_tr.buffer; |
561 | max_tr.buffer = buf; | 561 | max_tr.buffer = buf; |
562 | 562 | ||
563 | __update_max_tr(tr, tsk, cpu); | 563 | __update_max_tr(tr, tsk, cpu); |
564 | __raw_spin_unlock(&ftrace_max_lock); | 564 | arch_spin_unlock(&ftrace_max_lock); |
565 | } | 565 | } |
566 | 566 | ||
567 | /** | 567 | /** |
@@ -581,7 +581,7 @@ update_max_tr_single(struct trace_array *tr, struct task_struct *tsk, int cpu) | |||
581 | return; | 581 | return; |
582 | 582 | ||
583 | WARN_ON_ONCE(!irqs_disabled()); | 583 | WARN_ON_ONCE(!irqs_disabled()); |
584 | __raw_spin_lock(&ftrace_max_lock); | 584 | arch_spin_lock(&ftrace_max_lock); |
585 | 585 | ||
586 | ftrace_disable_cpu(); | 586 | ftrace_disable_cpu(); |
587 | 587 | ||
@@ -603,7 +603,7 @@ update_max_tr_single(struct trace_array *tr, struct task_struct *tsk, int cpu) | |||
603 | WARN_ON_ONCE(ret && ret != -EAGAIN && ret != -EBUSY); | 603 | WARN_ON_ONCE(ret && ret != -EAGAIN && ret != -EBUSY); |
604 | 604 | ||
605 | __update_max_tr(tr, tsk, cpu); | 605 | __update_max_tr(tr, tsk, cpu); |
606 | __raw_spin_unlock(&ftrace_max_lock); | 606 | arch_spin_unlock(&ftrace_max_lock); |
607 | } | 607 | } |
608 | #endif /* CONFIG_TRACER_MAX_TRACE */ | 608 | #endif /* CONFIG_TRACER_MAX_TRACE */ |
609 | 609 | ||
@@ -802,7 +802,7 @@ static unsigned map_pid_to_cmdline[PID_MAX_DEFAULT+1]; | |||
802 | static unsigned map_cmdline_to_pid[SAVED_CMDLINES]; | 802 | static unsigned map_cmdline_to_pid[SAVED_CMDLINES]; |
803 | static char saved_cmdlines[SAVED_CMDLINES][TASK_COMM_LEN]; | 803 | static char saved_cmdlines[SAVED_CMDLINES][TASK_COMM_LEN]; |
804 | static int cmdline_idx; | 804 | static int cmdline_idx; |
805 | static raw_spinlock_t trace_cmdline_lock = __RAW_SPIN_LOCK_UNLOCKED; | 805 | static arch_spinlock_t trace_cmdline_lock = __ARCH_SPIN_LOCK_UNLOCKED; |
806 | 806 | ||
807 | /* temporary disable recording */ | 807 | /* temporary disable recording */ |
808 | static atomic_t trace_record_cmdline_disabled __read_mostly; | 808 | static atomic_t trace_record_cmdline_disabled __read_mostly; |
@@ -915,7 +915,7 @@ static void trace_save_cmdline(struct task_struct *tsk) | |||
915 | * nor do we want to disable interrupts, | 915 | * nor do we want to disable interrupts, |
916 | * so if we miss here, then better luck next time. | 916 | * so if we miss here, then better luck next time. |
917 | */ | 917 | */ |
918 | if (!__raw_spin_trylock(&trace_cmdline_lock)) | 918 | if (!arch_spin_trylock(&trace_cmdline_lock)) |
919 | return; | 919 | return; |
920 | 920 | ||
921 | idx = map_pid_to_cmdline[tsk->pid]; | 921 | idx = map_pid_to_cmdline[tsk->pid]; |
@@ -940,7 +940,7 @@ static void trace_save_cmdline(struct task_struct *tsk) | |||
940 | 940 | ||
941 | memcpy(&saved_cmdlines[idx], tsk->comm, TASK_COMM_LEN); | 941 | memcpy(&saved_cmdlines[idx], tsk->comm, TASK_COMM_LEN); |
942 | 942 | ||
943 | __raw_spin_unlock(&trace_cmdline_lock); | 943 | arch_spin_unlock(&trace_cmdline_lock); |
944 | } | 944 | } |
945 | 945 | ||
946 | void trace_find_cmdline(int pid, char comm[]) | 946 | void trace_find_cmdline(int pid, char comm[]) |
@@ -958,14 +958,14 @@ void trace_find_cmdline(int pid, char comm[]) | |||
958 | } | 958 | } |
959 | 959 | ||
960 | preempt_disable(); | 960 | preempt_disable(); |
961 | __raw_spin_lock(&trace_cmdline_lock); | 961 | arch_spin_lock(&trace_cmdline_lock); |
962 | map = map_pid_to_cmdline[pid]; | 962 | map = map_pid_to_cmdline[pid]; |
963 | if (map != NO_CMDLINE_MAP) | 963 | if (map != NO_CMDLINE_MAP) |
964 | strcpy(comm, saved_cmdlines[map]); | 964 | strcpy(comm, saved_cmdlines[map]); |
965 | else | 965 | else |
966 | strcpy(comm, "<...>"); | 966 | strcpy(comm, "<...>"); |
967 | 967 | ||
968 | __raw_spin_unlock(&trace_cmdline_lock); | 968 | arch_spin_unlock(&trace_cmdline_lock); |
969 | preempt_enable(); | 969 | preempt_enable(); |
970 | } | 970 | } |
971 | 971 | ||
@@ -1251,8 +1251,8 @@ ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3) | |||
1251 | */ | 1251 | */ |
1252 | int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) | 1252 | int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) |
1253 | { | 1253 | { |
1254 | static raw_spinlock_t trace_buf_lock = | 1254 | static arch_spinlock_t trace_buf_lock = |
1255 | (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED; | 1255 | (arch_spinlock_t)__ARCH_SPIN_LOCK_UNLOCKED; |
1256 | static u32 trace_buf[TRACE_BUF_SIZE]; | 1256 | static u32 trace_buf[TRACE_BUF_SIZE]; |
1257 | 1257 | ||
1258 | struct ftrace_event_call *call = &event_bprint; | 1258 | struct ftrace_event_call *call = &event_bprint; |
@@ -1283,7 +1283,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) | |||
1283 | 1283 | ||
1284 | /* Lockdep uses trace_printk for lock tracing */ | 1284 | /* Lockdep uses trace_printk for lock tracing */ |
1285 | local_irq_save(flags); | 1285 | local_irq_save(flags); |
1286 | __raw_spin_lock(&trace_buf_lock); | 1286 | arch_spin_lock(&trace_buf_lock); |
1287 | len = vbin_printf(trace_buf, TRACE_BUF_SIZE, fmt, args); | 1287 | len = vbin_printf(trace_buf, TRACE_BUF_SIZE, fmt, args); |
1288 | 1288 | ||
1289 | if (len > TRACE_BUF_SIZE || len < 0) | 1289 | if (len > TRACE_BUF_SIZE || len < 0) |
@@ -1304,7 +1304,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) | |||
1304 | ring_buffer_unlock_commit(buffer, event); | 1304 | ring_buffer_unlock_commit(buffer, event); |
1305 | 1305 | ||
1306 | out_unlock: | 1306 | out_unlock: |
1307 | __raw_spin_unlock(&trace_buf_lock); | 1307 | arch_spin_unlock(&trace_buf_lock); |
1308 | local_irq_restore(flags); | 1308 | local_irq_restore(flags); |
1309 | 1309 | ||
1310 | out: | 1310 | out: |
@@ -1334,7 +1334,7 @@ int trace_array_printk(struct trace_array *tr, | |||
1334 | int trace_array_vprintk(struct trace_array *tr, | 1334 | int trace_array_vprintk(struct trace_array *tr, |
1335 | unsigned long ip, const char *fmt, va_list args) | 1335 | unsigned long ip, const char *fmt, va_list args) |
1336 | { | 1336 | { |
1337 | static raw_spinlock_t trace_buf_lock = __RAW_SPIN_LOCK_UNLOCKED; | 1337 | static arch_spinlock_t trace_buf_lock = __ARCH_SPIN_LOCK_UNLOCKED; |
1338 | static char trace_buf[TRACE_BUF_SIZE]; | 1338 | static char trace_buf[TRACE_BUF_SIZE]; |
1339 | 1339 | ||
1340 | struct ftrace_event_call *call = &event_print; | 1340 | struct ftrace_event_call *call = &event_print; |
@@ -1360,7 +1360,7 @@ int trace_array_vprintk(struct trace_array *tr, | |||
1360 | 1360 | ||
1361 | pause_graph_tracing(); | 1361 | pause_graph_tracing(); |
1362 | raw_local_irq_save(irq_flags); | 1362 | raw_local_irq_save(irq_flags); |
1363 | __raw_spin_lock(&trace_buf_lock); | 1363 | arch_spin_lock(&trace_buf_lock); |
1364 | len = vsnprintf(trace_buf, TRACE_BUF_SIZE, fmt, args); | 1364 | len = vsnprintf(trace_buf, TRACE_BUF_SIZE, fmt, args); |
1365 | 1365 | ||
1366 | size = sizeof(*entry) + len + 1; | 1366 | size = sizeof(*entry) + len + 1; |
@@ -1378,7 +1378,7 @@ int trace_array_vprintk(struct trace_array *tr, | |||
1378 | ring_buffer_unlock_commit(buffer, event); | 1378 | ring_buffer_unlock_commit(buffer, event); |
1379 | 1379 | ||
1380 | out_unlock: | 1380 | out_unlock: |
1381 | __raw_spin_unlock(&trace_buf_lock); | 1381 | arch_spin_unlock(&trace_buf_lock); |
1382 | raw_local_irq_restore(irq_flags); | 1382 | raw_local_irq_restore(irq_flags); |
1383 | unpause_graph_tracing(); | 1383 | unpause_graph_tracing(); |
1384 | out: | 1384 | out: |
@@ -2279,7 +2279,7 @@ tracing_cpumask_write(struct file *filp, const char __user *ubuf, | |||
2279 | mutex_lock(&tracing_cpumask_update_lock); | 2279 | mutex_lock(&tracing_cpumask_update_lock); |
2280 | 2280 | ||
2281 | local_irq_disable(); | 2281 | local_irq_disable(); |
2282 | __raw_spin_lock(&ftrace_max_lock); | 2282 | arch_spin_lock(&ftrace_max_lock); |
2283 | for_each_tracing_cpu(cpu) { | 2283 | for_each_tracing_cpu(cpu) { |
2284 | /* | 2284 | /* |
2285 | * Increase/decrease the disabled counter if we are | 2285 | * Increase/decrease the disabled counter if we are |
@@ -2294,7 +2294,7 @@ tracing_cpumask_write(struct file *filp, const char __user *ubuf, | |||
2294 | atomic_dec(&global_trace.data[cpu]->disabled); | 2294 | atomic_dec(&global_trace.data[cpu]->disabled); |
2295 | } | 2295 | } |
2296 | } | 2296 | } |
2297 | __raw_spin_unlock(&ftrace_max_lock); | 2297 | arch_spin_unlock(&ftrace_max_lock); |
2298 | local_irq_enable(); | 2298 | local_irq_enable(); |
2299 | 2299 | ||
2300 | cpumask_copy(tracing_cpumask, tracing_cpumask_new); | 2300 | cpumask_copy(tracing_cpumask, tracing_cpumask_new); |
@@ -4307,8 +4307,8 @@ trace_printk_seq(struct trace_seq *s) | |||
4307 | 4307 | ||
4308 | static void __ftrace_dump(bool disable_tracing) | 4308 | static void __ftrace_dump(bool disable_tracing) |
4309 | { | 4309 | { |
4310 | static raw_spinlock_t ftrace_dump_lock = | 4310 | static arch_spinlock_t ftrace_dump_lock = |
4311 | (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED; | 4311 | (arch_spinlock_t)__ARCH_SPIN_LOCK_UNLOCKED; |
4312 | /* use static because iter can be a bit big for the stack */ | 4312 | /* use static because iter can be a bit big for the stack */ |
4313 | static struct trace_iterator iter; | 4313 | static struct trace_iterator iter; |
4314 | unsigned int old_userobj; | 4314 | unsigned int old_userobj; |
@@ -4318,7 +4318,7 @@ static void __ftrace_dump(bool disable_tracing) | |||
4318 | 4318 | ||
4319 | /* only one dump */ | 4319 | /* only one dump */ |
4320 | local_irq_save(flags); | 4320 | local_irq_save(flags); |
4321 | __raw_spin_lock(&ftrace_dump_lock); | 4321 | arch_spin_lock(&ftrace_dump_lock); |
4322 | if (dump_ran) | 4322 | if (dump_ran) |
4323 | goto out; | 4323 | goto out; |
4324 | 4324 | ||
@@ -4393,7 +4393,7 @@ static void __ftrace_dump(bool disable_tracing) | |||
4393 | } | 4393 | } |
4394 | 4394 | ||
4395 | out: | 4395 | out: |
4396 | __raw_spin_unlock(&ftrace_dump_lock); | 4396 | arch_spin_unlock(&ftrace_dump_lock); |
4397 | local_irq_restore(flags); | 4397 | local_irq_restore(flags); |
4398 | } | 4398 | } |
4399 | 4399 | ||