Re: [Qemu-devel] Re: [PATCH] Fix freezing bug in curses console

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2009/2/27 Anthony Liguori <aliguori@xxxxxxxxxx>:
> Matthew Bloch wrote:
>>
>> Hi there,
>>
>> We are running lots of kvm processes in screen and found that about 1 in
>> 5 froze shortly after startup startup with a backtrace like this one:
>>
>> #0  0xf7c7fcd9 in pthread_exit () from /lib/tls/libc.so.6
>> #1  0xf7cfbe62 in wresize () from /lib/libncurses.so.5
>> #2  0xf7cfb7ab in is_term_resized () from /lib/libncurses.so.5
>> #3  0xf7cfb877 in is_term_resized () from /lib/libncurses.so.5
>> #4  0xf7cfba31 in resize_term () from /lib/libncurses.so.5
>> #5  0x080d3dd9 in vga_init ()
>> #6  <signal handler called>
>> #7  0xf7c0da5b in free () from /lib/tls/libc.so.6
>> #8  0xf7c0effe in calloc () from /lib/tls/libc.so.6
>> #9  0xf7cf222e in newpad () from /lib/libncurses.so.5
>> #10 0x080d3549 in vga_init ()
>>
>> We're just using the lenny version of kvm from 2008-12-16.
>>
>> On casual inspection, the SIGWINCH signal handling looked ropey to me -
>> grandpa always told me not to do any real work in a signal handler, and
>> the backtrace suggested re-entrancy problems in curses, so I changed the
>> behaviour to set a flag and do the work in the main loop instead.  Maybe
>> I'm reading the backtrace wrong.
>>
>> So far that means that when you resize the window, the display is
>> corrupt until the VM outputs some text, or the user hits a key.  But I
>> think it has solved the freezing / crashing bug too - would appreciate
>> any comments on my analysis or proposed solution.
>>
>
> It's racy with select().  A better fix would be to create a pipe and write
> to that pipe in the SIGWINCH handler.  You should then register an io
> callback using qemu_set_fd_handler2() that does the actions for SIGWINCH.

Maybe a bottom half would work?  The scheduling of a bh shouldn't
constitute "real work".

Cheers
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux