Messages in this thread |  | | | Date | Mon, 30 Mar 2009 11:55:23 +0200 | | From | Frederic Weisbecker <> | | Subject | Re: [PATCH] tracing: fix incorrect return type of ns2usecs() |
| |
On Mon, Mar 30, 2009 at 11:52:13AM +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 is 32bits in i386. > > Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> > Reported-by: Li Zefan <lizf@cn.fujitsu.com> > Tested-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
|  |