2009-09-25 12:48:01

by Ferenc Wagner

[permalink] [raw]
Subject: Re: mmap vs mtime in 2.6.26 and up

Ferenc Wagner <[email protected]> writes:

> Christoph Hellwig <[email protected]> writes:
>
>> On Fri, May 15, 2009 at 12:50:54PM -0400, Christoph Hellwig wrote:
>>
>>> On Fri, May 15, 2009 at 06:40:29PM +0200, Ferenc Wagner wrote:
>>>
>>>> Thanks for the analysis. Unfortunately I don't nearly know enough to
>>>> work on this issue, but would like to track it as it affects our
>>>> backup system. So, shouldn't #2645 be reopened again?
>>>
>>> Yes, definitively as the current "fix" is incorrected. I'll try to cook
>>> up a correct version once I get some time.
>>
>> Doing this correctly in the framework of the current codee is
>> unfortunately not so easy, as calling ->setattr requires taking i_mutex
>> which we can't in the pagefaul path.
>>
>> To fix this properly we need to actually update the timestamps during
>> msync and co as done by the patches from Miklos:
>> http://lkml.org/lkml/2007/2/28/166
>> and Peter:
>> http://lkml.org/lkml/2006/5/31/176
>
> http://bugzilla.kernel.org/show_bug.cgi?id=2645#c53 shows that Anton
> doesn't quite agree with you on this. I really can't tell, would you
> (or anybody from the accused XFS community) please comment? Or did
> you perhaps fix it meanwhile? I can't easily test newer kernels, but
> I will if there's some chance.

I added some fresh test results to
http://bugzilla.kernel.org/show_bug.cgi?id=2645. In short, under
2.6.30-rc8 the test program reports full failure on XFS and RAMFS,
full success on EXT3, VFAT and ReiserFS, and mixed results on TMPFS:

$ ./mmap /dev/shm/testfile
Modifying /dev/shm/testfile...
Flushing data using sync()...
Failure: time not changed.
Not modifying /dev/shm/testfile...
Flushing data using msync()...
Success: time not changed.
Not modifying /dev/shm/testfile...
Flushing data using fsync()...
Success: time not changed.
Modifying /dev/shm/testfile...
Flushing data using msync()...
Failure: time not changed.
Modifying /dev/shm/testfile...
Flushing data using fsync()...
Failure: time not changed.

This doesn't look like az XFS-specific issue, but XFS is definitely
affected. Anybody's got an idea how to tackle this?
--
Regards,
Feri.


2009-09-26 13:10:53

by Christoph Hellwig

[permalink] [raw]
Subject: Re: mmap vs mtime in 2.6.26 and up

On Fri, Sep 25, 2009 at 02:47:42PM +0200, Ferenc Wagner wrote:
> I added some fresh test results to
> http://bugzilla.kernel.org/show_bug.cgi?id=2645. In short, under
> 2.6.30-rc8 the test program reports full failure on XFS and RAMFS,
> full success on EXT3, VFAT and ReiserFS, and mixed results on TMPFS:

There's a patch queued up for inclusion in 2.6.32 to work around this
issue in XFS. The lack of a proper callout from the VFS still makes
this a much less than ideal solution.

2009-10-15 00:09:25

by Ferenc Wagner

[permalink] [raw]
Subject: Re: mmap vs mtime in 2.6.26 and up

Christoph Hellwig <[email protected]> writes:

> On Fri, Sep 25, 2009 at 02:47:42PM +0200, Ferenc Wagner wrote:
>
>> I added some fresh test results to
>> http://bugzilla.kernel.org/show_bug.cgi?id=2645. In short, under
>> 2.6.30-rc8 the test program reports full failure on XFS and RAMFS,
>> full success on EXT3, VFAT and ReiserFS, and mixed results on TMPFS:
>
> There's a patch queued up for inclusion in 2.6.32 to work around this
> issue in XFS. The lack of a proper callout from the VFS still makes
> this a much less than ideal solution.

Great, anyway! Somehow I managed to gloss over this mail until now,
but happened to test 2.6.32-rc4 and found the issue fixed. At least
for XFS, as my latest addition to the bug report details it. Thank
you very much for taking care of this issue!
--
Regards,
Feri.