From: Alex Zarochentsev <zam@namesys.com>
To: Rik van Riel <riel@redhat.com>
Cc: Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org, reiserfs-dev@namesys.com
Subject: Re: 2.6.8.1-mm2
Date: Mon, 23 Aug 2004 01:32:00 +0400 [thread overview]
Message-ID: <20040822213200.GD5154@backtop.namesys.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0408201753250.4192-100000@chimarrao.boston.redhat.com>
On Fri, Aug 20, 2004 at 06:43:28PM -0400, Rik van Riel wrote:
> On Thu, 19 Aug 2004, Andrew Morton wrote:
>
> > - Added the reiser4 filesystem.
>
> Time for a quick scan through the code, comments in order in which
> I ran into stuff, not in order of importance.
>
> > reiser4-include-reiser4.patch
>
> Might be an idea to trim some of the excess text from the help
> entry and make things a bit more professional.
>
> > reiser4-perthread-pages.patch
>
> If a task exits unexpectedly, it will leak the reserved pages.
> This memory leak wants fixing...
Actually reiser4 does care of releasing all reserved pages before
leaving kernel context.
Would it be enough to just add a check/pages_release into do_exit() under
something like CONFIG_PERTHREAD_RESERVED_PAGES_DEBUG?
>
> Also, why the !in_interrupt() test in perthread_pages_alloc() ?
> Surely this function shouldn't be called from interrupts, since
> it is a general purpose pool of pages.
>
> > reiser4-radix-tree-tag.patch
>
> Just a nitpick here, could we rename PAGECACHE_TAG_FS_SPECIFIC
> to PAGECACHE_TAG_FS_PRIVATE, since we're using the name "private"
> in half a number of other places for the exact same purpose ?
>
> > reiser4-radix_tree_lookup_slot.patch
>
> Having reiserfs dig into the radix tree looks like a layering
> violation to me. If there is a real need to replace pagecache
> pages with other pages in the radix tree, maybe we should have
> a function to do that in the pagecache code, leaving reiserfs
> to call things at the right abstraction level ?
Reiser4 uses common radix tree impl. for indexing own objects (jnodes, readdir
cursors), not pages.
> I see a potential for race conditions when reiserfs changes a
> page which write has just looked up, and what about mmap?
> Even if the code is safe now, this is bound to result in a
> maintenance nightmare down the road.
>
> > reiser4-truncate_inode_pages_range.patch
>
> This has the same race issue as any of the "hole punch"
> patches that have been floating around in the past. The
> truncate path has some (subtle!) race prevention that
> depends on the nopage functions not searching past i_size,
> but this hole punch code doesn't.
There is an reiser4 inode r/w semaphore which is taken in both reiser4 ->nopage
(unix_file_filemap_nopage) -- for read and in the code with calls
truncate_inode_pages_range() -- for write. There should be no races.
>
> I am not convinced this is SMP safe.
>
> cheers,
>
> Rik
> --
> "Debugging is twice as hard as writing the code in the first place.
> Therefore, if you write the code as cleverly as possible, you are,
> by definition, not smart enough to debug it." - Brian W. Kernighan
>
Thanks,
Alex.
prev parent reply other threads:[~2004-08-22 21:39 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-19 8:42 2.6.8.1-mm2 Andrew Morton
2004-08-19 9:10 ` 2.6.8.1-mm2 Ryan Cumming
2004-08-19 9:35 ` 2.6.8.1-mm2 Chris Wedgwood
2004-08-23 21:25 ` 2.6.8.1-mm2 Adrian Bunk
2004-08-25 18:32 ` 2.6.8.1-mm2 Bill Davidsen
2004-08-19 9:12 ` 2.6.8.1-mm2 Dipankar Sarma
2004-08-19 11:36 ` 2.6.8.1-mm2 Gene Heskett
2004-08-19 12:29 ` [PATCH] 2.6.8.1-mm2 --- UML build fixes Chris Wedgwood
2004-08-19 20:55 ` Sam Ravnborg
2004-08-19 21:19 ` Jeff Dike
2004-08-19 22:32 ` Sam Ravnborg
2004-08-19 14:43 ` 2.6.8.1-mm2 Michael Geithe
2004-08-19 14:52 ` 2.6.8.1-mm2 John Cherry
2004-08-19 14:29 ` 2.6.8.1-mm2 Alan Cox
2004-08-20 7:06 ` 2.6.8.1-mm2 Hans Reiser
2004-08-20 7:16 ` 2.6.8.1-mm2 Andrew Morton
2004-08-20 7:37 ` 2.6.8.1-mm2 Hans Reiser
2004-08-20 13:53 ` 2.6.8.1-mm2 Alex Zarochentsev
2004-08-20 18:05 ` 2.6.8.1-mm2 Hans Reiser
[not found] ` <200408191245.46726.gene.heskett@verizon.net>
[not found] ` <20040819182752.GA3024@viasys.com>
2004-08-19 19:17 ` 2.6.8.1-mm2 Gene Heskett
2004-08-20 1:51 ` 2.6.8.1-mm2 Gene Heskett
2004-08-20 0:50 ` 2.6.8.1-mm2 Marcelo Tosatti
2004-08-20 1:08 ` 2.6.8.1-mm2 Nathan Lynch
2004-08-20 1:16 ` 2.6.8.1-mm2 Andrew Morton
2004-08-20 7:40 ` 2.6.8.1-mm2 Rusty Russell
2004-08-20 8:14 ` 2.6.8.1-mm2 Ingo Molnar
2004-08-20 8:29 ` 2.6.8.1-mm2 Srivatsa Vaddagiri
2004-08-20 8:59 ` 2.6.8.1-mm2 Ingo Molnar
2004-08-20 9:03 ` 2.6.8.1-mm2 Ingo Molnar
2004-08-21 7:51 ` 2.6.8.1-mm2 Rusty Russell
2004-08-20 8:33 ` 2.6.8.1-mm2 Ingo Molnar
2004-08-20 21:35 ` 2.6.8.1-mm2 Andrew Morton
2004-08-20 22:12 ` 2.6.8.1-mm2 Nathan Lynch
2004-08-20 6:17 ` 2.6.8.1-mm2 Srivatsa Vaddagiri
2004-08-20 6:59 ` 2.6.8.1-mm2 Paul Mackerras
2004-08-20 8:21 ` 2.6.8.1-mm2 ismail dönmez
2004-08-20 22:43 ` 2.6.8.1-mm2 Rik van Riel
2004-08-20 23:05 ` 2.6.8.1-mm2 - reiser4 Rik van Riel
2004-08-20 23:15 ` William Lee Irwin III
2004-08-20 23:20 ` Anton Blanchard
2004-08-20 23:34 ` Andrew Morton
2004-08-21 0:12 ` Rik van Riel
2004-08-21 6:24 ` Hans Reiser
2004-08-21 0:15 ` Rik van Riel
2004-08-21 8:57 ` Hans Reiser
2004-08-21 7:30 ` 2.6.8.1-mm2 Hans Reiser
2004-08-22 21:32 ` Alex Zarochentsev [this message]
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=20040822213200.GD5154@backtop.namesys.com \
--to=zam@namesys.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=reiserfs-dev@namesys.com \
--cc=riel@redhat.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