lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170316185140.a17b885479976d4be36349f4@kernel.org>
Date:   Thu, 16 Mar 2017 18:51:40 +0900
From:   Masami Hiramatsu <mhiramat@...nel.org>
To:     Ravi Bangoria <ravi.bangoria@...ux.vnet.ibm.com>
Cc:     mingo@...hat.com, acme@...nel.org, brendan.d.gregg@...il.com,
        peterz@...radead.org, alexander.shishkin@...ux.intel.com,
        wangnan0@...wei.com, jolsa@...nel.org, ak@...ux.intel.com,
        treeze.taeung@...il.com, mathieu.poirier@...aro.org,
        hekuang@...wei.com, sukadev@...ux.vnet.ibm.com, ananth@...ibm.com,
        naveen.n.rao@...ux.vnet.ibm.com, adrian.hunter@...el.com,
        linux-kernel@...r.kernel.org, hemant@...ux.vnet.ibm.com
Subject: Re: [PATCH v5 0/7] perf/sdt: Directly record SDT events with 'perf
 record'

On Tue, 14 Mar 2017 20:36:51 +0530
Ravi Bangoria <ravi.bangoria@...ux.vnet.ibm.com> wrote:

> All events from 'perf list', except SDT events, can be directly recorded
> with 'perf record'. But, the flow is little different for SDT events.
> Probe point for SDT event needs to be created using 'perf probe' before
> recording it using 'perf record'.
> 
> As suggested by Ingo[1], it's better to make this process simple by
> creating probe point automatically with 'perf record' for SDT events.
> 
> Features:
>   - Allow both 'perf probe' and 'perf record' on sdt events without
>     changing current functionality.
> 
>   - Event starting with 'sdt_' or '%' will be considered as SDT event.
> 
>   - Always prioritize events from uprobe_events by first checking if
>     event exists with exact name. If not found and user has used
>     pattern, again try to find pattern matching entries from
>     uprobe_events. If found use them. If not, lookup into probe-cache.
>     If events found from probe-cache, again check if any event exists
>     in uprobe_events by matching filepath+address, as it might exists
>     in uprobe_events but with different name. Reuse those events which
>     exists in uprobe_events and create new entries for missing one.
>     Also maintain list for new entries being created and at the end
>     of the session, delete them.
> 
>   - Show various warnings/hints to help user understand _which_ events
>     are being recorded and _why_. For ex,
> 
>     When multiple events of same name found and all are being recorded:
> 
>       $ sudo ./perf record -a -e sdt_libpthread:mutex_entry
>         Warning: Recording on 2 occurrences of sdt_libpthread:mutex_entry
> 
>     Events being reused from uprobe_events is listed as 'name addr@...e'
>     followed by hint on how to delete them:
> 
>       $ sudo ./perf record -a -e sdt_libpthread:mutex_entry
>         Matching event(s) from uprobe_events:
>           sdt_libpthread:mutex_entry  0x9ddb@...r/lib64/libpthread-2.24.so
>         Use 'perf probe -d <event>' to delete event(s).
> 
>     If number of events found from cache is not equal to number of events
>     being recorded:
> 
>       $ sudo ./perf record -a -e sdt_libpthread:mutex_entry
>         Warning: Found 2 events from probe-cache with name 'sdt_libpthread:mutex_entry'.
>                  Since 1 probe point already exists, recording only it.
>         Hint: Please use 'perf probe -d sdt_libpthread:mutex_entry' to allow record on all events.
> 
>   - If all events found from probe-cache are not present in uprobe_events,
>     and user has used pattern to specify event, perf will record only
>     those events which are present in uprobe_events. This is to make perf
>     semantics consistent across normal and SDT events. And If user has
>     not used pattern, perf will record all events found from probe-cache
>     by reusing name for existing one and adding entries for missing one.
>     For ex,
> 
>       $ sudo ./perf probe sdt_libpthread:mutex_release
>         Added new events:
>           sdt_libpthread:mutex_release (on %mutex_release in /usr/lib64/libpthread-2.24.so)
>           sdt_libpthread:mutex_release_1 (on %mutex_release in /usr/lib64/libpthread-2.24.so)
>           sdt_libpthread:mutex_release_2 (on %mutex_release in /usr/lib64/libpthread-2.24.so)
>           sdt_libpthread:mutex_release_3 (on %mutex_release in /usr/lib64/libpthread-2.24.so)
>       $ sudo ./perf probe -d sdt_libpthread:mutex_release
>       $ sudo ./perf probe -d sdt_libpthread:mutex_release_2
> 
>       $ sudo ./perf record -a -e sdt_libpthread:mutex_release*
>         Warning: Recording on 2 occurrences of sdt_libpthread:mutex_release*
> 
>       $ sudo ./perf record -a -e sdt_libpthread:mutex_release
>         Warning: Recording on 4 occurrences of sdt_libpthread:mutex_release
> 
> Changes in v5:
>   - Patch 2/7 is new. New option introduced in this patch helps to pass
>     custome data from builtin-*.c to libperf.
> 
>   - All direct callbacks from libelf to builtin-record.c is removed.
>  
>   - Merged 2nd and 4th patch of v4 into patch 2 of v5.
> 
>   - Moved all functions from util/probe-file.c to util/probe-event.c
>     which operates on perf_probe_event.
> 
>   - Made free_sdt_list() static as it's only used inside util/probe-event.c.
> 
>   - Couple of other changes as Masami has suggested in v4 review.

Hi Ravi,
Could you also describe which patches are updated? It seems 1/7 is not
modified, correct?

Thank you,

-- 
Masami Hiramatsu <mhiramat@...nel.org>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