Thread (3 messages) flat view 3 messages, 3 authors, 2012-08-13

Re: [PATCH net-next] time: jiffies_delta_to_clock_t() helper to the rescue

From: Thomas Gleixner <hidden>
Date: 2012-08-13 15:52:57
Also in: lkml

On Thu, 9 Aug 2012, Eric Dumazet wrote:
From: Eric Dumazet <edumazet@google.com>

Various /proc/net files sometimes report crazy timer values, expressed
in clock_t units.

This happens when an expired timer delta (expires - jiffies) is passed
to jiffies_to_clock_t().

This function has an overflow in :

return div_u64((u64)x * TICK_NSEC, NSEC_PER_SEC / USER_HZ);

commit cbbc719fccdb8cb (time: Change jiffies_to_clock_t() argument type
to unsigned long) only got around the problem.

As we cant output negative values in /proc/net/tcp without breaking
various tools, I suggest adding a jiffies_delta_to_clock_t() wrapper
that caps the negative delta to a 0 value.
That's correct for 64bit, but for 32bit you do the same for valid
timer values where expires < jiffies. So you might output 0 for valid
armed timers for quite a while around the point where jiffies are
close to the wrapping point.

Dunno if that's an issue, but it want's to be documented at least.

Thanks,

	tglx
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help