mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Fix one timer range issue
According to the timer sematic, the timer can be executed at any timer within [expires, expires_end], however, current implementation only allow timer to be executed after expires_end, which is not conform to the timer semantics. This patch fix the the SPECpower score regression (~5% downgrade) introduced by changeset 18744 "Change timer implementation to allow variable 'slop'" Signed-off-by: Yu Ke <ke.yu@intel.com>
This commit is contained in:
1 parent
2d27786f06
commit
7e3e35eed6
1 file changed
+2
-2
+2
-2
@@ -396,7 +396,7 @@ static void timer_softirq_action(void)
|
||||
|
||||
/* Execute ready heap timers. */
|
||||
while ( (GET_HEAP_SIZE(heap) != 0) &&
|
||||
((t = heap[1])->expires_end < now) )
|
||||
((t = heap[1])->expires < now) )
|
||||
{
|
||||
remove_from_heap(heap, t);
|
||||
t->status = TIMER_STATUS_inactive;
|
||||
@@ -404,7 +404,7 @@ static void timer_softirq_action(void)
|
||||
}
|
||||
|
||||
/* Execute ready list timers. */
|
||||
while ( ((t = ts->list) != NULL) && (t->expires_end < now) )
|
||||
while ( ((t = ts->list) != NULL) && (t->expires < now) )
|
||||
{
|
||||
ts->list = t->list_next;
|
||||
t->status = TIMER_STATUS_inactive;
|
||||
|
||||