|
From: | Paolo Bonzini |
Subject: | Re: [Qemu-devel] [PATCH v2] block: avoid SIGUSR2 |
Date: | Fri, 28 Oct 2011 13:50:24 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20110930 Thunderbird/7.0.1 |
On 10/28/2011 01:33 PM, Kevin Wolf wrote:
I'm afraid that we can only avoid things like this reliably if we convert all devices to be direct users of AIO/coroutines. The current block layer infrastructure doesn't emulate the behaviour of bdrv_read accurately as bottom halves can be run in the nested main loop. For floppy, the following seems to be a quick fix (Lucas, Cleber, does this solve your problems?), though it's not very satisfying. And I'm not quite sure yet why it doesn't always happen with kill() in posix-aio-compat.c.
Another "fix" is to change idle bottom halves (at least the one in hw/dma.c) to 10ms timers.
Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |