Re: [PATCH] trace: Make trace_hwlat timestamp y2038 safe

From: Arnd Bergmann
Date: Mon Mar 27 2017 - 05:57:26 EST


On Mon, Mar 27, 2017 at 11:25 AM, kbuild test robot <lkp@xxxxxxxxx> wrote:
> Hi Deepa,
>
> [auto build test WARNING on tip/perf/core]
> [also build test WARNING on v4.11-rc4 next-20170327]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Deepa-Dinamani/trace-Make-trace_hwlat-timestamp-y2038-safe/20170327-150010
> config: x86_64-randconfig-n0-03271517 (attached as .config)
> compiler: gcc-4.8 (Debian 4.8.4-1) 4.8.4
> reproduce:
> # save the attached .config to linux build tree
> make ARCH=x86_64
>
> All warnings (new ones prefixed by >>):
>
> kernel/trace/trace_output.c: In function 'trace_hwlat_print':
>>> kernel/trace/trace_output.c:1168:5: warning: format '%lld' expects argument of type 'long long int', but argument 6 has type '__kernel_time_t' [-Wformat=]
> field->timestamp.tv_nsec);

This happens on 64-bit architectures because 'struct timespec64' is defined to
be equal to 'struct timespec', which has a 'long' tv_sec rather than
'long long'.

A cast to 's64' is probably the best workaround.

> kernel/trace/trace_output.c: In function 'trace_hwlat_raw':
> kernel/trace/trace_output.c:1202:5: warning: format '%lld' expects argument of type 'long long int', but argument 5 has type '__kernel_time_t' [-Wformat=]
> field->seqnum);

Same here.


Arnd