linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hans Reiser <reiser@namesys.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: "Vladimir V. Saveliev" <vs@namesys.com>,
	Andrew Morton <akpm@osdl.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	ReiserFS Mailing List <reiserfs-list@namesys.com>
Subject: Re: I request inclusion of reiser4 in the mainline kernel
Date: Tue, 04 Oct 2005 14:10:51 -0700	[thread overview]
Message-ID: <4342EFDB.4040101@namesys.com> (raw)
In-Reply-To: <20051004190048.GA30832@infradead.org>

Christoph Hellwig wrote:

>On Mon, Sep 26, 2005 at 07:03:52PM +0400, Vladimir V. Saveliev wrote:
>  
>
>>> - you still do your plugin mess in ->readpage.  honsetly could you
>>>   please explain why mpage_readpage{,s} don't work for you?
>>>      
>>>
>>The reason is performance. Reiser4 uses a search through the filesystem tree to
>>access metadata of a file.
>>If reiser4 implemented its read/write via generic functions it would have to
>>repeat the search for every page being read/written.
>>It is especially disappointing because reiser4 uses extents with which it is
>>able in most cases to find all file pointers to data blocks with only one search
>>through the tree.
>>Another reason is multithread load.
>>Tree search includes complex part of providing correct concurrent read/write
>>access to the tree including deadlock avoidance algorithm. On multithread
>>filesystem load minimizing of a number of tree searches should have improved
>>filesystem throughput.
>>
>>These are on todo list yet.
>>    
>>
>
>Let's start with the read side.  You are using the generic sendfile now
>which is the same as the generic read routine as far as the filesystem
>is concerned.
>
I am not sure that is the right thing for us to be doing actually.  We
need to abstract things our own way to create a proper abstraction
underneath sys_reiser4() and the general naming system that we are
headed towards.  That means we need the "flow" abstraction as the basis
of our code.  The flow abstraction is based on the idea that we should
be able to connect to and read or write any stream of bytes, in user or
kernel space.  A flow is a stream of bytes.  That is useful for
constructing sys_reiser4() and other semantic enhancements that we
plan.  If you would like to generalize the vfs interface such that it
reads and writes to and from flows, and user space buffers are just a
special case used by read() and write(), and it is not done page at a
time, that could be good for vfs.

>  What more do you need for read performance than a proper
>mpage_readpage(s) that can use the extent-enabled
>
what does extent enabled mean?  Do you mean that it passes more than one
page to the fs?  Or do you mean that readahead windows are set by the fs
because readahead is affected by file layout?  Or both?

> get_blocks callback?
>I'll post a patch for that ASAP, it benefits the other filesystems aswell.
>
>I know the write path is more complex, and doing your on ->writepage(s)
>is fine because that may need to do a lot of FS-specific things.  I'd
>really like to see you use generic_file_write or at least the major
>routines it's built from.  What's missing for you to do that?
>
Well, to start with, reiser4_write is plugin specific.  Writing to a
file might require modifying a file that it inherits its contents from,
for instance.

I think though that there is another consideration, which is that
reiser4 is not licensed just for Linux.  We need to create a coherent
body of code that can be ported to operating systems that don't have vfs
layers specially modified for us.  The easiest way to do that is to
write our own code for the key things like read and write.

VFS is supposed to allow filesystems to have their own read and write
implementations.  That is its defined interface.  You should allow us to
use it.  Other filesystems that are less ambitious might well want to
use generic code, but reiser4 is not a yellow package with black lettering.

>  Note
>that you read/write path will need a major rewrite anyway due to the
>flaws I pointed out, and I think it would benefit both you (less
>maintaince overhead, feature and bug parity) and the other
>filesystem/vfs/vm hackers (less duplicate functionality to worry about,
>improvement you make shared by every filesystem) if you tried to
>converge to use common code.
>
>
>
>
>  
>


  reply	other threads:[~2005-10-04 21:10 UTC|newest]

Thread overview: 143+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-16 17:05 I request inclusion of reiser4 in the mainline kernel Hans Reiser
2005-09-16 17:15 ` Christoph Hellwig
2005-09-16 17:40 ` Christoph Hellwig
2005-09-16 19:39   ` Hans Reiser
2005-09-16 19:52     ` Kyle Moffett
2005-09-17 10:51       ` Denis Vlasenko
2005-09-19  5:01         ` Hans Reiser
2005-09-16 20:50     ` Lennart Sorensen
2005-09-16 20:53       ` Lennart Sorensen
2005-09-19  5:09         ` Hans Reiser
2005-09-17  9:22     ` Christoph Hellwig
2005-09-17 10:56       ` Denis Vlasenko
2005-09-17 11:15         ` Denis Vlasenko
2005-09-18  0:34           ` Chris White
2005-09-18 10:21             ` Denis Vlasenko
2005-09-18 10:26               ` Christoph Hellwig
     [not found]                 ` <200509181406.25922.chrivers@iversen-net.dk>
2005-09-18 12:32                   ` Denis Vlasenko
2005-09-18 18:25                     ` David Masover
2005-09-19  5:16                   ` Hans Reiser
2005-09-19  5:56                     ` Valdis.Kletnieks
2005-09-19  6:53                       ` Hans Reiser
2005-09-18 17:22                 ` michael chang
2005-09-18 19:16                   ` Valdis.Kletnieks
2005-09-18 20:04                   ` Horst von Brand
2005-09-18 20:29                     ` David Masover
2005-09-18 21:43                       ` Dan Oglesby
2005-09-19  1:37                         ` PFC
2005-09-19  1:53                           ` Kyle Moffett
2005-09-19  2:48                             ` Dr.Dre
2005-09-19  4:37                           ` Marc Perkel
2005-09-18 20:33                     ` Marc Perkel
2005-09-19  5:44                     ` Hans Reiser
2005-09-19 10:39                       ` Nikita Danilov
2005-09-19 18:51                         ` Hans Reiser
2005-09-19 10:51                       ` Alan Cox
2005-09-19 23:03                       ` Horst von Brand
2005-09-20  8:00                         ` Hans Reiser
2005-09-20  7:51                       ` Pavel Machek
2005-09-20 14:41                         ` David Masover
2005-09-20 17:25                           ` Hans Reiser
2005-09-20 18:17                           ` Horst von Brand
     [not found]                           ` <20050920175727.GA17820@thunk.org>
     [not found]                             ` <1127240326.10407.22.camel@localhost>
2005-09-20 21:11                               ` Theodore Ts'o
2005-09-21  0:08                                 ` Hans Reiser
2005-09-21  9:05                                 ` Vitaly Fertman
2005-09-20 17:46                         ` Hans Reiser
     [not found]                         ` <200509202328.28501.rik@osrc.info>
