[dpdk-dev,v1] rte_timer:timer lag issue correction

Message ID 20160826015705.29744-1-skarmarkar@sonusnet.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Karmarkar Suyash Aug. 26, 2016, 1:57 a.m. UTC
  For Periodic timers ,if the lag gets introduced, the current code added additional
delay when the next peridoc timer was initialized by not taking into account the delay added, with this fix 
the code would start the next occurrence of timer keeping in account the lag added.Corrected the behavior.

Fixes:rte_timer: timer lag issue

---
 lib/librte_timer/rte_timer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Patch

diff --git a/lib/librte_timer/rte_timer.c b/lib/librte_timer/rte_timer.c
index 43da836..18782fa 100644
--- a/lib/librte_timer/rte_timer.c
+++ b/lib/librte_timer/rte_timer.c
@@ -613,7 +613,7 @@  void rte_timer_manage(void)
 			status.owner = (int16_t)lcore_id;
 			rte_wmb();
 			tim->status.u32 = status.u32;
-			__rte_timer_reset(tim, cur_time + tim->period,
+			__rte_timer_reset(tim, tim->expire + tim->period,
 				tim->period, lcore_id, tim->f, tim->arg, 1);
 			rte_spinlock_unlock(&priv_timer[lcore_id].list_lock);
 		}