Messages in this thread |  | | | Subject | Re: [PATCH] tracing: fix incorrect return type of ns2usecs() V2 | | From | Steven Rostedt <> | | Date | Fri, 03 Apr 2009 12:13:52 -0400 |
| |
On Mon, 2009-03-30 at 13:48 +0800, Lai Jiangshan wrote: > Impact: fix time output bug in 32bits system > > ns2usecs() returns 'long', it's incorrect. > > (In i386) > # cat trace > ... > <idle>-0 [000] 521.442100: _spin_lock <-tick_do_update_jiffies64 > <idle>-0 [000] 521.442101: do_timer <-tick_do_update_jiffies64 > <idle>-0 [000] 521.442102: update_wall_time <-do_timer > <idle>-0 [000] 521.442102: update_xtime_cache <-update_wall_time > .... > (It always print the time less than 2200 seconds besides ...) > Because 'long' is 32bits in i386. ( (1<<31) useconds is about 2200 seconds) > > # cat trace > ... > <idle>-0 [001] 4154502640.134759: rcu_bh_qsctr_inc <-__do_softirq > <idle>-0 [001] 4154502640.134760: _local_bh_enable <-__do_softirq > <idle>-0 [001] 4154502640.134761: idle_cpu <-irq_exit > ... > (very large value) > Because 'long' is a signed type and it is 32bits in i386. > > Changed from V1: > return 'unsigned long long' instead of 'cycle_t' > > Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> > Reported-by: Li Zefan <lizf@cn.fujitsu.com>
Thanks, applied.
-- Steve
|  |