xfs
[Top] [All Lists]

Re: [PATCH v4 5/7] fs: prioritize and separate direct_io from dax_io

To: Dan Williams <dan.j.williams@xxxxxxxxx>
Subject: Re: [PATCH v4 5/7] fs: prioritize and separate direct_io from dax_io
From: Boaz Harrosh <boaz@xxxxxxxxxxxxx>
Date: Mon, 02 May 2016 21:32:55 +0300
Cc: Vishal Verma <vishal.l.verma@xxxxxxxxx>, "linux-nvdimm@xxxxxxxxxxxx" <linux-nvdimm@xxxxxxxxxxxx>, linux-block@xxxxxxxxxxxxxxx, Jan Kara <jack@xxxxxxx>, Matthew Wilcox <matthew@xxxxxx>, Dave Chinner <david@xxxxxxxxxxxxx>, "linux-kernel@xxxxxxxxxxxxxxx" <linux-kernel@xxxxxxxxxxxxxxx>, XFS Developers <xfs@xxxxxxxxxxx>, Jens Axboe <axboe@xxxxxx>, Linux MM <linux-mm@xxxxxxxxx>, Al Viro <viro@xxxxxxxxxxxxxxxxxx>, Christoph Hellwig <hch@xxxxxxxxxxxxx>, linux-fsdevel <linux-fsdevel@xxxxxxxxxxxxxxx>, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>, linux-ext4 <linux-ext4@xxxxxxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=plexistor-com.20150623.gappssmtp.com; s=20150623; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-transfer-encoding; bh=WbU+KyDNVZF/47U7GLr1zQDJMc9m3qLpvPM7I0hcmWw=; b=Q9uiuQ2u7ss+E91V3ess3vATYelGvRbeBHmf5OsARd2Phri7Fv+H3UxR0Iqz302WxR Fe6sSW6W8xE1EVLtBH5mY/7OBlRNFOEuwpiq7Fa02+5yoanA+3+6+kOdMjW+yt+SINfh o4NUsVD6DGAuNh2R68ZDqI77EvVEpnvU+4GVkMHTFDKHWAqnnIUXrQKtR6ScjLKBYH4E /V3BG68qrFQc5th6NF8tAgWiEG0KLaWazFYzgK8AOLNCFvpq+E4Mh5pPI2ydLas+ovsh Jjox6oueYwdBFAD5ORhob5Hyj8in3jmKEI+XJOROc+emZ49EvU2NOIM2d4IEorE2dJ/W 0idw==
In-reply-to: <CAPcyv4hGV07gpADT32xn=3brEq75P4RJA592vp-1A+jXMQCeOQ@xxxxxxxxxxxxxx>
References: <1461878218-3844-1-git-send-email-vishal.l.verma@xxxxxxxxx> <1461878218-3844-6-git-send-email-vishal.l.verma@xxxxxxxxx> <5727753F.6090104@xxxxxxxxxxxxx> <CAPcyv4jWPTDbbw6uMFEEt2Kazgw+wb5Pfwroej--uQPE+AtUbA@xxxxxxxxxxxxxx> <57277EDA.9000803@xxxxxxxxxxxxx> <CAPcyv4jnz69a3S+XZgLaLojHZmpfoVXGDkJkt_1Q=8kk0gik9w@xxxxxxxxxxxxxx> <572791E1.7000103@xxxxxxxxxxxxx> <CAPcyv4hGV07gpADT32xn=3brEq75P4RJA592vp-1A+jXMQCeOQ@xxxxxxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
On 05/02/2016 09:10 PM, Dan Williams wrote:
<>
> 
> The semantic I am talking about preserving is:
> 
> buffered / unaligned write of a bad sector => -EIO on reading into the
> page cache
> 

What about aligned buffered write? like write 0-to-eof
This still broken? (and is what restore apps do)

> ...and that the only guaranteed way to clear an error (assuming the
> block device supports it) is an O_DIRECT write.
> 

Sure fixing dax_do_io will guaranty that.

<>
> I still think we're talking past each other on this point.  

Yes we are!

> This patch
> set is not overloading error semantics, it's fixing the error handling
> problem that was introduced in this commit:
> 
>    d475c6346a38 dax,ext2: replace XIP read and write with DAX I/O
> 
> ...where we started overloading O_DIRECT and dax_do_io() semantics.
> 

But above does not fix them does it? it just completely NULLs DAX for
O_DIRECT which is a great pity, why did we do all this work in the first
place.

And then it keeps broken the aligned buffered writes, which are still
broken after this set.

I have by now read the v2 patches. And I think you guys did not yet try
the proper fix for dax_do_io. I think you need to go deeper into the loops
and selectively call bdev_* when error on a specific page copy. No need to
go through direct_IO path at all.
Do you need that I send you a patch to demonstrate what I mean?

But yes I feel too that "we're talking past each other". I did want
to come to LSF and talk to you, but was not invited. Should I call you?

Thanks
Boaz

<Prev in Thread] Current Thread [Next in Thread>