From: Matteo Frigo <address@hidden>
Date: Wed, 02 Apr 2008 20:41:24 -0400
To: address@hidden
Subject: [Qemu-devel] QEMU/KVM SCSI lock up
X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4)
X-Mailman-Approved-At: Thu, 03 Apr 2008 00:59:59 -0400
Reply-To: address@hidden
kvm-64 hangs under heavy disk I/O with scsi disks. To reproduce,
create a fresh qcow2 disk, boot linux, and execute
dd if=/dev/sdX of=/dev/null bs=1M
on the fresh disk. See also
https://sourceforge.net/tracker/?func=detail&atid=893831&aid=1895893&group_id=180599
I have attached a patch that appears to fix the problem. The bug
seems to be the following. scsi_read_data() does the following
bdrv_aio_read()
r->sector += n;
r->sector_count -= n;
For reasons that I do not fully understand, bdrv_aio_read() does
not return immediately, but instead it calls scsi_read_data()
recursively.