On Mon, May 21, 2012 at 12:00 PM, ronnie sahlberg <ronniesahlb...@gmail.com> wrote: > Yes, I use IDE since I boot from this LUN. > > > I just managed to track it down to the IDE changes. > > It looks like basically this change triggered it : > > commit bef0fd5958120542f126f2dedbfce65d8839a94d > Author: Stefan Hajnoczi <stefa...@linux.vnet.ibm.com> > Date: Thu Mar 29 10:31:30 2012 +0100 > ide: convert ide_sector_read() to asynchronous I/O > > > Stefan, any ideas? Ill continue trying to understand the IDE code > tomorrow and maybe I make some progress.
It sounds like aio for iSCSI is broken. IDE submits bdrv_aio_readv() requests which iSCSI handles. QEMU main loop should find that the iSCSI socket file descriptor becomes readable when the SCSI response arrives. We can then report I/O completion back to the guest. However, it appears that completions are not triggering. My guess is that once the OS is fully booted you don't see the problem because other events are pumping the main loop besides a 55ms timer. Therefore this problem probably applies across the board but it's most noticable when the BIOS/bootloader/early OS is executing. Have you added debugging into block/iscsi.c or libiscsi to watch when read handlers get called? Using tcpdump or strace might also be useful to figure out when the reply becomes available and why we aren't registering a read handler function with the QEMU main loop. Stefan