]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branch 'tracing/urgent' into tracing/ftrace
authorIngo Molnar <mingo@elte.hu>
Tue, 11 Nov 2008 08:40:18 +0000 (09:40 +0100)
committerIngo Molnar <mingo@elte.hu>
Tue, 11 Nov 2008 08:40:18 +0000 (09:40 +0100)
Conflicts:
kernel/trace/trace.c

1  2 
Documentation/kernel-parameters.txt
arch/x86/Kconfig
kernel/trace/ring_buffer.c
kernel/trace/trace.c

Simple merge
Simple merge
Simple merge
index f147f198b9a690ab634db0b39486fe492004c568,697eda36b86a54e902a2289d2adf767ca1278460..0c22fe2d43a75f50d3d22b90f6f2014451a228d0
@@@ -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;
  
        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) {
        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);