Skip to content
  • Chris Phlipot's avatar
    perf script: Expose usage of the callchain db export via the python api · 2c15f5eb
    Chris Phlipot authored
    
    
    This change allows python scripts to be able to utilize the recent
    changes to the db export api allowing the export of call_paths derived
    from sampled callchains. These call paths are also now associated with
    the samples from which they were derived.
    
    - This feature is enabled by setting "perf_db_export_callchains" to true
    
    - When enabled, samples that have callchain information will have the
      callchains exported via call_path_table
    
    - The call_path_id field is added to sample_table to enable association of
      samples with the corresponding callchain stored in the call paths
      table. A call_path_id of 0 will be exported if there is no
      corresponding callchain.
    
    - When "perf_db_export_callchains" and "perf_db_export_calls" are both
      set to True, the call path root data structure will be shared. This
      prevents duplicating of data and call path ids that would result from
      building two separate call path trees in memory.
    
    - The call_return_processor structure definition was relocated to the header
      file to make its contents visible to db-export.c. This enables the
      sharing of call path trees between the two features, as mentioned
      above.
    
    This change is visible to python scripts using the python db export api.
    
    The change is backwards compatible with scripts written against the
    previous API, assuming that the scripts model the sample_table function
    after the one in export-to-postgresql.py script by allowing for
    additional arguments to be added in the future. ie. using *x as the
    final argument of the sample_table function.
    
    Signed-off-by: default avatarChris Phlipot <cphlipot0@gmail.com>
    Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1461831551-12213-6-git-send-email-cphlipot0@gmail.com
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    2c15f5eb