[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-stable] [Qemu-devel] [PATCH for 1.2] qemu-timer: properly arm
From: |
Michael Tokarev |
Subject: |
Re: [Qemu-stable] [Qemu-devel] [PATCH for 1.2] qemu-timer: properly arm alarm timer for timers set by device initialization |
Date: |
Tue, 04 Sep 2012 11:06:48 +0400 |
User-agent: |
Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.6esrpre) Gecko/20120817 Icedove/10.0.6 |
On 03.09.2012 19:34, 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:
This also fixes the pty-char hang I reported yesterday
in thread "apparently missing yet another notify_event()".
Tested-By: Michael Tokarev <address@hidden>
This should go to 1.1-stable too, as this problem exists
there, with both -net none and -serial pty being reproducers.
Cc'ing -stable.
Thanks!
/mjt
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-stable] [Qemu-devel] [PATCH for 1.2] qemu-timer: properly arm alarm timer for timers set by device initialization,
Michael Tokarev <=