kvm: Fix a case where the run timers weren't armed properly
authorAndreas Sandberg <andreas@sandberg.pp.se>
Thu, 19 Sep 2013 15:55:03 +0000 (17:55 +0200)
committerAndreas Sandberg <andreas@sandberg.pp.se>
Thu, 19 Sep 2013 15:55:03 +0000 (17:55 +0200)
commit211c10b46d9773fb9aacb0a85b641df6434ce475
treeeffbbcf147c8408dbe29fd622932df0139b056d0
parenta6e723e4d6240be496c284d3c4d7837850605e33
kvm: Fix a case where the run timers weren't armed properly

There is a possibility that the timespec used to arm a timer becomes
zero if the number of ticks used when arming a timer is close to the
resolution of the timer. Due to the semantics of POSIX timers, this
actually disarms the timer. This changeset fixes this issue by
eliminating the rounding error (we always round away from zero
now). It also reuses the minimum number of cycles, which were
previously only used for cycle-based timers, to calculate a more
useful resolution.
src/cpu/kvm/timer.cc