[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 2/3] Correct alarm deadline computation
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] Re: [PATCH 2/3] Correct alarm deadline computation |
Date: |
Tue, 01 Feb 2011 14:01:56 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
On 2011-01-31 22:51, Paolo Bonzini wrote:
> When the QEMU_CLOCK_HOST clock was added, computation of its
> deadline was added to qemu_next_deadline, which is correct but
> incomplete.
>
> I noticed this by reading the very convoluted rules whereby
> qemu_next_deadline_dyntick is computed, which miss QEMU_CLOCK_HOST
> when use_icount is true. This patch inlines qemu_next_deadline
> into qemu_next_deadline_dyntick, and then corrects the logic to skip
> only QEMU_CLOCK_VIRTUAL when use_icount is true.
>
> Signed-off-by: Paolo Bonzini <address@hidden>
> Cc: Jan Kiszka <address@hidden>
> ---
> qemu-timer.c | 15 +++++++++++----
> 1 files changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/qemu-timer.c b/qemu-timer.c
> index 60283a8..c19d0a2 100644
> --- a/qemu-timer.c
> +++ b/qemu-timer.c
> @@ -724,11 +724,18 @@ static uint64_t qemu_next_deadline_dyntick(void)
> int64_t delta;
> int64_t rtdelta;
>
> - if (use_icount)
> + if (!use_icount && active_timers[QEMU_CLOCK_VIRTUAL]) {
> + delta = active_timers[QEMU_CLOCK_VIRTUAL]->expire_time -
> + qemu_get_clock(vm_clock);
> + } else {
> delta = INT32_MAX;
> - else
> - delta = qemu_next_deadline();
> -
> + }
> + if (active_timers[QEMU_CLOCK_HOST]) {
> + int64_t hdelta = active_timers[QEMU_CLOCK_HOST]->expire_time -
> + qemu_get_clock(host_clock);
> + if (hdelta < delta)
> + delta = hdelta;
> + }
> if (active_timers[QEMU_CLOCK_REALTIME]) {
> rtdelta = (active_timers[QEMU_CLOCK_REALTIME]->expire_time -
> qemu_get_clock_ns(rt_clock));
Looks good to me. I guess this applies without the first patch? Then it
should go in (unless you are working on a new version for 1/3).
Thanks for fixing this.
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
- [Qemu-devel] Re: [PATCH 2/3] Correct alarm deadline computation,
Jan Kiszka <=