On Tue, Aug 29, 2017 at 01:11:08PM -0400, kan.li...@intel.com wrote:

SNIP

> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> index a5888c7..228a78d 100644
> --- a/tools/perf/util/evsel.c
> +++ b/tools/perf/util/evsel.c
> @@ -950,6 +950,9 @@ void perf_evsel__config(struct perf_evsel *evsel, struct 
> record_opts *opts,
>       if (opts->sample_address)
>               perf_evsel__set_sample_bit(evsel, DATA_SRC);
>  
> +     if (opts->sample_phys_addr)
> +             perf_evsel__set_sample_bit(evsel, PHYS_ADDR);
> +
>       if (opts->no_buffering) {
>               attr->watermark = 0;
>               attr->wakeup_events = 1;
> @@ -2201,6 +2204,12 @@ int perf_evsel__parse_sample(struct perf_evsel *evsel, 
> union perf_event *event,
>               }
>       }
>  
> +     data->phys_addr = 0;
> +     if (type & PERF_SAMPLE_PHYS_ADDR) {
> +             data->phys_addr = *array;
> +             array++;
> +     }
> +
>       return 0;
>  }
>  
> @@ -2306,6 +2315,9 @@ size_t perf_event__sample_event_size(const struct 
> perf_sample *sample, u64 type,
>               }
>       }
>  
> +     if (type & PERF_SAMPLE_PHYS_ADDR)
> +             result += sizeof(u64);
> +
>       return result;
>  }
>  
> @@ -2495,6 +2507,11 @@ int perf_event__synthesize_sample(union perf_event 
> *event, u64 type,
>               }
>       }
>  
> +     if (type & PERF_SAMPLE_PHYS_ADDR) {
> +             *array = sample->phys_addr;
> +             array++;
> +     }
> +
>       return 0;
>  }
>  

missing the printing bits

jirka


diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index e705c0d59a69..4bb89373eb52 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -1467,7 +1467,7 @@ static void __p_sample_type(char *buf, size_t size, u64 
value)
                bit_name(PERIOD), bit_name(STREAM_ID), bit_name(RAW),
                bit_name(BRANCH_STACK), bit_name(REGS_USER), 
bit_name(STACK_USER),
                bit_name(IDENTIFIER), bit_name(REGS_INTR), bit_name(DATA_SRC),
-               bit_name(WEIGHT),
+               bit_name(WEIGHT), bit_name(PHYS_ADDR),
                { .name = NULL, }
        };
 #undef bit_name

Reply via email to