1. 27 Nov, 2009 15 commits
  2. 26 Nov, 2009 21 commits
    • Stephane Eranian's avatar
      perf_events: Fix read() bogus counts when in error state · b2e74a26
      Stephane Eranian authored
      When a pinned group cannot be scheduled it goes into error state.
      
      Normally a group cannot go out of error state without being
      explicitly re-enabled or disabled. There was a bug in per-thread
      mode, whereby upon termination of the thread, the group would
      transition from error to off leading to bogus counts and timing
      information returned by read().
      
      Fix it by clearing the error state.
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: perfmon2-devel@lists.sourceforge.net
      LKML-Reference: <4b0eb9ce.0508d00a.573b.ffffeab6@mx.google.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      b2e74a26
    • Ingo Molnar's avatar
      tracing: Fix kmem event exports · 4d795fb1
      Ingo Molnar authored
      Commit 53d0422c ("tracing: Convert some kmem events to DEFINE_EVENT")
      moved the kmem tracepoint creation from util.c to page_alloc.c,
      but forgot to move the exports.
      
      Move them back.
      
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      LKML-Reference: <4B0E286A.2000405@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      4d795fb1
    • Masami Hiramatsu's avatar
      tracepoint: Add signal loss events · ba005e1f
      Masami Hiramatsu authored
      Add signal_overflow_fail and signal_lose_info tracepoints
      for signal-lost events.
      
      Changes in v3:
       - Add docbook style comments
      
      Changes in v2:
       - Use siginfo string macro
      Suggested-by: default avatarRoland McGrath <roland@redhat.com>
      Reviewed-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      Cc: systemtap <systemtap@sources.redhat.com>
      Cc: DLE <dle-develop@lists.sourceforge.net>
      Cc: Oleg Nesterov <oleg@redhat.com>
      LKML-Reference: <20091124215658.30449.9934.stgit@dhcp-100-2-132.bos.redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      ba005e1f
    • Masami Hiramatsu's avatar
      tracepoint: Add signal deliver event · f9d4257e
      Masami Hiramatsu authored
      Add a tracepoint where a process gets a signal. This tracepoint
      shows signal-number, sa-handler and sa-flag.
      
      Changes in v3:
       - Add docbook style comments
      
      Changes in v2:
       - Add siginfo argument
       - Fix comment
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@redhat.com>
      Reviewed-by: default avatarJason Baron <jbaron@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      Cc: systemtap <systemtap@sources.redhat.com>
      Cc: DLE <dle-develop@lists.sourceforge.net>
      Cc: Oleg Nesterov <oleg@redhat.com>
      LKML-Reference: <20091124215651.30449.20926.stgit@dhcp-100-2-132.bos.redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      f9d4257e
    • Masami Hiramatsu's avatar
      tracepoint: Move signal sending tracepoint to events/signal.h · d1eb650f
      Masami Hiramatsu authored
      Move signal sending event to events/signal.h. This patch also
      renames sched_signal_send event to signal_generate.
      
      Changes in v4:
       - Fix a typo of task_struct pointer.
      
      Changes in v3:
       - Add docbook style comments
      
      Changes in v2:
       - Add siginfo argument
       - Add siginfo storing macro
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@redhat.com>
      Reviewed-by: default avatarJason Baron <jbaron@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      Cc: systemtap <systemtap@sources.redhat.com>
      Cc: DLE <dle-develop@lists.sourceforge.net>
      Cc: Oleg Nesterov <oleg@redhat.com>
      LKML-Reference: <20091124215645.30449.60208.stgit@dhcp-100-2-132.bos.redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d1eb650f
    • Frederic Weisbecker's avatar
      hw-breakpoints: Fix unused function in off-case · 80bbf6b6
      Frederic Weisbecker authored
      bp_perf_event_destroy() is unused in its off-case version, let's
      remove it to fix the following warning reported by Stephen
      Rothwell in linux-next:
      
        kernel/perf_event.c:4306: warning: 'bp_perf_event_destroy' defined but not used
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <1259180453-5813-1-git-send-email-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      80bbf6b6
    • Andrew Morton's avatar
      kernel/hw_breakpoint.c: Fix local/global shadowing · 11e66357
      Andrew Morton authored
      If the new percpu tree is combined with the perf events tree
      the following new warning triggers:
      
       kernel/hw_breakpoint.c: In function 'toggle_bp_task_slot':
       kernel/hw_breakpoint.c:151: warning: 'task_bp_pinned' is used uninitialized in this function
      
      Because it's not valid anymore to define a local variable
      and a percpu variable (even if it's file scope local) with
      the same name.
      
      Rename the local variable to resolve this.
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: K.Prasad <prasad@linux.vnet.ibm.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <200911260701.nAQ71owx016356@imap1.linux-foundation.org>
      [ v2: added changelog ]
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      11e66357
    • Frederic Weisbecker's avatar
      x86/hw-breakpoints: Don't lose GE flag while disabling a breakpoint · 2c31b795
      Frederic Weisbecker authored
      When we schedule out a breakpoint from the cpu, we also
      incidentally remove the "Global exact breakpoint" flag from the
      breakpoint control register. It makes us losing the fine grained
      precision about the origin of the instructions that may trigger
      breakpoint exceptions for the other breakpoints running in this
      cpu.
      Reported-by: default avatarPrasad <prasad@linux.vnet.ibm.com>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1259211878-6013-1-git-send-regression-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2c31b795
    • Frederic Weisbecker's avatar
      hw-breakpoints: Simplify error handling in breakpoint creation requests · 605bfaee
      Frederic Weisbecker authored
      This simplifies the error handling when we create a breakpoint.
      We don't need to check the NULL return value corner case anymore
      since we have improved perf_event_create_kernel_counter() to
      always return an error code in the failure case.
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Prasad <prasad@linux.vnet.ibm.com>
      LKML-Reference: <1259210142-5714-3-git-send-regression-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      605bfaee
    • Frederic Weisbecker's avatar
      hw-breakpoints: Improve in-kernel event creation error granularity · c6567f64
      Frederic Weisbecker authored
      In fail case, perf_event_create_kernel_counter() returns NULL
      instead of an error, which doesn't help us to inform the user
      about the origin of the problem from the outer most callers.
      Often we can just return -EINVAL, which doesn't help anyone when
      it's eventually about a memory allocation failure.
      
      Then, this patch makes perf_event_create_kernel_counter() always
      return a detailed error code.
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Prasad <prasad@linux.vnet.ibm.com>
      LKML-Reference: <1259210142-5714-2-git-send-regression-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      c6567f64
    • Frederic Weisbecker's avatar
      ksym_tracer: Fix breakpoint removal after modification · d99be40a
      Frederic Weisbecker authored
      The error path of a breakpoint modification is broken in
      the ksym tracer. A modified breakpoint hlist node is immediately
      released after its removal. Also we leak a breakpoint in this
      case.
      
      Fix the path.
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Prasad <prasad@linux.vnet.ibm.com>
      LKML-Reference: <1259210142-5714-1-git-send-regression-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d99be40a
    • Li Zefan's avatar
      tracing: Restore original format of sched events · 470dda74
      Li Zefan authored
      The original format for sched_stat_iowait and sched_stat_sleep:
      
        $ cat events/sched/sched_stat_iowait/format
        ...
        print fmt: "comm=%s pid=%d delay=%Lu [ns]", ...
        $ cat events/sched/sched_stat_sleep/format
        ...
        print fmt: "comm=%s pid=%d delay=%Lu [ns]", ...
      
      But commit commit 75ec29ab
      ("tracing: Convert some sched trace events to DEFINE_EVENT and
      _PRINT") broke the format:
      
        $ cat events/sched/sched_stat_iowait/format
        print fmt: "task: %s:%d iowait: %Lu [ns]", ...
        $ cat events/sched/sched_stat_sleep/format
        print fmt: "task: %s:%d sleep: %Lu [ns]", ...
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4B0E2951.9050800@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      470dda74
    • Li Zefan's avatar
      tracing: Convert some ext4 events to DEFINE_TRACE · b5eb34c3
      Li Zefan authored
      Use DECLARE_EVENT_CLASS to remove duplicate code:
      
         text    data     bss     dec     hex filename
       294695    6104     340  301139   49853 fs/ext4/ext4.o.old
       289983    6104     324  296411   485db fs/ext4/ext4.o
      
      5 events are convertd:
      
        ext4__write_begin: ext4_write_begin, ext4_da_write_begin
        ext4__write_end: ext4_{ordered, writeback, journalled}_write_end
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4B0E2938.2040708@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      b5eb34c3
    • Li Zefan's avatar
      tracing: Convert some jbd2 events to DEFINE_EVENT · 071688f3
      Li Zefan authored
      Use DECLARE_EVENT_CLASS to remove duplicate code:
      
         text    data     bss     dec     hex filename
        34903    1693     448   37044    90b4 fs/jbd2/journal.o.old
        31931    1693     416   34040    84f8 fs/jbd2/journal.o
      
      Four events are converted:
      
        jbd2_commit: jbd2_start_commit,
                     jbd2_commit_{locking, flushing, logging}
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4B0E290F.7030909@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      071688f3
    • Li Zefan's avatar
      tracing: Convert some block events to DEFINE_EVENT · 77ca1e02
      Li Zefan authored
      use DECLARE_EVENT_CLASS to remove duplicate code:
      
         text    data     bss     dec     hex filename
        53570    3284     184   57038    dece block/blk-core.o.old
        43702    3284     144   47130    b81a block/blk-core.o
      
      12 events are converted:
      
        block_rq: block_rq_insert, block_rq_issue
        block_rq_with_error: block_rq_{abort, requeue, complete}
        block_bio: block_bio_{backmerge, frontmerge, queue}
        block_get_rq: block_getrq, block_sleeprq
        block_unplug: block_unplug_timer, block_unplug_io
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4B0E28E6.7060609@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      77ca1e02
    • Li Zefan's avatar
      tracing: Convert some power events to DEFINE_EVENT · 7703466b
      Li Zefan authored
      Use DECLARE_EVENT_CLASS to remove duplicate code:
      
         text    data     bss     dec     hex filename
         4312     524      12    4848    12f0 kernel/trace/power-traces.o.old
         3455     524       8    3987     f93 kernel/trace/power-traces.o
      
      Two events are converted:
      
        power: power_start, power_frequency
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Arjan van de Ven <arjan@infradead.org>
      LKML-Reference: <4B0E28C2.1090906@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      7703466b
    • Li Zefan's avatar
      tracing: Convert some workqueue events to DEFINE_EVENT · 382ece71
      Li Zefan authored
      Use DECLARE_EVENT_CLASS to remove duplicate code:
      
         text    data     bss     dec     hex filename
        13171     800      72   14043    36db kernel/workqueue.o.old
        12243     800      68   13111    3337 kernel/workqueue.o
      
      Two events are converted:
      
        workqueue: workqueue_insertion, workqueue_execution
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4B0E289F.5010104@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      382ece71
    • Li Zefan's avatar
      tracing: Convert softirq events to DEFINE_EVENT · c467307c
      Li Zefan authored
      Use DECLARE_EVENT_CLASS to remove duplicate code:
      
         text    data     bss     dec     hex filename
        12781     952      36   13769    35c9 kernel/softirq.o.old
        11981     952      32   12965    32a5 kernel/softirq.o
      
      Two events are converted:
      
        softirq: softirq_entry, softirq_exit
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4B0E287F.4030708@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      c467307c
    • Li Zefan's avatar
      tracing: Convert some kmem events to DEFINE_EVENT · 53d0422c
      Li Zefan authored
      Use DECLARE_EVENT_CLASS to remove duplicate code:
      
         text    data     bss     dec     hex filename
       333987   69800   27228  431015   693a7 mm/built-in.o.old
       330030   69800   27228  427058   68432 mm/built-in.o
      
      8 events are converted:
      
        kmem_alloc: kmalloc, kmem_cache_alloc
        kmem_alloc_node: kmalloc_node, kmem_cache_alloc_node
        kmem_free: kfree, kmem_cache_free
        mm_page: mm_page_alloc_zone_locked, mm_page_pcpu_drain
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Acked-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      LKML-Reference: <4B0E286A.2000405@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      53d0422c
    • Li Zefan's avatar
      tracing: Convert module refcnt events to DEFINE_EVENT · 925684d6
      Li Zefan authored
      Use DECLARE_EVENT_CLASS to remove duplicate code:
      
         text    data     bss     dec     hex filename
        29854    1980     128   31962    7cda kernel/module.o.old
        28750    1980     128   30858    788a kernel/module.o
      
      Two events are converted:
      
        module_refcnt: module_get, module_put
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4B0E283B.3010508@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      925684d6
    • Ingo Molnar's avatar
      events: Rename TRACE_EVENT_TEMPLATE() to DECLARE_EVENT_CLASS() · 091ad365
      Ingo Molnar authored
      It is not quite obvious at first sight what TRACE_EVENT_TEMPLATE
      does: does it define an event as well beyond defining a template?
      
      To clarify this, rename it to DECLARE_EVENT_CLASS, which follows
      the various 'DECLARE_*()' idioms we already have in the kernel:
      
        DECLARE_EVENT_CLASS(class)
      
          DEFINE_EVENT(class, event1)
          DEFINE_EVENT(class, event2)
          DEFINE_EVENT(class, event3)
      
      To complete this logic we should also rename TRACE_EVENT() to:
      
        DEFINE_SINGLE_EVENT(single_event)
      
      ... but in a more quiet moment of the kernel cycle.
      
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4B0E286A.2000405@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      091ad365
  3. 25 Nov, 2009 4 commits