24 Sep, 2011

1 commit

  • Fix to call convert_variable() if previous call does not fail.

    To call convert_variable, it ensures "ret" is 0. However, since
    "ret" has the return value of synthesize_perf_probe_arg() which
    always returns positive value if it succeeded, perf probe doesn't
    call convert_variable(). This will cause a SEGV when we add an
    event with arguments.

    This has to be fixed as it ensures "ret" is greater than 0
    (or not negative).

    This regression has been introduced by my previous patch, f182e3e1.

    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Cc: yrl.pp-manager.tt@hitachi.com
    Link: http://lkml.kernel.org/r/20110820053922.3286.65805.stgit@fedora15
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

12 Aug, 2011

5 commits

  • gcc 4.6 generates a concrete out-of-line instance when there is a
    function which is implicitly inlined somewhere but also has its own
    instance. The concrete out-of-line instance means that it has an
    abstract origin of the function which is referred by not only
    inlined-subroutines but also a concrete subprogram.

    Since current dwarf_func_inline_instances() can find only instances of
    inlined-subroutines, this introduces new die_walk_instances() to find
    both of subprogram and inlined-subroutines.

    e.g. without this,
    Available variables at sched_group_rt_period
    @
    struct task_group* tg

    perf probe failed to find actual subprogram instance of
    sched_group_rt_period().

    With this,

    Available variables at sched_group_rt_period
    @
    struct task_group* tg
    @
    struct task_group* tg

    Now it found the sched_group_rt_period() itself.

    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Cc: yrl.pp-manager.tt@hitachi.com
    Link: http://lkml.kernel.org/r/20110811110311.19900.63997.stgit@fedora15
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Fix variable searching logic to search one in inner than local scope or
    global(CU) scope. In the other words, skip searching in intermediate
    scopes.

    e.g., in the following code,

    int var1;

    void inline infunc(int i)
    {
    i++; without.vars

    With this:
    $ perf probe -V pre_schedule --externs > with.vars

    Check the diff:
    $ diff without.vars with.vars
    88d87
    < int cpu
    133d131
    < long unsigned int* switch_count

    These vars are actually in the scope of schedule(), the caller of
    pre_schedule().

    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Cc: yrl.pp-manager.tt@hitachi.com
    Link: http://lkml.kernel.org/r/20110811110305.19900.94374.stgit@fedora15
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Fix perf probe to search local variables in appropriate local inlined
    function scope. For example, pre_schedule() has only 2 local variables,
    as below;

    $ perf probe -L pre_schedule

    0 static inline void pre_schedule(struct rq *rq, struct task_struct *prev)
    {
    2 if (prev->sched_class->pre_schedule)
    3 prev->sched_class->pre_schedule(rq, prev);
    }

    However, current perf probe shows 4 local variables on pre_schedule(),
    because it searches variables in the caller(schedule()) scope.

    $ perf probe -V pre_schedule
    Available variables at pre_schedule
    @
    int cpu
    long unsigned int* switch_count
    struct rq* rq
    struct task_struct* prev

    This patch fixes this issue by searching variables in the local scope of
    the instance of inlined function. Here is the result.

    $ perf probe -V pre_schedule
    Available variables at pre_schedule
    @
    struct rq* rq
    struct task_struct* prev

    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Cc: yrl.pp-manager.tt@hitachi.com
    Link: http://lkml.kernel.org/r/20110811110259.19900.85664.stgit@fedora15
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Fix line-range collector to walk all instances of inlined function,
    because some execution paths can be optimized out depending on the
    function argument of instances.

    E.g.)
    inline_func (arg) {
    if (arg)
    do_something;
    else
    do_another;
    }

    func_A() {
    inline_func(1)
    }

    func_B() {
    inline_func(0)
    }

    In this case, func_A may have only do_something code and func_B may have
    only do_another.

    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Masami Hiramatsu
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Cc: yrl.pp-manager.tt@hitachi.com
    Link: http://lkml.kernel.org/r/20110811110247.19900.93702.stgit@fedora15
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Fix a memory leak for scopes array when it finds a variable in the
    global scope.

    Reviewed-by: Pekka Enberg
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Cc: yrl.pp-manager.tt@hitachi.com
    Link: http://lkml.kernel.org/r/20110811110229.19900.63019.stgit@fedora15
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

