[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: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2 0/2] ide: convert pio code path to asynchronous I/O |
Date: |
Wed, 18 Apr 2012 15:29:48 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120329 Thunderbird/11.0.1 |
Il 29/03/2012 11:31, Stefan Hajnoczi ha scritto:
> 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(-)
>
Reviewed-by: Paolo Bonzini <address@hidden>
- Re: [Qemu-devel] [PATCH v2 0/2] ide: convert pio code path to asynchronous I/O,
Paolo Bonzini <=