07 May, 2016

2 commits

  • The exported sample now contains a reference to the call_path_id that
    represents its callchain.

    While callchains themselves are nice to have, being able to associate
    them with samples makes them much more useful, and can allow for such
    things as determining how much cumulative time is spent in a particular
    function. This information is normally possible to get from the call
    return processor. However, when doing normal sampling, call/return
    information is not available, thus necessitating the need for
    associating samples directly with call paths.

    This commit include changes to db-export layer to make this information
    available for subsequent patches in this change set, but by itself, does
    not make any changes visible to the user.

    Signed-off-by: Chris Phlipot
    Acked-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1461831551-12213-5-git-send-email-cphlipot0@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Chris Phlipot
     
  • This change enables the db export api to export callchains. This is
    accomplished by adding callchains obtained from samples to the
    call_path_root structure and exporting them via the current call path
    export API.

    While the current API does support exporting call paths, this is not
    supported when sampling. This commit addresses that missing feature by
    allowing the export of call paths when callchains are present in
    samples.

    Summary:

    - This feature is activated by initializing the call_path_root member
    inside the db_export structure to a non-null value.

    - Callchains are resolved with thread__resolve_callchain() and then stored
    and exported by adding a call path under call path root.
    - Symbol and DSO for each callchain node are exported via db_ids_from_al()

    This commit puts in place infrastructure to be used by subsequent commits,
    and by itself, does not introduce any user-visible changes.

    Signed-off-by: Chris Phlipot
    Acked-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1461831551-12213-4-git-send-email-cphlipot0@gmail.com
    [ Made adjustments suggested by Adrian Hunter, see thread via this cset's Link: tag ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Chris Phlipot
     

03 Apr, 2015

2 commits

  • As it comes from address_location->thread, that is already stored as
    export_sample->al, where the thread can be obtained.

    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Don Zickus
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/20150402141542.GA9630@kernel.org
    Link: http://lkml.kernel.org/n/tip-bzotbl4epoztw0jd6sm2stpf@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • As it is available via another parameter, address_location->thread.

    Acked-by: Adrian Hunter
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Don Zickus
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Stephane Eranian
    Link: lkml.kernel.org/r/551D08F8.3040706@intel.com
    Link: http://lkml.kernel.org/n/tip-6dbn0tcm9hyv92g7h3zj2dbt@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

04 Nov, 2014

3 commits

  • Tracing for a workload begins before the comm event is seen, which
    results in the initial comm having a string of the form ":" (e.g.
    ":12345").

    In order to export the correct string, defer the export until the new
    script 'flush' callback.

    Signed-off-by: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1414678188-14946-8-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Make it possible for the database export API to use the enhanced thread
    stack and export detailed information about paired calls and returns.

    Signed-off-by: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1414678188-14946-6-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Add the ability to export branch types through the database export
    facility.

    Signed-off-by: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1414678188-14946-3-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     

29 Oct, 2014

1 commit

  • This patch introduces an abstraction for exporting sample data in a
    database-friendly way. The abstraction does not implement the actual
    output. A subsequent patch takes this facility into use for extending
    the script interface.

    The abstraction is needed because static data like symbols, dsos, comms
    etc need to be exported only once. That means allocating them a unique
    identifier and recording it on each structure. The member 'db_id' is
    used for that. 'db_id' is just a 64-bit sequence number.

    Exporting centres around the db_export__sample() function which exports
    the associated data structures if they have not yet been allocated a
    db_id.

    Signed-off-by: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1414061124-26830-6-git-send-email-adrian.hunter@intel.com
    [ committer note: Stash db_id using symbol_conf.priv_size + symbol__priv() and foo->priv areas ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter