[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 0/2] ide: convert pio code path to asynchrono
From: |
Zhi Yong Wu |
Subject: |
Re: [Qemu-devel] [PATCH v2 0/2] ide: convert pio code path to asynchronous I/O |
Date: |
Wed, 18 Apr 2012 21:40:57 +0800 |
On Thu, Mar 29, 2012 at 5:31 PM, Stefan Hajnoczi
<address@hidden> wrote:
> IDE PIO mode is currently implemented using synchronous I/O functions.
> There's
> no need to do this because the IDE interface is actually designed with polling
> and interrupts in mind - we can do asynchronous I/O and let the guest know
> when
> the operation has completed. The benefit of asynchronous I/O is that the
> guest
> can continue executing code and is more responsive.
>
> The second aim of this conversion is to avoid calling bdrv_read()/bdrv_write()
> since they do not work with I/O throttling. This means guests should now boot
> IDE drives successfully when I/O throttling is enabled.
>
> Note that ATAPI is not converted yet and still uses bdrv_read() in two
> locations. A future patch will have to convert ATAPI so CD-ROMs also do
> asynchronous I/O.
>
> I have tested both Windows 7 Home Premium and Red Hat Enterprise Linux 6.0
> guests with these patches. In Windows, use the device manager to disable DMA
> on the IDE channels. Under recent Linux kernels, use the libata.dma=0 kernel
> parameter.
>
> Chris and Richard: Please test this to confirm that it fixes the hang you
> reported.
>
> v2:
> * Keep aiocb and cancel request on reset [mjt]
>
> Stefan Hajnoczi (2):
> ide: convert ide_sector_read() to asynchronous I/O
> ide: convert ide_sector_write() to asynchronous I/O
>
> hw/ide/core.c | 137 +++++++++++++++++++++++++++++++++++++---------------
> hw/ide/internal.h | 3 +
> 2 files changed, 100 insertions(+), 40 deletions(-)
>
> --
> 1.7.9.1
>
>
Zhi Yong Wu <address@hidden>
--
Regards,
Zhi Yong Wu