Re: [PATCH] perf probe: Return errno when does not hit any event

From: Kefeng Wang
Date: Tue Mar 14 2017 - 09:20:30 EST


Hi all, any comments, thanks.

On 2017/3/7 15:33, Kefeng Wang wrote:
> + Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> On 2017/3/6 17:34, Kefeng Wang wrote:
>> On old perf, when using perf probe -d to delete an inexistent event,
>> it return errno, eg,
>>
>> -bash-4.3# perf probe -d xxx || echo $?
>> Info: Event "*:xxx" does not exist.
>> Error: Failed to delete events.
>> 255
>>
>> But now perf_del_probe_events() will always set ret = 0, different
>> from previous del_perf_probe_events(). After this, it return errno
>> again, eg,
>>
>> -bash-4.3# ./perf probe -d xxx || echo $?
>> Error: Failed to delete events.
>> 254
>>
>> And it is more appropriate to return -ENOENT instead of -EPERM.
>>
>> Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>
>> ---
>> tools/perf/builtin-probe.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c
>> index 1fcebc3..c46b41c 100644
>> --- a/tools/perf/builtin-probe.c
>> +++ b/tools/perf/builtin-probe.c
>> @@ -444,7 +444,8 @@ static int perf_del_probe_events(struct strfilter *filter)
>> if (ret == -ENOENT && ret2 == -ENOENT)
>> pr_debug("\"%s\" does not hit any event.\n", str);
>> /* Note that this is silently ignored */
>> - ret = 0;
>> + else
>> + ret = 0;
>>
>> error:
>> if (kfd >= 0)
>>
>
>
> .
>