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

journal buffer_credits problem



Hi, we're working on a stackable versioning file system for 2.4.x.
Versioning can easily create lots of files for a file that gets modified
frequently, and our current design puts all versions of a file in the same
directory as the main file.  We are therefore evaluating how stable and
efficient different combinations of file systems would be in this scenario.

We've run our versionfs on ext2 and ext3, and with and without the HTree
patches.  We started with 2.4.20, and managed to tickle the "buffer credits"
bug reported here:

	http://www.spinics.net/lists/ext3/msg02297.html

So we went to 2.4.21 and 2.4.22, as they include the patch reported in the
above message.  But we're still getting the bug.  We can reproduce it using
postmark inside versionfs, mounted on top of ext3, in 2.4.22:

	kernel: Assertion failure in do_get_write_access() at
		transaction.c:720: "handle->h_buffer_credits > 0"

Now, it's quite possible that we're not doing something right in versionfs
which messes ext3 up.  We're unable to tickle this assertion directly via
ext3.  However, given that our benchmarks run fine on ext2 and that at least
one reported buffer_credits problem was a true ext3 bug, I'm seeking
help/advise.

1. Are there any more known ext3 bugs of the sort that have been reported?
   If so, are there fixes anywhere?  (We didn't see anything new wrt ext3 in
   the 2.4.23-pre series.)

2. To help us narrow down the problem, could anyone suggest what versionfs
   might be doing wrong that can mess ext3 up wrt the buffer credits?  Can
   you suggest any tests we might do to help track the problem?

FWIW, we're managed to narrow down the problem to the area in our code that
uses the sendfile functionality.  We use sendfile inside our file system to
make a copy of a file before it'd be modified, for versioning purposes.

We'll keep digging and let this list know what we find.

Thanks,
Erez.




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