Re: [RFC PATCH] Btrfs: fix old data problem caused by aio vs dio

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

 



On Tue, Jun 19, 2012 at 06:39:47AM -0600, Miao Xie wrote:
> The 209th case of xfstests failed because of the race between aio and dio. The
> detail reason is following:
> 	Task1		Task2			Btrfs-worker
> 			invalidate pages
> 	read pages
> 			do direct io
> 			invalidate pages*
> 						finish ordered io
> 	read data from
> 	pages
> 
> * This step failed because the kernel found the ordered extent object that
> covered the pages and thought the pages were still under busy. And then Task1
> read the old data from those pages.
> 
> And beside that, I think all the operations including metadata update and
> bit cleanup of extent state should complete before the dio ends.
> 

Thanks for tracking this one down.  I'd really like to keep Josef's
change because it makes a very big difference for latencies.  The read
operation needs to wait until the ordered IO is completely finished.

-chris
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux