Re: [PATCH 2/2] perf stat: Fix invalid output handle

From: Athira Rajeev
Date: Sun Dec 04 2022 - 12:09:03 EST




> On 01-Dec-2022, at 3:36 PM, James Clark <james.clark@xxxxxxx> wrote:
>
>
>
> On 30/11/2022 18:32, Namhyung Kim wrote:
>> On Wed, Nov 30, 2022 at 3:15 AM James Clark <james.clark@xxxxxxx> wrote:
>>>
>>> In this context, 'os' is already a pointer so the extra dereference
>>> isn't required. This fixes the following test failure on aarch64:
>>>
>>> $ ./perf test "json output" -vvv
>>> 92: perf stat JSON output linter :
>>> --- start ---
>>> Checking json output: no args Test failed for input:
>>> ...
>>> Fatal error: glibc detected an invalid stdio handle
>>> ---- end ----
>>> perf stat JSON output linter: FAILED!
>>>
>>> Fixes: e7f4da312259 ("perf stat: Pass struct outstate to printout()")
>>> Signed-off-by: James Clark <james.clark@xxxxxxx>
>>
>> Thanks for fixing this. I'm not sure how I missed it.. :(
>>
>
> It seems to only go down that path on some configuration. At least on
> x86 the test was passing fine for me.
>
>> Acked-by: Namhyung Kim <namhyung@xxxxxxxxxx>
>
> Thanks for the review!

Faced same issue on powerpc. Tested with this change and it works with this patch.

Tested-by: Athira Rajeev <atrajeev@xxxxxxxxxxxxxxxxxx>

Thanks
Athira
>
>>
>> Thanks,
>> Namhyung
>>
>>
>>> ---
>>> tools/perf/util/stat-display.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c
>>> index 847acdb5dc40..eac5ac3a734c 100644
>>> --- a/tools/perf/util/stat-display.c
>>> +++ b/tools/perf/util/stat-display.c
>>> @@ -741,7 +741,7 @@ static void printout(struct perf_stat_config *config, struct outstate *os,
>>> perf_stat__print_shadow_stats(config, counter, uval, map_idx,
>>> &out, &config->metric_events, &rt_stat);
>>> } else {
>>> - pm(config, &os, /*color=*/NULL, /*format=*/NULL, /*unit=*/"", /*val=*/0);
>>> + pm(config, os, /*color=*/NULL, /*format=*/NULL, /*unit=*/"", /*val=*/0);
>>> }
>>>
>>> if (!config->metric_only) {
>>> --
>>> 2.25.1