[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Fix one timer range issue
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1228399928 0 # Node ID a71c610cc9e6625ba2605225c7402031ffad70a5 # Parent 12c0acf08caf3477b9786d141c1a6dfde7b92e40 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@xxxxxxxxx> --- xen/common/timer.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -r 12c0acf08caf -r a71c610cc9e6 xen/common/timer.c --- a/xen/common/timer.c Thu Dec 04 12:35:22 2008 +0000 +++ b/xen/common/timer.c Thu Dec 04 14:12:08 2008 +0000 @@ -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; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |