Thread (29 messages) 29 messages, 5 authors, 2017-03-24

Re: [net-next PATCH v2 5/8] net: Track start of busy loop instead of when it should end

From: Eric Dumazet <hidden>
Date: 2017-03-24 11:17:10
Also in: lkml, netdev

On Thu, 2017-03-23 at 22:55 -0700, Alexander Duyck wrote:
Right, but time_after assumes roll over.  When you are using a time
value based off of local_clock() >> 10, you don't ever roll over when
you do addition.  Just the clock rolls over.  At least on 64 bit
systems.

So if local time approaches something like all 1's, and we have
shifted it by 10 it is then the max it can ever reach is
0x003FFFFFFFFFFFFF.  I can add our loop time to that and it won't roll
over.  In the mean time the busy_loop_us_ can never exceed whatever I
added to that so we are now locked into a loop.  I realize I am
probably being pedantic, and it will have an exceedingly small rate of
occurrence, but it is still an issue.
Do you realize that a 64bit clock wont rollover before the host has
reached 584 years of uptime ?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help