[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 4/5] qemu-timer: Remove function alarm_has_dynti
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 4/5] qemu-timer: Remove function alarm_has_dynticks |
Date: |
Fri, 20 Apr 2012 12:13:00 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120329 Thunderbird/11.0.1 |
Il 20/04/2012 12:03, Stefan Weil ha scritto:
> 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) {
This is actually if (true).
> + 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();
> }
This too.
Otherwise the series look good, thanks!
Paolo
> @@ -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) {
- [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, 2012/04/20
- Re: [Qemu-devel] [PATCH 4/5] qemu-timer: Remove function alarm_has_dynticks,
Paolo Bonzini <=
- [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