• Jiri Olsa's avatar
    perf tools: Add 'evlist' control command · 142544a9
    Jiri Olsa authored
    Add a new 'evlist' control command to display all the evlist events.
    When it is received, perf will scan and print current evlist into perf
    record terminal.
    
    The interface string for control file is:
    
      evlist [-v|-g|-F]
    
    The syntax follows perf evlist command:
      -F  Show just the sample frequency used for each event.
      -v  Show all fields.
      -g  Show event group information.
    
    Example session:
    
      terminal 1:
        # mkfifo control ack
        # perf record --control=fifo:control,ack -e '{cycles,instructions}'
    
      terminal 2:
        # echo evlist > control
    
      terminal 1:
        cycles
        instructions
        dummy:HG
    
      terminal 2:
        # echo 'evlist -v' > control
    
      terminal 1:
        cycles: size: 120, { sample_period, sample_freq }: 4000, sample_type:            \
        IP|TID|TIME|ID|CPU|PERIOD, read_format: ID, disabled: 1, inherit: 1, freq: 1,    \
        sample_id_all: 1, exclude_guest: 1
        instructions: size: 120, config: 0x1, { sample_period, sample_freq }: 4000,      \
        sample_type: IP|TID|TIME|ID|CPU|PERIOD, read_format: ID, inherit: 1, freq: 1,    \
        sample_id_all: 1, exclude_guest: 1
        dummy:HG: type: 1, size: 120, config: 0x9, { sample_period, sample_freq }: 4000, \
        sample_type: IP|TID|TIME|ID|CPU|PERIOD, read_format: ID, inherit: 1, mmap: 1,    \
        comm: 1, freq: 1, task: 1, sample_id_all: 1, mmap2: 1, comm_exec: 1, ksymbol: 1, \
         bpf_event: 1
    
      terminal 2:
        # echo 'evlist -g' > control
    
      terminal 1:
        {cycles,instructions}
        dummy:HG
    
      terminal 2:
        # echo 'evlist -F' > control
    
      terminal 1:
        cycles: sample_freq=4000
        instructions: sample_freq=4000
        dummy:HG: sample_freq=4000
    
    This new evlist command is handy to get real event names when
    wildcards are used.
    
    Adding evsel_fprintf.c object to python/perf.so build, because
    it's now evlist.c dependency.
    
    Adding PYTHON_PERF define for python/perf.so compilation, so we
    can use it to compile in only evsel__fprintf from evsel_fprintf.c
    object.
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Alexei Budankov <abudankov@huawei.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Michael Petlan <mpetlan@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lore.kernel.org/lkml/20201226232038.390883-3-jolsa@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    142544a9
evsel_fprintf.c 6.04 KB