1. 16 May, 2012 2 commits
    • Vaibhav Nagarnaik's avatar
      ring-buffer: Make removal of ring buffer pages atomic · 83f40318
      Vaibhav Nagarnaik authored
      This patch adds the capability to remove pages from a ring buffer
      without destroying any existing data in it.
      
      This is done by removing the pages after the tail page. This makes sure
      that first all the empty pages in the ring buffer are removed. If the
      head page is one in the list of pages to be removed, then the page after
      the removed ones is made the head page. This removes the oldest data
      from the ring buffer and keeps the latest data around to be read.
      
      To do this in a non-racey manner, tracing is stopped for a very short
      time while the pages to be removed are identified and unlinked from the
      ring buffer. The pages are freed after the tracing is restarted to
      minimize the time needed to stop tracing.
      
      The context in which the pages from the per-cpu ring buffer are removed
      runs on the respective CPU. This minimizes the events not traced to only
      NMI trace contexts.
      
      Link: http://lkml.kernel.org/r/1336096792-25373-1-git-send-email-vnagarnaik@google.com
      
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Laurent Chavey <chavey@google.com>
      Cc: Justin Teravest <teravest@google.com>
      Cc: David Sharp <dhsharp@google.com>
      Signed-off-by: default avatarVaibhav Nagarnaik <vnagarnaik@google.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      83f40318
    • Steven Rostedt's avatar
      tracing: Clean up tracing_mark_write() · 6edb2a8a
      Steven Rostedt authored
      On gcc 4.5 the function tracing_mark_write() would give a warning
      of page2 being uninitialized. This is due to a bug in gcc because
      the logic prevents page2 from being used uninitialized, and
      gcc 4.6+ does not complain (correctly).
      
      Instead of adding a "unitialized" around page2, which could show
      a bug later on, I combined page1 and page2 into an array map_pages[].
      This binds the two and the two are modified according to nr_pages
      (what gcc 4.5 seems to ignore). This no longer gives a warning with
      gcc 4.5 nor with gcc 4.6.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      6edb2a8a
  2. 14 May, 2012 2 commits
  3. 12 May, 2012 5 commits
  4. 11 May, 2012 4 commits
  5. 10 May, 2012 1 commit
  6. 09 May, 2012 23 commits
  7. 08 May, 2012 3 commits
    • Ingo Molnar's avatar
      Merge branch 'perf/annotate' of... · 149936a0
      Ingo Molnar authored
      Merge branch 'perf/annotate' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
      
      Perf annotate browser improvements:
      
       - Get back the line separating the overheads from the disassembly, requested by
         Peter Zijlstra, Linus agreed now that it is a solid line and more column real
         state was harvested. Also it has the jump->arrow lines separated from it by
         the address/jump target column.
      
       - Don't change asm line color when toggling source code view. Requested by
         Peter Zijlstra.
      
      Current snapshot:
      
       avtab_search_node
              │      push   %rbp
              │      mov    %rsp,%rbp
              │    → callq  mcount
              │      movzwl 0x6(%rsi),%edx
              │      and    $0x7fff,%dx
              │      test   %rdi,%rdi
              │    ↓ jne    20
         0.42 │17:┌─→xor    %eax,%eax
              │19:│  leaveq
         0.42 │   │← retq
              │   │  nopl   0x0(%rax,%rax,1)
              │20:│  mov    (%rdi),%rax
         0.08 │   │  test   %rax,%rax
              │   └──je     17
              │      movzwl (%rsi),%ecx
              │      movzwl 0x2(%rsi),%r9d
              │      movzwl 0x4(%rsi),%r8d
              │      movzwl %cx,%esi
              │      movzwl %r9w,%r10d
              │      shl    $0x9,%esi
              │      lea    (%rsi,%r10,4),%esi
              │      lea    (%r8,%rsi,1),%esi
              │      and    0x10(%rdi),%si
              │      movzwl %si,%esi
              │      mov    (%rax,%rsi,8),%rax
         1.01 │      test   %rax,%rax
              │    ↑ je     19
              │      nopw   0x0(%rax,%rax,1)
         3.19 │60:   cmp    %cx,(%rax)
              │    ↓ jne    7e
         0.08 │      cmp    %r9w,0x2(%rax)
              │    ↓ jne    7e
              │      cmp    %r8w,0x4(%rax)
              │    ↓ jne    79
              │      test   %dx,0x6(%rax)
              │    ↑ jne    19
              │79:   cmp    %r8w,0x4(%rax)
        83.45 │7e: ↑ ja     17
         3.36 │      mov    0x10(%rax),%rax
         7.98 │      test   %rax,%rax
              │    ↑ jne    60
              │      leaveq
              │    ← retq
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      149936a0
    • Arnaldo Carvalho de Melo's avatar
      perf top: Default to system wide using perf_target methods · 80eebd94
      Arnaldo Carvalho de Melo authored
      Additionally we were not checking if a cpu list had been provided by the
      user. Fix that.
      Reported-by: default avatarDavid Ahern <dsahern@gmail.com>
      Reported-by: default avatarNamhyung Kim <namhyung@gmail.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-ao3zrouylwmt7h9ikj0krubi@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      80eebd94
    • Minho Ban's avatar
      tracing: Prevent wasting time evaluating parameters in trace_preempt_on/off · b02ee9a3
      Minho Ban authored
      This fixes spending time for evaluating parameters in trace_preempt_on/off when
      the tracer config is off.
      
      The patch mainly inspired by Steven Rostedt, thanks Steven.
      
      Link: http://lkml.kernel.org/r/4FA73510.7070705@samsung.com
      
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Turner <pjt@google.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Signed-off-by: default avatarMinho Ban <mhban@samsung.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      b02ee9a3