[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for 1.2] qemu-timer: properly arm alarm timer fo
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH for 1.2] qemu-timer: properly arm alarm timer for timers set by device initialization |
Date: |
Mon, 3 Sep 2012 17:45:26 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Mon, Sep 03, 2012 at 05:34:32PM +0200, Paolo Bonzini wrote:
> QEMU will hang when fed the following command-line
>
> qemu-system-mips -kernel vmlinux-2.6.32-5-4kc-malta -append "console=ttyS0"
> -nographic -net none
>
> The -net none is important otherwise it seems some events are generated
> causing the things to work. When it doesn't work, the guest hangs when
> measuring the CPU frequency, after the following line:
>
> [ 0.000000] NR_IRQS:256
>
> Pressing a key on the serial port unblocks it, hinting that the problem
> is due to the recent elimination of the 1 second timeout in the main
> loop.
>
> The problem is that because init_timer_alarm sets the timer's pending
> flag to true, the alarm timer is never armed until after the first time
> through the main loop. Thus the bug started when QEMU started testing
> the pending flag in qemu_mod_timer (commit 1828be3, more alarm timer
> cleanup, 2010-03-10).
>
> But actually, it isn't true at all that a timer is pending when the
> alarm timer is created, and the real bug has been latent forever: the
> fix is to remove the bogus setting of pending flag.
>
> Reported-by: Aurelien Jarno <address@hidden>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> qemu-timer.c | 3 ---
> 1 file modificato, 3 rimozioni(-)
>
> diff --git a/qemu-timer.c b/qemu-timer.c
> index 5aea94e..c7a1551 100644
> --- a/qemu-timer.c
> +++ b/qemu-timer.c
> @@ -759,11 +759,8 @@ int init_timer_alarm(void)
> goto fail;
> }
>
> - /* first event is at time 0 */
> atexit(quit_timers);
> - t->pending = true;
> alarm_timer = t;
> -
> return 0;
>
> fail:
>
Thanks a lot that was quite fast!
Tested-by: Aurelien Jarno <address@hidden>
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net