Am 19.05.2010 09:29, schrieb Christoph Hellwig:
On Tue, May 18, 2010 at 03:22:36PM +0200, Kevin Wolf wrote:
I think it's stuck here in an endless loop:
while (laiocb->ret == -EINPROGRESS)
qemu_laio_completion_cb(laiocb->ctx);
Can you verify this by single-stepping one or two loop iterations? ret
and errno after the read call could be interesting, too.
Maybe the compiler is just too smart. Without some form of barrier
it could just optimize the loop away as laiocb->ret couldn't change
in a normal single-threaded environment.
It probably could in theory, but in practice we're in a read() inside
qemu_laio_completion, so it didn't do it here.