16 Jul, 2011

5 commits

  • Introduce debuginfo to encapsulate dwarf information.
    This new object allows us to reuse and expand debuginfo easily.

    Signed-off-by: Masami Hiramatsu
    Cc: Peter Zijlstra
    Cc: Frederic Weisbecker
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Arnaldo Carvalho de Melo
    Link: http://lkml.kernel.org/r/20110627072739.6528.12438.stgit@fedora15
    Signed-off-by: Steven Rostedt

    Masami Hiramatsu
     
  • Move dwarf library related routines to dwarf-aux.{c,h}.
    This includes several minor changes.
    - Add simple documents for each API.
    - Rename die_find_real_subprogram() to die_find_realfunc()
    - Rename line_walk_handler_t to line_walk_callback_t.
    - Minor cleanups.

    Signed-off-by: Masami Hiramatsu
    Cc: Peter Zijlstra
    Cc: Frederic Weisbecker
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Arnaldo Carvalho de Melo
    Link: http://lkml.kernel.org/r/20110627072727.6528.57647.stgit@fedora15
    Signed-off-by: Steven Rostedt

    Masami Hiramatsu
     
  • Since there are dwarf_bitsize, dwarf_bitoffset and dwarf_bytesize
    defined in libdw, we don't need die_get_bit_size, die_get_bit_offset
    and die_get_byte_size anymore.

    Signed-off-by: Masami Hiramatsu
    Cc: Peter Zijlstra
    Cc: Frederic Weisbecker
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Arnaldo Carvalho de Melo
    Link: http://lkml.kernel.org/r/20110627072721.6528.2747.stgit@fedora15
    Signed-off-by: Steven Rostedt

    Masami Hiramatsu
     
  • Since strtailcmp() is enough generic, it should be defined in string.c.

    Signed-off-by: Masami Hiramatsu
    Cc: Peter Zijlstra
    Cc: Frederic Weisbecker
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Arnaldo Carvalho de Melo
    Link: http://lkml.kernel.org/r/20110627072715.6528.10677.stgit@fedora15
    Signed-off-by: Steven Rostedt

    Masami Hiramatsu
     
  • Since die_find/walk* callbacks use DIE_FIND_CB_FOUND for
    both of failed and found cases, it should be "END"
    instead "FOUND" for avoiding confusion.

    Signed-off-by: Masami Hiramatsu
    Reported-by: Arnaldo Carvalho de Melo
    Cc: Peter Zijlstra
    Cc: Frederic Weisbecker
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Link: http://lkml.kernel.org/r/20110627072709.6528.45706.stgit@fedora15
    Signed-off-by: Steven Rostedt

    Masami Hiramatsu
     

10 May, 2011

1 commit

  • pubname_callback_param::found should be initialized to 0 in
    fastpath lookup, the structure is on the stack and
    uninitialized otherwise.

    Signed-off-by: Lin Ming
    Cc: Arnaldo Carvalho de Melo
    Link: http://lkml.kernel.org/r/1304066518-30420-2-git-send-email-ming.m.lin@intel.com
    Signed-off-by: Ingo Molnar

    Lin Ming
     

19 Apr, 2011

1 commit


06 Apr, 2011

