From: Ingo Molnar Date: Tue, 11 Nov 2008 08:40:18 +0000 (+0100) Subject: Merge branch 'tracing/urgent' into tracing/ftrace X-Git-Tag: v2.6.29-rc1~586^2~80 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=e0cb4ebcd9e5b4ddd8216c20f54445c91b1fa4b9;p=~shefty%2Frdma-dev.git Merge branch 'tracing/urgent' into tracing/ftrace Conflicts: kernel/trace/trace.c --- e0cb4ebcd9e5b4ddd8216c20f54445c91b1fa4b9 diff --cc kernel/trace/trace.c index f147f198b9a,697eda36b86..0c22fe2d43a --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@@ -2835,7 -2676,8 +2835,7 @@@ tracing_entries_write(struct file *filp { unsigned long val; char buf[64]; - int ret; + int ret, cpu; - struct trace_array *tr = filp->private_data; if (cnt >= sizeof(buf)) return -EINVAL; @@@ -2855,8 -2697,21 +2855,16 @@@ mutex_lock(&trace_types_lock); - if (tr->ctrl) { - cnt = -EBUSY; - pr_info("ftrace: please disable tracing" - " before modifying buffer size\n"); - goto out; - } + tracing_stop(); + /* disable all cpu buffers */ + for_each_tracing_cpu(cpu) { + if (global_trace.data[cpu]) + atomic_inc(&global_trace.data[cpu]->disabled); + if (max_tr.data[cpu]) + atomic_inc(&max_tr.data[cpu]->disabled); + } + if (val != global_trace.entries) { ret = ring_buffer_resize(global_trace.buffer, val); if (ret < 0) { @@@ -2888,7 -2743,13 +2896,14 @@@ if (tracing_disabled) cnt = -ENOMEM; out: + for_each_tracing_cpu(cpu) { + if (global_trace.data[cpu]) + atomic_dec(&global_trace.data[cpu]->disabled); + if (max_tr.data[cpu]) + atomic_dec(&max_tr.data[cpu]->disabled); + } + + tracing_start(); max_tr.entries = global_trace.entries; mutex_unlock(&trace_types_lock);