Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 11 Sep 2009 20:24:03 +0000 (13:24 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 11 Sep 2009 20:24:03 +0000 (13:24 -0700)
* 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (105 commits)
  ring-buffer: only enable ring_buffer_swap_cpu when needed
  ring-buffer: check for swapped buffers in start of committing
  tracing: report error in trace if we fail to swap latency buffer
  tracing: add trace_array_printk for internal tracers to use
  tracing: pass around ring buffer instead of tracer
  tracing: make tracing_reset safe for external use
  tracing: use timestamp to determine start of latency traces
  tracing: Remove mentioning of legacy latency_trace file from documentation
  tracing/filters: Defer pred allocation, fix memory leak
  tracing: remove users of tracing_reset
  tracing: disable buffers and synchronize_sched before resetting
  tracing: disable update max tracer while reading trace
  tracing: print out start and stop in latency traces
  ring-buffer: disable all cpu buffers when one finds a problem
  ring-buffer: do not count discarded events
  ring-buffer: remove ring_buffer_event_discard
  ring-buffer: fix ring_buffer_read crossing pages
  ring-buffer: remove unnecessary cpu_relax
  ring-buffer: do not swap buffers during a commit
  ring-buffer: do not reset while in a commit
  ...

1  2 
arch/s390/Kconfig
arch/s390/kernel/entry.S
arch/s390/kernel/entry64.S
arch/x86/Kconfig
include/linux/perf_counter.h
include/trace/events/sched.h
kernel/kmod.c
tools/perf/util/parse-events.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/kmod.c
Simple merge
@@@ -637,23 -607,16 +637,23 @@@ static void print_tracepoint_events(voi
        sys_dir = opendir(debugfs_path);
        if (!sys_dir)
                goto cleanup;
 -
 -      for_each_subsystem(sys_dir, sys_dirent, sys_next, evt_path, st) {
 -              evt_dir = opendir(evt_path);
 -              if (!evt_dir)
 -                      goto cleanup;
 -              for_each_event(sys_dirent, evt_dir, evt_dirent, evt_next,
 -                                                              evt_path, st) {
 +      sys_dir_fd = dirfd(sys_dir);
 +
 +      for_each_subsystem(sys_dir, sys_dirent, sys_next) {
 +              int dfd = openat(sys_dir_fd, sys_dirent.d_name,
 +                               O_RDONLY|O_DIRECTORY), evt_dir_fd;
 +              if (dfd == -1)
 +                      continue;
 +              evt_dir = fdopendir(dfd);
 +              if (!evt_dir) {
 +                      close(dfd);
 +                      continue;
 +              }
 +              evt_dir_fd = dirfd(evt_dir);
 +              for_each_event(sys_dirent, evt_dir, evt_dirent, evt_next) {
                        snprintf(evt_path, MAXPATHLEN, "%s:%s",
                                 sys_dirent.d_name, evt_dirent.d_name);
-                       fprintf(stderr, "  %-40s [%s]\n", evt_path,
+                       fprintf(stderr, "  %-42s [%s]\n", evt_path,
                                event_type_descriptors[PERF_TYPE_TRACEPOINT+1]);
                }
                closedir(evt_dir);