From: "Vladimir V. Saveliev" <vs@namesys.com>
To: Andrew Morton <akpm@osdl.org>
Cc: vda.linux@googlemail.com, linux-kernel@vger.kernel.org,
Reiserfs-List@namesys.com
Subject: Re: reiser4: maybe just fix bugs?
Date: Tue, 01 Aug 2006 19:07:02 +0400 [thread overview]
Message-ID: <1154444822.10043.106.camel@tribesman.namesys.com> (raw)
In-Reply-To: <20060801073316.ee77036e.akpm@osdl.org>
Hello
On Tue, 2006-08-01 at 07:33 -0700, Andrew Morton wrote:
> On Tue, 01 Aug 2006 15:24:37 +0400
> "Vladimir V. Saveliev" <vs@namesys.com> wrote:
>
> > > >The writeout code is ugly, although that's largely due to a mismatch between
> > > >what reiser4 wants to do and what the VFS/MM expects it to do.
> >
> > Yes. reiser4 writeouts atoms. Most of pages get into atoms via
> > sys_write. But pages dirtied via shared mapping do not. They get into
> > atoms in reiser4's writepages address space operation.
>
> It think you mean ->writepage - reiser4 desn't implement ->writepages().
>
no.
there is one. It is reiser4/plugin/file/file.c:writepages_unix_file().
reiser4_writepage just kicks kernel thread (entd) which works similar to
reiser4_sync_inodes() (described earlier) and waits until several pages
(including the one reiser4_writepage is called with) are written.
> I assume you considered hooking into ->set_page_dirty() to do the
> add-to-atom thing earlier on?
>
Currently, add-to-atom is not simple. It may require memory allocations
and disk i/o-s. I guess these are not supposed to be called in
->set_page_dirty(). That is why in reiser4_set_page_dirty we just mark
the page in mapping's tree and dealy adding to atoms until flush time.
> We'll merge mm-tracking-shared-dirty-pages.patch into 2.6.19-rc1, which
> would make that approach considerably more successful, I expect.
> ->set_page_dirty() is a bit awkward because it can be called under
> spinlock.
>
> Maybe comething could also be gained from the new
> vm_operations_struct.page_mkwrite(), although that's less obvious...
>
> > That is why
> > reiser4_sync_inodes has two steps: on first one it calls
> > generic_sync_sb_inodes to call writepages for dirty inodes to capture
> > pages dirtied via shared mapping into atoms. Second step flushes atoms.
> >
> > > >
> > > I agree --- both with it being ugly, and that being part of why.
> > >
> > > > If it
> > > >works, we can live with it, although perhaps the VFS could be made smarter.
> > > >
> > > >
> > > I would be curious regarding any ideas on that. Next time I read
> > > through that code, I will keep in mind that you are open to making VFS
> > > changes if it improves things, and I will try to get clever somehow and
> > > send it by you. Our squalloc code though is I must say the most
> > > complicated and ugliest piece of code I ever worked on for which every
> > > cumulative ugliness had a substantive performance advantage requiring us
> > > to keep it. If you spare yourself from reading that, it is
> > > understandable to do so.
> > >
> > > >I'd say that resier4's major problem is the lack of xattrs, acls and
> > > >direct-io. That's likely to significantly limit its vendor uptake.
> >
> > xattrs is really a problem.
>
> That's not good. The ability to properly support SELinux is likely to be
> important.
>
Do you think that if reiser4 supported xattrs - it would increase its
chances on inclusion?
PS: what exactly did you refer to when you said that writeout code is
ugly?
next prev parent reply other threads:[~2006-08-01 15:21 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-31 9:26 Denis Vlasenko
2006-07-31 12:38 ` Adrian Bunk
2006-07-31 16:17 ` Horst H. von Brand
2006-07-31 20:06 ` Denis Vlasenko
2006-08-01 15:22 ` Theodore Tso
2006-08-01 2:30 ` Hans Reiser
2006-08-01 10:37 ` Pavel Machek
2006-08-01 13:59 ` Scott J. Harmon
2006-08-02 6:22 ` Jan Engelhardt
2006-08-02 19:53 ` Denis Vlasenko
2006-08-01 8:31 ` Andrew Morton
2006-08-01 2:18 ` Hans Reiser
2006-08-01 11:24 ` Vladimir V. Saveliev
2006-08-01 14:33 ` Andrew Morton
2006-08-01 15:07 ` Vladimir V. Saveliev [this message]
2006-08-01 16:55 ` David Masover
2006-08-01 19:26 ` Nate Diller
2006-08-02 3:54 ` David Masover
2006-08-03 7:46 ` Theodore Tso
2006-08-04 21:09 ` David Masover
2006-08-01 19:14 ` Nate Diller
2006-08-01 11:43 ` Christoph Hellwig
2006-08-01 11:52 ` Nick Piggin
2006-08-01 14:54 ` Andrew Morton
2006-08-01 19:32 ` Andi Kleen
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=1154444822.10043.106.camel@tribesman.namesys.com \
--to=vs@namesys.com \
--cc=Reiserfs-List@namesys.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=vda.linux@googlemail.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
all inboxes | Powered by JetHome®