On Wed, Sep 09, 2009 at 09:13:49AM -0400, Chris Mason wrote:
> On Tue, Aug 18, 2009 at 07:26:41PM +0200, Nick Piggin wrote:
> > Hi Chris,
> > 
> > Don't know if this is a known issue, but I have btrfs (after my previous
> > inode_tree fixup patch) failing fsx-linux in Linus's current git tree.
> > 
> > This makes it a bit hard for me to test my btrfs truncate conversion patch
> > unfortunately, though it does seem pretty stable so I will probably just
> > send it out anyway.
> > 
> > Anyway, just a head's up. Oh, the way I reproduce is to create btrfs
> > on 1GB rd, run 4 instances of fsx-linux on different files in the root
> > directory, and run `while true ; do sync ; echo 3 > 
> > /proc/sys/vm/drop_caches;
> > done` at the same time.
> 
> Just an update, I think I've tracked this down.  Our fixup code for when
> set_page_dirty was called without page_mkwrite wasn't catching every
> case.  I'm hitting other problems because I'm testing on my new
> performance code, but hopefully this will all be nailed down soon.

Which cases do set_page_dirty happen without page_mkwrite? For fsx-linux
I hope there shouldn't be any... but one issue with btrfs's page_mkwrite
is that it still unlocks the page before page_mkwrite returns so if it
is anything like other filesystems, the page might get written out
between the page_mkwrite and the page fault's subsequent set_page_dirty.

So if that race is hitting, it might appear like set_page_dirty is
being called without a page_mkwrite.

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

Reply via email to