2005-09-20 20:15                           ` Valdis.Kletnieks
2005-09-20 21:17                             ` Theodore Ts'o
2005-09-20 21:33                               ` Valdis.Kletnieks
2005-09-20 21:37                           ` Pavel Machek
     [not found]                             ` <200509210133.41710.rik@osrc.info>
2005-09-20 22:10                               ` Pavel Machek
2005-09-21  0:22                                 ` Hans Reiser
2005-09-21  0:04                         ` Theodore Ts'o
2005-09-21  0:13                           ` Hans Reiser
2005-09-21  0:27                           ` Ric Wheeler
2005-09-21  0:44                             ` Hans Reiser
2005-09-21  1:12                               ` Ric Wheeler
2005-09-21  3:05                                 ` Hans Reiser
2005-09-21  4:55                                   ` Gregory Maxwell
2005-09-21 11:21                                     ` Ric Wheeler
2005-09-21 17:36                                       ` Hans Reiser
2005-09-21 18:12                                         ` Ric Wheeler
2005-09-21 10:16                                   ` Vitaly Fertman
2005-09-21  1:01                           ` Gregory Maxwell
2005-09-21  1:15                             ` Ric Wheeler
2005-09-23  6:21                             ` David Greaves
2005-09-23 11:37                               ` Gregory Maxwell
2005-09-18 20:52                   ` Kyle Moffett
2005-09-19  0:56                     ` michael chang
2005-09-18 21:38                   ` Alan Cox
2005-09-19  5:07                     ` Hans Reiser
2005-09-19  9:01                       ` Christoph Hellwig
2005-09-19  9:16                         ` Christoph Hellwig
2005-09-19  9:21                         ` Andrew Morton
2005-09-19 10:43                       ` Alan Cox
2005-09-19 18:50                         ` Hans Reiser
2005-09-19 18:51                         ` Hans Reiser
2005-09-19 12:45                       ` Jens Axboe
2005-09-20  4:16                       ` Nick Piggin
2005-09-20  6:28                         ` Hans Reiser
2005-09-20  7:16                           ` Nick Piggin
2005-09-20  7:59                             ` Hans Reiser
2005-09-20  8:31                               ` elevators (was Re: I request inclusion of reiser4 in the mainline kernel) Nick Piggin
2005-09-20 17:18                                 ` Hans Reiser
2005-09-20 11:42                               ` I request inclusion of reiser4 in the mainline kernel Jens Axboe
2005-09-20 13:30                                 ` Lorenzo Allegrucci
2005-09-20 13:41                                   ` Jens Axboe
2005-09-20 13:55                                   ` Nikita Danilov
2005-09-20 17:46                                     ` Hans Reiser
2005-09-20 15:25                                   ` Randy.Dunlap
2005-09-20 17:21                                 ` Hans Reiser
2005-09-20 18:18                                   ` Jens Axboe
2005-09-20 15:42                           ` Horst von Brand
2005-09-20 17:46                             ` Hans Reiser
2005-09-20 18:25                               ` Jens Axboe
2005-09-20 18:27                               ` Nikita Danilov
2005-09-21 21:16                                 ` Hans Reiser
2005-09-21 21:37                                   ` Nikita Danilov
2005-09-21 22:07                                     ` Hans Reiser
2005-09-20 17:55                             ` Hans Reiser
2005-09-19 20:00               ` Bill Davidsen
2005-09-19 21:55                 ` Hans Reiser
2005-09-18 10:23         ` Christoph Hellwig
2005-09-18 18:10           ` David Masover
2005-09-19 20:41   ` Alexander Zarochentsev
2005-09-26 15:03   ` Vladimir V. Saveliev
2005-10-04 19:00     ` Christoph Hellwig
2005-10-04 21:10       ` Hans Reiser [this message]
2005-11-11 16:15   ` Vladimir V. Saveliev
2006-01-09  9:54   ` What's the state of Reiser4 inclusion " Giovanni A. Orlando
2006-01-09  9:15     ` Arjan van de Ven
2005-09-17 11:16 ` I request inclusion of reiser4 " Denis Vlasenko
2005-09-18  3:06   ` George Garvey
2005-09-18 10:02   ` Nikita Danilov
2005-09-19 19:36     ` Stephen Pollei
2005-09-19 21:10       ` Nikita Danilov
2005-09-19 21:47         ` Benjamin Herrenschmidt
2005-09-19 22:01         ` Hans Reiser
2005-09-19 23:15     ` Horst von Brand
2005-09-20  3:57       ` Stephen Pollei
2005-09-20  9:30         ` Nikita Danilov
2005-09-20 15:36           ` Horst von Brand
2005-09-20 17:43             ` Hans Reiser
2005-09-20 18:36               ` Horst von Brand
2005-09-20 22:08               ` Stephen Pollei
2005-09-21  0:21                 ` Hans Reiser
2005-09-21 10:47                   ` Nikita Danilov
2005-09-21 17:34                     ` Hans Reiser
2005-09-21 18:31                       ` Nikita Danilov
2005-09-21 18:39                         ` Hans Reiser
2005-09-20 17:53         ` Alexandre Oliva
2005-09-20 22:57           ` Stephen Pollei
2005-09-21  8:15             ` Alexandre Oliva
2005-09-18 22:12   ` Hans Reiser
2005-09-18 11:06 ` Christoph Hellwig
2005-09-19  9:18   ` Vladimir V. Saveliev
2005-09-19  9:24     ` Christoph Hellwig
     [not found]       ` <43302CF7.2010901@namesys.com>
     [not found]         ` <20050920154711.GA6698@infradead.org>
2005-09-30 12:10           ` Vladimir V. Saveliev
2005-09-30 17:27             ` Nikita Danilov
2005-10-04 18:12             ` Christoph Hellwig
2005-09-19  9:40     ` Alexey Dobriyan
2005-09-20 22:40 James Lamanna
2005-09-20 23:46 ` Vadim Lobanov
2005-09-20 23:51   ` James Lamanna

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=4342EFDB.4040101@namesys.com \
    --to=reiser@namesys.com \
    --cc=akpm@osdl.org \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=reiserfs-list@namesys.com \
    --cc=vs@namesys.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;
as well as URLs for NNTP newsgroup(s).