[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH]: Make Xen 3.1 IDE flush on O_DIRECT with drive caching off

On Tue, Feb 26, 2008 at 09:41:30AM -0500, Chris Lalancette wrote:
> All,
>      Long ago Xen added code to the device model to basically do an fsync()
> after every data write if the user in the guest specified that IDE write 
> caching
> should be disabled.  This works fine, except in the case where you are doing
> O_DIRECT writes inside the guest (ala dd if=/dev/zero of=/dev/hdb 
> oflag=direct).
>  This is because you can get out of ide_write_dma_cb() in the middle of the 
> loop
> without going through the logic to sync.  This simple patch makes sure that 
> you
> always check (and sync) inside the write callback.
> This patch applies to xen-3.1-testing.hg; I still have to test 3.2 (and the 
> new
> AIO code) to see if it is affected by this bug.
> Signed-off-by: Chris Lalancette <clalance@xxxxxxxxxx>

  Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx>

I've gone through the logic in ide_write_dma_cb() and  breaking out of the
loop is the thing todo in this scenario. The new AIO code in 3.2 looks like
it suffers from a similar problem, with one of the code paths missing the
sync due to a mis-placed label / goto pair.

|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.