Subject: Re: linux-next: tip tree build warnings

From: Ingo Molnar <[email-masked]>
Date: Thu, 3 Sep 2009 10:38:44 +0200

* Stephen Rothwell <[email-masked]> wrote:

> Hi all,
> 
> Today's linux-next build (powerpc ppc64_defconfig) produced these warning:
> 
> In file included from include/trace/ftrace.h:285,
>                  from include/trace/define_trace.h:61,
>                  from include/trace/events/timer.h:342,
>                  from kernel/timer.c:50:
> include/trace/events/timer.h: In function 'ftrace_raw_output_itimer_state':
> include/trace/events/timer.h:280: warning: format '%lu' expects type 'long unsigned int', but argument 4 has type 'cputime_t'
> include/trace/events/timer.h: In function 'ftrace_raw_output_itimer_expire':
> include/trace/events/timer.h:317: warning: format '%lu' expects type 'long unsigned int', but argument 5 has type 'cputime_t'

Should be harmless with no runtime effects - the fix would be to 
harmonize the cputime_t types across architectures.

> Introduced by commit 3f0a525ebf4b8ef041a332bbe4a73aee94bb064b ("timers: Add tracepoints for itimer") from the tip tree.
> 
> cputime_t is variously "u64", "unsigned long long" and "unsigned 
> long" on different architectures.

Should be unsigned long i think. Most architectures use it as 
unsigned long via include/asm-generic/cputime.h, except these three:

 arch/ia64/include/asm/cputime.h:typedef u64 cputime_t;
 arch/powerpc/include/asm/cputime.h:typedef u64 cputime_t;
 arch/s390/include/asm/cputime.h:typedef unsigned long long cputime_t;

Or we could eliminate the type altogether as well and standardize on 
u64. Thomas?

	Ingo