Re: [PATCH] perf config: Refine error message to eliminate confusion

From: Ian Rogers
Date: Fri Sep 24 2021 - 11:08:26 EST


On Fri, Sep 24, 2021 at 4:58 AM Like Xu <like.xu.linux@xxxxxxxxx> wrote:
>
> From: Like Xu <likexu@xxxxxxxxxxx>
>
> If there is no configuration file at first, the user can
> write any pair of "key.subkey=value" to the newly created
> configuration file, while value validation against a valid
> configurable key is *deferred* until the next execution or
> the implied execution of "perf config ... ".
>
> For example:
>
> $ rm ~/.perfconfig
> $ perf config call-graph.dump-size=65529
> $ cat ~/.perfconfig
> # this file is auto-generated.
> [call-graph]
> dump-size = 65529
> $ perf config call-graph.dump-size=2048
> callchain: Incorrect stack dump size (max 65528): 65529
> Error: wrong config key-value pair call-graph.dump-size=65529
>
> The user might expect that the second value 2048 is valid
> and can be updated to the configuration file, but the error
> message is very confusing because the first value 65529 is
> not reported as an error during the last configuration.
>
> It is recommended not to change the current behavior of
> delayed validation (as more effort is needed), but to refine
> the original error message to *clearly indicate* that the
> cause of the error is the configuration file.
>
> Signed-off-by: Like Xu <likexu@xxxxxxxxxxx>

Acked-by: Ian Rogers <irogers@xxxxxxxxxx>

Thanks,
Ian

> ---
> tools/perf/util/config.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
> index 4fb5e90d7a57..60ce5908c664 100644
> --- a/tools/perf/util/config.c
> +++ b/tools/perf/util/config.c
> @@ -801,7 +801,7 @@ int perf_config_set(struct perf_config_set *set,
> section->name, item->name);
> ret = fn(key, value, data);
> if (ret < 0) {
> - pr_err("Error: wrong config key-value pair %s=%s\n",
> + pr_err("Error in the given config file: wrong config key-value pair %s=%s\n",
> key, value);
> /*
> * Can't be just a 'break', as perf_config_set__for_each_entry()
> --
> 2.32.0
>