2020-06-23 23:52:09

by Gaurav Singh

[permalink] [raw]
Subject: [PATCH] [perf] intel_pt_recording_options: Remove redundant intel_pt_evsel null check

intel_pt_evsel cannot be NULL here since its already being
dereferenced above. Remove this redundant check.

Signed-off-by: Gaurav Singh <[email protected]>
---
tools/perf/arch/x86/util/intel-pt.c | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/tools/perf/arch/x86/util/intel-pt.c b/tools/perf/arch/x86/util/intel-pt.c
index 839ef52c1ac2..8cc87fd2dc6f 100644
--- a/tools/perf/arch/x86/util/intel-pt.c
+++ b/tools/perf/arch/x86/util/intel-pt.c
@@ -836,19 +836,17 @@ static int intel_pt_recording_options(struct auxtrace_record *itr,
}
}

- if (intel_pt_evsel) {
- /*
- * To obtain the auxtrace buffer file descriptor, the auxtrace
- * event must come first.
- */
- perf_evlist__to_front(evlist, intel_pt_evsel);
- /*
- * In the case of per-cpu mmaps, we need the CPU on the
- * AUX event.
- */
- if (!perf_cpu_map__empty(cpus))
- evsel__set_sample_bit(intel_pt_evsel, CPU);
- }
+ /*
+ * To obtain the auxtrace buffer file descriptor, the auxtrace
+ * event must come first.
+ */
+ perf_evlist__to_front(evlist, intel_pt_evsel);
+ /*
+ * In the case of per-cpu mmaps, we need the CPU on the
+ * AUX event.
+ */
+ if (!perf_cpu_map__empty(cpus))
+ evsel__set_sample_bit(intel_pt_evsel, CPU);

/* Add dummy event to keep tracking */
if (opts->full_auxtrace) {
--
2.17.1


2020-06-24 12:44:16

by Jiri Olsa

[permalink] [raw]
Subject: Re: [PATCH] [perf] intel_pt_recording_options: Remove redundant intel_pt_evsel null check

On Tue, Jun 23, 2020 at 07:48:50PM -0400, Gaurav Singh wrote:
> intel_pt_evsel cannot be NULL here since its already being
> dereferenced above. Remove this redundant check.
>
> Signed-off-by: Gaurav Singh <[email protected]>
> ---
> tools/perf/arch/x86/util/intel-pt.c | 24 +++++++++++-------------
> 1 file changed, 11 insertions(+), 13 deletions(-)
>
> diff --git a/tools/perf/arch/x86/util/intel-pt.c b/tools/perf/arch/x86/util/intel-pt.c
> index 839ef52c1ac2..8cc87fd2dc6f 100644
> --- a/tools/perf/arch/x86/util/intel-pt.c
> +++ b/tools/perf/arch/x86/util/intel-pt.c
> @@ -836,19 +836,17 @@ static int intel_pt_recording_options(struct auxtrace_record *itr,
> }
> }
>

I wonder we sould put check before that above usage of intel_pt_evsel,
because there's no check for that.. but yes, if intel_pt_evsel is NULL
it will fail earlier.. Adrian?

thanks,
jirka

> - if (intel_pt_evsel) {
> - /*
> - * To obtain the auxtrace buffer file descriptor, the auxtrace
> - * event must come first.
> - */
> - perf_evlist__to_front(evlist, intel_pt_evsel);
> - /*
> - * In the case of per-cpu mmaps, we need the CPU on the
> - * AUX event.
> - */
> - if (!perf_cpu_map__empty(cpus))
> - evsel__set_sample_bit(intel_pt_evsel, CPU);
> - }
> + /*
> + * To obtain the auxtrace buffer file descriptor, the auxtrace
> + * event must come first.
> + */
> + perf_evlist__to_front(evlist, intel_pt_evsel);
> + /*
> + * In the case of per-cpu mmaps, we need the CPU on the
> + * AUX event.
> + */
> + if (!perf_cpu_map__empty(cpus))
> + evsel__set_sample_bit(intel_pt_evsel, CPU);
>
> /* Add dummy event to keep tracking */
> if (opts->full_auxtrace) {
> --
> 2.17.1
>

2020-06-24 16:06:11

by Adrian Hunter

[permalink] [raw]
Subject: Re: [PATCH] [perf] intel_pt_recording_options: Remove redundant intel_pt_evsel null check

On 24/06/20 2:48 am, Gaurav Singh wrote:
> intel_pt_evsel cannot be NULL here since its already being
> dereferenced above. Remove this redundant check.
>
> Signed-off-by: Gaurav Singh <[email protected]>

Acked-by: Adrian Hunter <[email protected]>

> ---
> tools/perf/arch/x86/util/intel-pt.c | 24 +++++++++++-------------
> 1 file changed, 11 insertions(+), 13 deletions(-)
>
> diff --git a/tools/perf/arch/x86/util/intel-pt.c b/tools/perf/arch/x86/util/intel-pt.c
> index 839ef52c1ac2..8cc87fd2dc6f 100644
> --- a/tools/perf/arch/x86/util/intel-pt.c
> +++ b/tools/perf/arch/x86/util/intel-pt.c
> @@ -836,19 +836,17 @@ static int intel_pt_recording_options(struct auxtrace_record *itr,
> }
> }
>
> - if (intel_pt_evsel) {
> - /*
> - * To obtain the auxtrace buffer file descriptor, the auxtrace
> - * event must come first.
> - */
> - perf_evlist__to_front(evlist, intel_pt_evsel);
> - /*
> - * In the case of per-cpu mmaps, we need the CPU on the
> - * AUX event.
> - */
> - if (!perf_cpu_map__empty(cpus))
> - evsel__set_sample_bit(intel_pt_evsel, CPU);
> - }
> + /*
> + * To obtain the auxtrace buffer file descriptor, the auxtrace
> + * event must come first.
> + */
> + perf_evlist__to_front(evlist, intel_pt_evsel);
> + /*
> + * In the case of per-cpu mmaps, we need the CPU on the
> + * AUX event.
> + */
> + if (!perf_cpu_map__empty(cpus))
> + evsel__set_sample_bit(intel_pt_evsel, CPU);
>
> /* Add dummy event to keep tracking */
> if (opts->full_auxtrace) {
>

2020-06-24 16:07:37

by Adrian Hunter

[permalink] [raw]
Subject: Re: [PATCH] [perf] intel_pt_recording_options: Remove redundant intel_pt_evsel null check

On 24/06/20 3:42 pm, Jiri Olsa wrote:
> On Tue, Jun 23, 2020 at 07:48:50PM -0400, Gaurav Singh wrote:
>> intel_pt_evsel cannot be NULL here since its already being
>> dereferenced above. Remove this redundant check.
>>
>> Signed-off-by: Gaurav Singh <[email protected]>
>> ---
>> tools/perf/arch/x86/util/intel-pt.c | 24 +++++++++++-------------
>> 1 file changed, 11 insertions(+), 13 deletions(-)
>>
>> diff --git a/tools/perf/arch/x86/util/intel-pt.c b/tools/perf/arch/x86/util/intel-pt.c
>> index 839ef52c1ac2..8cc87fd2dc6f 100644
>> --- a/tools/perf/arch/x86/util/intel-pt.c
>> +++ b/tools/perf/arch/x86/util/intel-pt.c
>> @@ -836,19 +836,17 @@ static int intel_pt_recording_options(struct auxtrace_record *itr,
>> }
>> }
>>
>
> I wonder we sould put check before that above usage of intel_pt_evsel,
> because there's no check for that.. but yes, if intel_pt_evsel is NULL
> it will fail earlier.. Adrian?

The code was written when sampling-mode did not require an intel_pt_evsel.
Now it does, so intel_pt_evsel will not be NULL. I think it is OK as is.

>
> thanks,
> jirka
>
>> - if (intel_pt_evsel) {
>> - /*
>> - * To obtain the auxtrace buffer file descriptor, the auxtrace
>> - * event must come first.
>> - */
>> - perf_evlist__to_front(evlist, intel_pt_evsel);
>> - /*
>> - * In the case of per-cpu mmaps, we need the CPU on the
>> - * AUX event.
>> - */
>> - if (!perf_cpu_map__empty(cpus))
>> - evsel__set_sample_bit(intel_pt_evsel, CPU);
>> - }
>> + /*
>> + * To obtain the auxtrace buffer file descriptor, the auxtrace
>> + * event must come first.
>> + */
>> + perf_evlist__to_front(evlist, intel_pt_evsel);
>> + /*
>> + * In the case of per-cpu mmaps, we need the CPU on the
>> + * AUX event.
>> + */
>> + if (!perf_cpu_map__empty(cpus))
>> + evsel__set_sample_bit(intel_pt_evsel, CPU);
>>
>> /* Add dummy event to keep tracking */
>> if (opts->full_auxtrace) {
>> --
>> 2.17.1
>>
>