qemu-devel
[Top][All Lists]
Advanced

[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>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]