Re: [PATCH] perf record: Fix to honor user freq/interval properly

From: Jiri Olsa
Date: Mon Jun 09 2014 - 06:23:09 EST


On Mon, Jun 09, 2014 at 02:43:37PM +0900, Namhyung Kim wrote:
> When configuring event perf checked a wrong condition that user
> specified both of freq (-F) and period (-c) or the event has no
> default value. This worked because most of events don't have default
> value and only tracepoint events have default of 1 (and it's not
> desirable to change it for those events).
>
> However, Andi's downloadable event patch changes the situation so it
> cannot change the value for those events. Fix it by allowing override
> the default value if user gives one of the options.
>
> $ perf record -a -e uops_retired.all -F 4000 sleep 1
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.325 MB perf.data (~14185 samples) ]
>
> $ perf evlist -F
> cpu/uops_retired.all/: sample_freq=4000
>
> Cc: Andi Kleen <andi@xxxxxxxxxxxxxx>
> Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
> tools/perf/util/evsel.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> index 5c28d82b76c4..5ff811c67adc 100644
> --- a/tools/perf/util/evsel.c
> +++ b/tools/perf/util/evsel.c
> @@ -589,10 +589,10 @@ void perf_evsel__config(struct perf_evsel *evsel, struct record_opts *opts)
> }
>
> /*
> - * We default some events to a 1 default interval. But keep
> + * We default some events to have a default interval. But keep
> * it a weak assumption overridable by the user.
> */
> - if (!attr->sample_period || (opts->user_freq != UINT_MAX &&
> + if (!attr->sample_period || (opts->user_freq != UINT_MAX ||
> opts->user_interval != ULLONG_MAX)) {

seems ok to me, maybe we could fixup brackets in that condition so
it does not seems like there's some hidden message ;-)

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/