linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Allison Henderson <achender@linux.vnet.ibm.com>
To: Yongqiang Yang <xiaoqiangnk@gmail.com>
Cc: Tao Ma <tm@tao.ma>, Hugh Dickins <hughd@google.com>,
	"Ted Ts'o" <tytso@mit.edu>, Curt Wohlgemuth <curtw@google.com>,
	Surbhi Palande <csurbhi@gmail.com>, Rafael Wysocki <rjw@sisk.pl>,
	linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: Bug with "fix partial page writes" [3.2-rc regression]
Date: Mon, 05 Dec 2011 21:05:30 -0700	[thread overview]
Message-ID: <4EDD948A.4000506@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAGBYx2aPjDY_xXqPw4=Urr5nUMQbHxzgwGu9mZ8fCe7mFsrVXw@mail.gmail.com>

On 12/05/2011 08:44 PM, Yongqiang Yang wrote:
> On Tue, Dec 6, 2011 at 11:33 AM, Tao Ma<tm@tao.ma>  wrote:
>> On 12/06/2011 11:08 AM, Yongqiang Yang wrote:
>>> Hi Allison,
>>>
>>> I noticed another problem which has nothing to do with punching hole.
>>>   __block_write_begin does not zero buffers beyond EOF.(I guess you
>> yes, that is expected.
>>> tried to zero them in your code, am I right? )  When users mapread
>>> beyond EOF,  users get non-zero data.  I am not sure zero or non-zero
>>> data should be, but fsx thinks they should be zero data and reports an
>>> error.
>> why users can read the data passing EOF? I am also puzzled. Punching
>> hole will do this? I don't think it's right.
> According to code, fiemap_fault handles the case right.   But I met
> the error - 'non-zero data beyond EOF' reported by fsx.  It is
> strange.  It seems that uptodate status is set wrong.  Just a guess:-)
>
> I am guessing Allison met the problem before and tried to fix it in
> write path by zeroing buffers beyond EOF.

Yes I did run into something similar.  I found 2 cases that involved EOF:
1. A truncate shortens EOF, but only zeroed to the end of the block, but 
not to the end of the page.  This was corrected by "[PATCH 5/6 v7] ext4: 
fix fsx truncate failure"

2. A write extends EOF, but does not zero all of the page beyond EOF, 
and that was what "[PATCH 6/6 v7] ext4: fix partial page writes" was 
supposed to address.

I am still digging through tracing output at the moment, so I dont have 
a very good explanation right now, but I will keep folks posted if I 
find something.

Allison Henderson


>
> Yongqiang.
>>
>> Thanks
>> Tao
>>>
>>> It I understand the problem right, it happens more often with punch hole.
>>>
>>> Yongqiang.
>>> On Tue, Dec 6, 2011 at 9:40 AM, Allison Henderson
>>> <achender@linux.vnet.ibm.com>  wrote:
>>>> On 12/05/2011 04:38 PM, Hugh Dickins wrote:
>>>>>
>>>>> On Mon, 21 Nov 2011, Hugh Dickins wrote:
>>>>>>
>>>>>> On Mon, 21 Nov 2011, Ted Ts'o wrote:
>>>>>>>
>>>>>>> On Sun, Nov 20, 2011 at 12:59:10PM -0800, Hugh Dickins wrote:
>>>>>>>>
>>>>>>>> On Tue, 8 Nov 2011, Curt Wohlgemuth wrote:
>>>>>>>> It appears that there's a bug with this patch:
>>>>>
>>>>>
>>>>> This has been outstanding for a month now, and we've heard no progress:
>>>>> please revert commit 02fac1297eb3 "ext4: fix partial page writes" for rc5.
>>>>>
>>>>> The problems appear on a 1k-blocksize filesystem under memory pressure:
>>>>> the hunk in ext4_da_write_end() causes oops, because it's playing with
>>>>> a page after generic_write_end() dropped our last reference to it; and
>>>>> backing out the hunk in ext4_da_write_begin() is then found to stop
>>>>> rare data corruption seen when kbuilding.
>>>>>
>>>>> Although I earlier reported that backing out the patch caused an fsx
>>>>> test to fail earlier, I've since found great variation in how soon it
>>>>> fails, and seen it fail just as quickly with 02fac1297eb3 still in.
>>>>> I also reported that I had to go back to 2.6.38 for fsx not to fail
>>>>> under memory pressure: you won't be surprised that that turned out to
>>>>> be because 2.6.38 defaults nomblk_io_submit but 2.6.39 mblk_io_submit.
>>>>>
>>>>> Thanks,
>>>>> Hugh
>>>>>
>>>>
>>>>
>>>> Hi there,
>>>>
>>>> Have you tried Yongqiang's patch "[PATCH 1/2] ext4: let mpage_submit_io
>>>> works well when blocksize<  pagesize" ?  I have tried it and it does seem to
>>>> help, but I am still running into some failures that I am trying to debug,
>>>> but let please let us know if it helps the issues that you are seeing.  Thx!
>>>>
>>>> Allison Henderson
>>>>
>>>
>>>
>>>
>>
>
>
>


  reply	other threads:[~2011-12-06  4:07 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAO81RMa4uRsOsaK4G78EDvOenJpEdTp4y+rtkiDxaK9cASbMtA@mail.gmail.com>
2011-11-20 20:59 ` Bug with "fix partial page writes" Hugh Dickins
2011-11-21  1:59   ` Yongqiang Yang
2011-11-21 17:38     ` Allison Henderson
2011-11-22  1:44       ` Yongqiang Yang
2011-11-21 16:56   ` Ted Ts'o
2011-11-21 22:04     ` Hugh Dickins
2011-12-05 23:38       ` Bug with "fix partial page writes" [3.2-rc regression] Hugh Dickins
2011-12-06  1:40         ` Allison Henderson
2011-12-06  3:08           ` Yongqiang Yang
2011-12-06  3:20             ` Yongqiang Yang
2011-12-06  3:33             ` Tao Ma
2011-12-06  3:44               ` Yongqiang Yang
2011-12-06  4:05                 ` Allison Henderson [this message]
2011-12-06  7:57                   ` Yongqiang Yang
2011-12-06  8:55           ` Hugh Dickins
2011-12-06  9:32             ` Yongqiang Yang
2011-12-06 22:31               ` Hugh Dickins
2011-12-06 21:15             ` Allison Henderson
2011-12-06 22:47               ` Hugh Dickins
2011-12-07  8:28               ` Yongqiang Yang
2011-12-07 17:04                 ` Allison Henderson
2011-12-08  5:10                   ` Allison Henderson
2011-12-08 17:39                     ` Hugh Dickins
2011-12-08 18:12                       ` Andy Whitcroft
2011-12-09 13:33                         ` Andy Whitcroft
2011-12-09 13:44                           ` Yongqiang Yang
2011-12-09 16:37                             ` Allison Henderson
2011-12-14  4:12                       ` Ted Ts'o
2011-12-14 18:07                         ` Hugh Dickins

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EDD948A.4000506@linux.vnet.ibm.com \
    --to=achender@linux.vnet.ibm.com \
    --cc=csurbhi@gmail.com \
    --cc=curtw@google.com \
    --cc=hughd@google.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rjw@sisk.pl \
    --cc=tm@tao.ma \
    --cc=tytso@mit.edu \
    --cc=xiaoqiangnk@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).