4 commits

  • Fix a bug showing incorrect line number when a probe is put on the head of an
    inline function. This patch updates find_perf_probe_point() and introduces new
    rules to get correct line number.

    - If debuginfo doesn't have a correct file name, we shouldn't return line
    number too, because, without file name, line number is meaningless.

    - If the address is in a function, it stores the function name and the offset
    from the function entry.

    - If the address is on a line, it tries to get the relative line number from
    the function entry line, except for the address is same as the entry
    address of the function (in this case, the relative line number should
    be 0).

    - If the address is in an inline function entry (call-site), it uses the
    inline function call line number as the line on which the address is.

    - If the address is in an inline function body, it stores the inline
    function name and offset from the inline function call site instead of the
    (non-inlined) function.

    Cc: 2nddept-manager@sdl.hitachi.co.jp
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Lin Ming
    Cc: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Fix die_find_inlinefunc() to return correct innermost inlined function
    at given address. Without this fix, it returns the outermost inlined
    function.

    Cc: 2nddept-manager@sdl.hitachi.co.jp
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Lin Ming
    Cc: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Since dwfl_end() closes given fd with dwfl, caller doesn't need to close its fd
    when finishing process.

    Cc: 2nddept-manager@sdl.hitachi.co.jp
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Lin Ming
    Cc: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Fix to ensure function declared file matches given file name. This fixes
    a potential bug.

    As I've commented on Lin Ming's fastpath enhancement, decl_file should
    be checked on each probe point if user gives a probe point as func@file.

    Cc: 2nddept-manager@sdl.hitachi.co.jp
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Lin Ming
    Cc: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

30 Mar, 2011

1 commit

  • v3 -> v2:
    - Make pubname_search_cb more generic
    - Add fastpath to find_probes also

    v2 -> v1:
    - Don't compare file names with cu_find_realpath(...), instead, compare
    them with the name returned by dwarf_decl_file(sp_die)

    The vmlinux file may have thousands of CUs.
    We can lookup function name from .debug_pubnames section
    to avoid the slow loop on CUs.

    1. Improvement data for find_line_range

    ./perf stat -e cycles -r 10 -- ./perf probe -k /home/mlin/vmlinux \
    -s /home/mlin/linux-2.6 \
    --line csum_partial_copy_to_user > tmp.log

    before patch applied
    =====================
    847,988,276 cycles

    0.355075856 seconds time elapsed

    after patch applied
    =====================
    206,102,622 cycles

    0.086883555 seconds time elapsed

    2. Improvement data for find_probes

    ./perf stat -e cycles -r 10 -- ./perf probe -k /home/mlin/vmlinux \
    -s /home/mlin/linux-2.6 \
    --vars csum_partial_copy_to_user > tmp.log

    before patch applied
    =====================
    848,490,844 cycles

    0.355307901 seconds time elapsed

    after patch applied
    =====================
    205,684,469 cycles

    0.086694010 seconds time elapsed

    Acked-by: Masami Hiramatsu
    Cc: Ingo Molnar
    Cc: Masami Hiramatsu
    Cc: Peter Zijlstra
    Cc: linux-kernel
    LKML-Reference:
    Signed-off-by: Lin Ming
    Signed-off-by: Arnaldo Carvalho de Melo

    Lin Ming
     

16 Mar, 2011

1 commit

  • Newer compilers (gcc 4.6) complains about:

    return ret < 0 ?: 0;

    For the following reason:

    util/probe-finder.c: In function ‘probe_point_lazy_walker’:
    util/probe-finder.c:1331:18: error: the omitted middle operand in ?: will always be ‘true’, suggest explicit middle operand [-Werror=parentheses]

    And indeed the return value is a somewhat obscure (but correct) value
    of 'true', so return 'ret' instead - this is cleaner and unconfuses
    GCC as well.

    Cc: Arnaldo Carvalho de Melo
    Cc: Masami Hiramatsu
    Cc: Frederic Weisbecker
    Cc: Masami Hiramatsu
    Cc: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

22 Feb, 2011

2 commits

  • While fixing an error propagating problem in f809b25 I added two
    redundant checks.

    I did that because I didn't expect the checks to be on the while and for
    loop condition expression, where they are tested before we run the loop,
    where the 'ret' variable is set.

    So remove it from there and leave it just after it is actually set,
    eliminating unneded tests.

    Reported-by: Masami Hiramatsu
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Masami Hiramatsu
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Tom Zanussi
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • There are two hunks in this patch that stops probe processing as soon as one
    error is found, breaking out of loops, the other fix an error propagation that
    should return a negative error number but instead was returning the result of
    "ret < 0", which is 1 and thus made several error checks fail because they test
    agains < 0.

    The problem could be triggered by asking for a variable that was optimized out,
    fact that should stop the whole probe processing but instead was segfaulting
    while installing broken probes:

    [root@emilia ~]# probe perf_mmap:55 user_lock_limit
    Failed to find the location of user_lock_limit at this address.
    Perhaps, it has been optimized out.
    Failed to find 'user_lock_limit' in this function.
    Add new events:
    probe:perf_mmap (on perf_mmap:55 with user_lock_limit)
    probe:perf_mmap_1 (on perf_mmap:55 with user_lock_limit)
    Segmentation fault (core dumped)
    [root@emilia ~]# perf probe -l
    probe:perf_mmap (on perf_mmap:55@git/linux/kernel/perf_event.c with user_lock_limit)
    probe:perf_mmap_1 (on perf_mmap:55@git/linux/kernel/perf_event.c with user_lock_limit)
    [root@emilia ~]#

    After the fix:

    [root@emilia ~]# probe perf_mmap:55 user_lock_limit
    Failed to find the location of user_lock_limit at this address.
    Perhaps, it has been optimized out.
    Failed to find 'user_lock_limit' in this function.
    Error: Failed to add events. (-2)
    [root@emilia ~]#

    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Masami Hiramatsu
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Tom Zanussi
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

07 Feb, 2011

2 commits


24 Jan, 2011

2 commits

  • Enable to put probe inline function call site. This will increase line-based
    probe-ability.

    $ ./perf probe -L schedule:48

    pre_schedule(rq, prev);

    50 if (unlikely(!rq->nr_running))
    idle_balance(cpu, rq);

    put_prev_task(rq, prev);
    next = pick_next_task(rq);

    56 if (likely(prev != next)) {
    sched_info_switch(prev, next);
    trace_sched_switch_out(prev, next);
    perf_event_task_sched_out(prev, next);

    $ ./perf probe -L schedule:48

    48 pre_schedule(rq, prev);

    50 if (unlikely(!rq->nr_running))
    51 idle_balance(cpu, rq);

    53 put_prev_task(rq, prev);
    54 next = pick_next_task(rq);

    56 if (likely(prev != next)) {
    57 sched_info_switch(prev, next);
    58 trace_sched_switch_out(prev, next);
    59 perf_event_task_sched_out(prev, next);

    Cc: 2nddept-manager@sdl.hitachi.co.jp
    Cc: Franck Bui-Huu
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Srikar Dronamraju
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Introduce die_walk_lines() for walking on the line list of given die, and use
    it in line_range finder and probe point finder.

    Cc: 2nddept-manager@sdl.hitachi.co.jp
    Cc: Franck Bui-Huu
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Srikar Dronamraju
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    [ committer note: s/%ld/%zd/ for a size_t nlines var that broke f14 x86 build]
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

04 Jan, 2011

1 commit


22 Dec, 2010

2 commits

  • Since the libdwfl library before 0.148 fails to analyze live kernel debuginfo,
    'perf probe --list' compiled with those old libdwfl sometimes crashes.

    To avoid that bug, perf probe does not use libdwfl's live kernel analysis
    routine when it is compiled with older libdwfl.

    Side effect: perf with older libdwfl doesn't support listing probe in modules
    with source code line. Those could be shown by symbol+offset.

    Cc: 2nddept-manager@sdl.hitachi.co.jp
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Srikar Dronamraju
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Add new lines for error or debug messages, change dwarf related words to more
    generic words (or just removed).

    Cc: 2nddept-manager@sdl.hitachi.co.jp
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Srikar Dronamraju
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

24 Oct, 2010

1 commit

  • Fixing the following error on 32-bit arches:

    util/probe-finder.c: In function ‘line_range_search_cb’:
    util/probe-finder.c:1734: error: format ‘%lx’ expects type ‘long
    unsigned int’, but argument 3 has type ‘Dwarf_Off’

    Reported-by: Ingo Molnar
    Cc: Frederic Weisbecker
    Cc: Masami Hiramatsu
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

22 Oct, 2010

6 commits

  • Add basic module probe support on perf probe. This introduces "--module
    " option to perf probe for putting probes and showing lines and
    variables in the given module.

    Currently, this supports only probing on running modules. Supporting off-line
    module probing is the next step.

    e.g.)
    [show lines]
    # ./perf probe --module drm -L drm_vblank_info

    0 int drm_vblank_info(struct seq_file *m, void *data)
    1 {
    struct drm_info_node *node = (struct drm_info_node *) m->private
    3 struct drm_device *dev = node->minor->dev;
    ...
    [show vars]
    # ./perf probe --module drm -V drm_vblank_info:3
    Available variables at drm_vblank_info:3
    @
    (unknown_type) data
    struct drm_info_node* node
    struct seq_file* m
    [put a probe]
    # ./perf probe --module drm drm_vblank_info:3 node m
    Add new event:
    probe:drm_vblank_info (on drm_vblank_info:3 with node m)

    You can now use it on all perf tools, such as:

    perf record -e probe:drm_vblank_info -aR sleep 1
    [list probes]
    # ./perf probe -l
    probe:drm_vblank_info (on drm_vblank_info:3@drivers/gpu/drm/drm_info.c with ...

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Add --externs for allowing --vars to show accessible global (externally
    defined) variables from a given probe point too.

    This will give you a hint which globals can be accessible from the probe point.

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Add -V (--vars) option for listing accessible local variables at given probe
    point. This will help finding which local variables are available for event
    arguments.

    e.g.)
    # perf probe -V call_timer_fn:23
    Available variables at call_timer_fn:23
    @
    function_type* fn
    int preempt_count
    long unsigned int data
    struct list_head work_list
    struct list_head* head
    struct timer_list* timer
    struct tvec_base* base

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Allow users to set external defined global variables as event arguments (e.g.
    jiffies).

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Fix to check the die's address and search into the die only if it has given
    address.

    This will avoid finding wrong variables in wrong basic block.

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Fix to get the actual type die of variables by using dwarf_attr_integrate()
    which gets attribute from die even if the type die is connected by
    DW_AT_abstract_origin.

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

08 Sep, 2010

2 commits

  • Don't make argument names from raw parameters (means the parameters are written
    in kprobe-tracer syntax), because the argument syntax may include special
    characters. Just leave it, then kprobe-tracer gives a new name.

    Reported-by: Srikar Dronamraju
    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Fix a bug to support %return probe syntax again. Previous commit 4235b04 has a
    bug which disables the %return syntax on perf probe.

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

07 Aug, 2010

1 commit

  • Copy type field if it is for raw parameters.
    Without this fix, perf probe drops the type if user passes it
    for raw parameters (e.g. %ax:u32 will be converted to %ax).

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Frederic Weisbecker
    Signed-off-by: Masami Hiramatsu
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

06 Aug, 2010

1 commit


30 Jul, 2010

1 commit

  • As a precursor for perf to support uprobes, rename fields/functions
    that had kprobe in their name but can be shared across perf-kprobes
    and perf-uprobes to probe.

    Cc: Ananth N Mavinakayanahalli
    Cc: Andrew Morton
    Cc: Christoph Hellwig
    Cc: "Frank Ch. Eigler"
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jim Keniston
    Cc: Linus Torvalds
    Cc: Mark Wielaard
    Cc: Mathieu Desnoyers
    Cc: Naren A Devaiah
    Cc: Oleg Nesterov
    Cc: "Paul E. McKenney"
    Cc: Peter Zijlstra
    Cc: Randy Dunlap
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Srikar Dronamraju
    Signed-off-by: Arnaldo Carvalho de Melo

    Srikar Dronamraju