[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 4/5] qemu-timer: Remove function alarm_has_dynticks
From: |
Stefan Weil |
Subject: |
[Qemu-devel] [PATCH 4/5] qemu-timer: Remove function alarm_has_dynticks |
Date: |
Fri, 20 Apr 2012 12:03:05 +0200 |
Some time ago, the last time which did not have dynticks was removed,
so now all timers have dynticks.
I also removed a misleading error message for the dynticks timer.
If timer_create fails, there is already an error message, and
QEMU will use the unix timer which also provides dynamic ticks,
therefore dynamic ticks are not disabled.
Signed-off-by: Stefan Weil <address@hidden>
---
qemu-timer.c | 31 ++++++-------------------------
1 files changed, 6 insertions(+), 25 deletions(-)
diff --git a/qemu-timer.c b/qemu-timer.c
index 73ffe25..1fbc2df 100644
--- a/qemu-timer.c
+++ b/qemu-timer.c
@@ -87,11 +87,6 @@ static bool qemu_timer_expired_ns(QEMUTimer *timer_head,
int64_t current_time)
return timer_head && (timer_head->expire_time <= current_time);
}
-static inline int alarm_has_dynticks(struct qemu_alarm_timer *t)
-{
- return !!t->rearm;
-}
-
static int64_t qemu_next_alarm_deadline(void)
{
int64_t delta;
@@ -124,7 +119,6 @@ static int64_t qemu_next_alarm_deadline(void)
static void qemu_rearm_alarm_timer(struct qemu_alarm_timer *t)
{
int64_t nearest_delta_ns;
- assert(alarm_has_dynticks(t));
if (!rt_clock->active_timers &&
!vm_clock->active_timers &&
!host_clock->active_timers) {
@@ -483,9 +477,8 @@ static void host_alarm_handler(int host_signum)
if (!t)
return;
- if (alarm_has_dynticks(t) ||
- qemu_next_alarm_deadline () <= 0) {
- t->expired = alarm_has_dynticks(t);
+ if (qemu_next_alarm_deadline() <= 0) {
+ t->expired = true;
t->pending = true;
qemu_notify_event();
}
@@ -524,10 +517,6 @@ static int dynticks_start_timer(struct qemu_alarm_timer *t)
if (timer_create(CLOCK_REALTIME, &ev, &host_timer)) {
perror("timer_create");
-
- /* disable dynticks */
- fprintf(stderr, "Dynamic Ticks disabled\n");
-
return -1;
}
@@ -636,8 +625,8 @@ static void CALLBACK mm_alarm_handler(UINT uTimerID, UINT
uMsg,
if (!t) {
return;
}
- if (alarm_has_dynticks(t) || qemu_next_alarm_deadline() <= 0) {
- t->expired = alarm_has_dynticks(t);
+ if (qemu_next_alarm_deadline() <= 0) {
+ t->expired = true;
t->pending = true;
qemu_notify_event();
}
@@ -646,7 +635,6 @@ static void CALLBACK mm_alarm_handler(UINT uTimerID, UINT
uMsg,
static int mm_start_timer(struct qemu_alarm_timer *t)
{
TIMECAPS tc;
- UINT flags;
memset(&tc, 0, sizeof(tc));
timeGetDevCaps(&tc, sizeof(tc));
@@ -654,18 +642,11 @@ static int mm_start_timer(struct qemu_alarm_timer *t)
mm_period = tc.wPeriodMin;
timeBeginPeriod(mm_period);
- flags = TIME_CALLBACK_FUNCTION;
- if (alarm_has_dynticks(t)) {
- flags |= TIME_ONESHOT;
- } else {
- flags |= TIME_PERIODIC;
- }
-
mm_timer = timeSetEvent(1, /* interval (ms) */
mm_period, /* resolution */
mm_alarm_handler, /* function */
(DWORD_PTR)t, /* parameter */
- flags);
+ TIME_ONESHOT | TIME_CALLBACK_FUNCTION);
if (!mm_timer) {
fprintf(stderr, "Failed to initialize win32 alarm timer: %ld\n",
@@ -720,7 +701,7 @@ static int win32_start_timer(struct qemu_alarm_timer *t)
host_alarm_handler,
t,
1,
- alarm_has_dynticks(t) ? 3600000 : 1,
+ 3600000,
WT_EXECUTEINTIMERTHREAD);
if (!success) {
--
1.7.9
- [Qemu-devel] [PATCH 0/5] qemu-timer: Clean code, Stefan Weil, 2012/04/20
- [Qemu-devel] [PATCH 4/5] qemu-timer: Remove function alarm_has_dynticks,
Stefan Weil <=
- [Qemu-devel] [PATCH 2/5] qemu-timer: Remove unused function qemu_alarm_pending, Stefan Weil, 2012/04/20
- [Qemu-devel] [PATCH 5/5] qemu-timer: Optimize data structures, Stefan Weil, 2012/04/20
- [Qemu-devel] [PATCH 3/5] qemu-timer: Use bool, false, true for boolean values, Stefan Weil, 2012/04/20
- [Qemu-devel] [PATCH 1/5] qemu-timer: Remove redundant include statements, Stefan Weil, 2012/04/20
- Re: [Qemu-devel] [PATCH 0/5] qemu-timer: Clean code, Paolo Bonzini, 2012/04/20
- Re: [Qemu-devel] [PATCH 0/5] qemu-timer: Clean code, Anthony Liguori, 2012/04/23