Re: Erratum

2005-11-17 Thread Peter van Hardenberg
On November 17, 2005 08:13 pm, Leo Comerford wrote:
>
> - this is what comes of writing things in a hurry
>

Leo,

As you may have noticed, I am working in this area right now. I'd like to read 
what you have written, but it's too long and jargon-laden for me to invest 
the time. 

Could you sum up everything you said into about a hundred words such that an 
educated layman could understand? I believe Einstein is quoted as saying 
"forgive the length of this letter, I did not have time to make it short" so 
please don't take this as a complaint about your idea, just about its 
presentation.

-pvh

-- 
Peter van Hardenberg ([EMAIL PROTECTED])
Victoria, BC, Canada


ZFS - Reiser team reactions?

2005-11-17 Thread Gregory Maxwell
Looks like ZFS is no longer vaporware.
http://www.opensolaris.org/os/community/zfs/docs/

Any commentary from the Reiserfs team?

A (supposedly) production ready FS that provides the transactions
(using a similar/same tree ripple technique as reiser4), compression,
and snapshotting, that we expected with reiser4 in the not two distant
future... as well as checksumming, and raid integration (which uses
checksumming to aid reconstruction) that we've barely just talked
about here.

People have already started asking about Linux integration, if it were
not for that fact that CDDL is incompatible with the GPL, I'd expect
it to make its way into linux before Reiser4 as well.

A positive point is that this might be a good chance to point out that
Reiser4 has some of ZFS's features already and is the right framework
for building the rest (and much more)... and get some more interest in
getting it merged and completed.


Hi

2005-11-17 Thread Schafer Nestor
Hello,

3.99$ per tab = Gener:ic Sotfttabz

Visiit us to buyy: http://www.sensitises.net/

Good Luck


-- 
burrows symbiosis freebooters full-blooded
vacuously curbs mountains flowery
bluffing self-will shaft intercessions



Erratum

2005-11-17 Thread Leo Comerford
On 11/18/05, Leo Comerford <[EMAIL PROTECTED]> wrote:

> $ setroot /(whatever)/friend/Ed

This should be

$ setroot /(whatever)/portrait/Ed

- this is what comes of writing things in a hurry

Leo.

--
Leo Richard Comerford - http://www.st-and.ac.uk/~lrc1 - accept no namesakes :)


Re: File as a directory - file-as-dir vs. link-dirs (again) - 3/3

2005-11-17 Thread Leo Comerford
(This is the third and final choke-sized chunk. In order to keep any
replies together, I suggest that people reply to this part unless the
reply is very specific to one of the others.)

File-as-dir is a flawed way of expressing parent-child relations.
Unfortunately, when it comes to relations, expressing two-way
parent-child links and providing a tree view of them is what
file-as-dir does /best/.

Even simple two-way relationships that don't have an obvious
parent-child nature cause additional problems. Say we decided to
create metadata to record which of the men are friends. So if Dean
gets along with his brother Ed we could create

/(something)/friend/aardvark:
/(something)/friend/aardvark:1 (which is the file also known as
'/(whatever)/portrait/Ed')
/(something)/friend/aardvark:2 (which is the file also known as
'/(whatever)/portrait/Dean')

using link-directories. In fact, if we have anonymous last name
segments, we can just create

/(something)/friend/aardvark: , which links anonymously to both the Ed
and Dean photos.

But try to express this using subfiles: which of the two brothers will
we arbitrarily choose to make the subfile of the other?

In general, because the subfile relationship is always parent-child,
to express a symmetric relationship in it we have to make up spurious
extra data, declaring one participant in the relationship to be the
'parent' when no such distinction exists. Ed and Dean are unlikely to
care about this, but try deciding whether Sales worksClosely with
Marketing or Marketing worksClosely with Sales on your firm's
computerised org chart. (Apparently things like LDAPisation projects
have provoked wars over less.) And in the link-directory example using
anonymous links, even the dumbest program that knows nothing about
either /(something)/friends or friendship can tell that
/(something)/friends/aardvark: is symmetric. In the link-directory
example that doesn't use anonymous links, it doesn't know that - and
subfile metadata will actively give it the false parent/child
information. And of course even if we already know that a specific
relationship is symmetric, or if it's not important that we find out,
problems two and four from part two bite hard. For example, reliably
finding all of Ed's friends' photos requires looking for both all his
photo's ;friends children and all its ;friends parents every time. We
have similar problems for relationships that aren't symmetric, but for
which we don't want to have to declare one role to be the parent of
the other. Which party in a is-husband-of/is-wife-of relation should
be indicated as the parent?

Then there are (>2)-way relations. Here's a good example of a
three-way relation, lifted from the
Rumbaugh-Blaha-Premerlani-Eddy-Lorensen OO book. Say that we have
files representing programmers, software projects and programming
languages. Now say that, for example, Bob is using Algol 68 on the
Foomatic and both SNOBOL and PL/1 on Project Omega, while Dean is
coding in PL/1 on the Computron and in PILOT on Project Omega, and
Todd is formally specifying the Foomatic in Z. We would represent this
information using link-directories by creating

/(thingy)/impl-lang/aardvark:coder --> /(whatever)/portrait/Bob
/(thingy)/impl-lang/aardvark:lang   --> /bin/algol68
/(thingy)/impl-lang/aardvark:proj--> /(whatever)/projects/foomatic
/(thingy)/impl-lang/zebra:coder --> /(whatever)/portrait/Dean
/(thingy)/impl-lang/zebra:lang   --> /bin/pilot
/(thingy)/impl-lang/zebra:proj--> /(whatever)/projects/foomatic

and so on: one link-directory for each triple of programmer, project
and language. If we want to express the same information using subfile
metadata we are going to have to create something like

/(whatever)/portrait/Bob;impl-lang/1/proj   --> /bin/algol68
/(whatever)/portrait/Bob;impl-lang/1/lang   --> /(whatever)/projects/foomatic
/(whatever)/portrait/Dean;impl-lang/1/proj  --> /bin/pilot
/(whatever)/portrait/Dean;impl-lang/1/lang  --> /(whatever)/projects/foomatic

and so on. Problem two is worse in this case. Not only do we have to
look through the path"name"s of /(whatever)/projects/foomatic in order
to find out what programmers are working on it, but in order to find
out what languages Bob is using on the Foomatic we have to find the
/(whatever)/portrait/Bob;impl-lang/* directories among the path"name"s
of /(whatever)/projects/foomatic and then examine those directories'
./language names. And to find out what projects Bob is working on, we
have to list all the /(whatever)/projects/* files which are linked
from /(whatever)/portrait/Bob;impl-lang/*/project . All this is
basically the same as working with link-directories using
base-filesystem commands; indeed /(whatever)/portrait/Bob;impl-lang/1
is basically /(thingy)/impl-lang/aardvark: shoved under an arbitrary
choice of one of the three files it relates.

We created tools so that we could handle parent-child relations
expressed as link-directories without clunkiness; naturally we can d

[2.6 patch] fs/reiser4/: possible cleanups

2005-11-17 Thread Adrian Bunk
This patch contains the following possible cleanups:
- make needlessly global code static
- #if unused code away


Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

---

 fs/reiser4/estimate.c  |2 +-
 fs/reiser4/flush_queue.c   |2 ++
 fs/reiser4/fsdata.c|9 ++---
 fs/reiser4/fsdata.h|3 ---
 fs/reiser4/init_super.c|4 +++-
 fs/reiser4/inode.c |7 ++-
 fs/reiser4/jnode.c |2 ++
 fs/reiser4/key.c   |2 ++
 fs/reiser4/key.h   |1 -
 fs/reiser4/lock.c  |3 +++
 fs/reiser4/oid.c   |2 ++
 fs/reiser4/plugin/file/cryptcompress.c |4 
 fs/reiser4/plugin/file/file.h  |3 ---
 fs/reiser4/plugin/plugin.c |   12 ++--
 fs/reiser4/plugin/plugin.h |2 --
 fs/reiser4/readahead.c |3 +++
 fs/reiser4/readahead.h |1 -
 fs/reiser4/super.c |2 ++
 fs/reiser4/super.h |4 
 fs/reiser4/tree.c  |2 +-
 fs/reiser4/tree.h  |2 --
 fs/reiser4/tree_walk.c |4 
 fs/reiser4/tree_walk.h |2 --
 fs/reiser4/znode.h |4 
 24 files changed, 43 insertions(+), 39 deletions(-)

This patch contains the following possible cleanups:
- make needlessly global code static
- #if unused code away


Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

---

 fs/reiser4/flush_queue.c   |2 ++
 fs/reiser4/fsdata.c|9 ++---
 fs/reiser4/fsdata.h|3 ---
 fs/reiser4/init_super.c|4 +++-
 fs/reiser4/inode.c |2 ++
 fs/reiser4/jnode.c |2 ++
 fs/reiser4/key.c   |2 ++
 fs/reiser4/key.h   |1 -
 fs/reiser4/lock.c  |3 +++
 fs/reiser4/oid.c   |2 ++
 fs/reiser4/plugin/file/cryptcompress.c |4 
 fs/reiser4/plugin/file/file.h  |3 ---
 fs/reiser4/plugin/plugin.c |   12 ++--
 fs/reiser4/plugin/plugin.h |2 --
 fs/reiser4/readahead.c |3 +++
 fs/reiser4/readahead.h |1 -
 fs/reiser4/super.c |2 ++
 fs/reiser4/super.h |4 
 fs/reiser4/tree.c  |2 +-
 fs/reiser4/tree.h  |2 --
 fs/reiser4/tree_walk.c |4 
 fs/reiser4/tree_walk.h |2 --
 fs/reiser4/znode.c |2 ++
 fs/reiser4/znode.h |4 
 24 files changed, 44 insertions(+), 33 deletions(-)

--- linux-2.6.14-rc5-mm1/fs/reiser4/flush_queue.c.old   2005-10-28 
22:51:31.0 +0200
+++ linux-2.6.14-rc5-mm1/fs/reiser4/flush_queue.c   2005-10-28 
22:57:29.0 +0200
@@ -644,6 +644,7 @@
INIT_LIST_HEAD(&atom->flush_queues);
 }
 
+#ifdef REISER4_USE_EFLUSH
 /* get a flush queue for an atom pointed by given jnode (spin-locked) ; returns
  * both atom and jnode locked and found and took exclusive access for flush
  * queue object.  */
@@ -707,6 +708,7 @@
 
return 0;
 }
+#endif  /*  REISER4_USE_EFLUSH  */
 
 #if REISER4_DEBUG
 
--- linux-2.6.14-rc5-mm1/fs/reiser4/fsdata.h.old2005-10-28 
22:52:19.0 +0200
+++ linux-2.6.14-rc5-mm1/fs/reiser4/fsdata.h2005-10-28 22:54:19.0 
+0200
@@ -135,8 +135,6 @@
 extern void done_file_fsdata(void);
 extern reiser4_file_fsdata *reiser4_get_file_fsdata(struct file *);
 extern void reiser4_free_file_fsdata(struct file *);
-extern reiser4_file_fsdata *create_fsdata(struct file *);
-extern void free_fsdata(reiser4_file_fsdata *);
 
 
 /*
@@ -182,7 +180,6 @@
 extern int init_super_d_info(struct super_block *);
 extern void done_super_d_info(struct super_block *);
 
-extern int file_is_stateless(struct file *);
 extern loff_t get_dir_fpos(struct file *);
 extern int try_to_attach_fsdata(struct file *, struct inode *);
 extern void detach_fsdata(struct file *);
--- linux-2.6.14-rc5-mm1/fs/reiser4/fsdata.c.old2005-10-28 
22:52:34.0 +0200
+++ linux-2.6.14-rc5-mm1/fs/reiser4/fsdata.c2005-10-28 22:54:41.0 
+0200
@@ -18,6 +18,9 @@
 /* spinlock protecting manipulations with dir_cursor's hash table and lists */
 static spinlock_t d_lock = SPIN_LOCK_UNLOCKED;
 
+static reiser4_file_fsdata *create_fsdata(struct file *file);
+static int file_is_stateless(struct file *file);
+static void free_fsdata(reiser4_file_fsdata *fsdata);
 static void kill_cursor(dir_cursor *);
 
 /**
@@ -480,7 +483,7 @@
  * one file system operation. This means that there may be "detached state"
  * for underlying inode.
  */
-int file_is_stateless(struct file *file)
+static int fil

Re: File as a directory - file-as-dir vs. link-dirs (again) - 2/3

2005-11-17 Thread Leo Comerford
(This long essay has been posted in three parts. In order to keep any
replies together, I suggest that people reply to the third part unless
the reply is very specific to one of the others. This is part two, in
which I criticise file-as-directory some more - far from exciting, but
apparently still necessary. Things should pick up in part three.)

But now let's try to express the father's/son's-photo relationships
between the /(whatever)/portrait photos using subfile metadata instead
of link-directories. /(whatever)/portrait/Mike is (the photo of) the
father of (the man pictured in) /(whaterver)/portrait/Bob - how to
express that using "files as directories"? We could decide that
/(whatever)/portrait/Bob should have the additional path"name"
/(whatever)/portrait/Mike/son-photo . But that would mangle the
filesystem semantics: /(whatever)/portrait/Mike/son-photo isNotA
/(whatever)/portrait/Mike . We need to distinguish the links from
files to their "metadata files" from ordinary directory-to-directory
and directory-to-file links. As the man said, don't try to make things
simpler than possible. So let's call our new pathname
/(whatever)/portrait/Mike;son-photo instead, where ';' is a "name"
segment delimiter in the same way that '/' or (in my examples) ':' is.
(Having a reserved segment-name like ..metas is an alternative
implementation of the same idea.) Now this seems to work fairly well,
but there are problems. Here are some of them.

Problem one: We can assume that the partial pathname after the ';' ,
from the "file-as-directory" to the "metadata file", describes the
type of relationship between the two files. So, for example,
';son-picture' describes one type of relationship, while others could
be ';friend-picture', ';thumbnail' or ';social-sec-no'. So are all
files in the same namespace as regards these relationship-names or
not? In other words, if I see /(whatever)/foo;aardvark and
/(something)/bar;aardvark , can I always safely assume that
/(something)/bar;aardvark is to /(something)/bar as
/(whatever)/foo;aardvark is to /(whatever)/foo ? If so, then there
will be substantial risk of namespace collisions. So in practise, the
"subfile" part of file"name"s will probably have to be fairly
long-winded to minimise the risk: not ';foo' but
';something/not/altogether/unlike/a/third-party/java/package/name/foo'
. If not, if there is some context in which I should interpret what
';aardvark' means, so that it can mean one thing for one
"file-as-directory" and something else for another, what is that
context and how can I know about it? Might it have something to do
with the "file-as-directory"'s file type? (As defined how?) With one
or more of the path"names" that the "file-as-directory" might have? By
contrast, the type of a link-directory is defined by the
predicate-directory it is a child of (by a non-opaque link). So the
namespace of link-directory types is the same namespace of path"names"
that all predicate-directories are in. Path"names" aren't necessarily
very concise either, but at least we're not creating a second
namespace, and equivalent path"name"s ought to be a lot shorter on
average when you have pathname-listing and advanced searching on
pathnames; for example, a user binary can have the two path"name"s
/usr and /bin rather than one long path"name" /usr/bin.

Problem two: consider that you discover Mike's photo-of-son by looking
into its "subfiles" and seeing /(whatever)/portrait/Mike;son-photo ,
while you discover Bob's is-son-photo-of (in effect, its
photo-of-father) by looking through its path"names" and also seeing
/(whatever)/portrait/Mike;son-photo . To find all the relationships
which a given file is involved in, you must check both its "subfiles"
and its path"names". And whether a given relationship will be found
among one or the other is arbitrary. Had we chosen to use
;father-photo rather than ;son-photo links, then Bob's metadata would
have been a "subfile" while Mike's would have been a path"name".

But, one could argue, this is only a problem in the special cases
where both "directions" of a two-part relationship are worth
expressing. It just so happens that the reverse of the is-son-of
relation is a useful relation to consider. It just happens to be the
case that every man is a father to all his sons; or rather, the
reverse of 'x is the son of y' - 'y has the son x' - happens to be
important enough to have another form, 'y is the father of x'. So in
these special cases, we can create a link in both directions: for
example, we can create both /(whatever)/portrait/Mike;son-photo and
/(whatever)/portrait/Bob;father-photo . Then the user can find all of
a file's useful file-is-dir metadata by inspecting its subfiles, and
so happily ignore its subfile pathnames.

But creating both /(whatever)/portrait/Mike;son-photo and
/(whatever)/portrait/Bob;father-photo means having a cycle in the
representation of some simple non-cyclic data. Also, the fact that
Mike was the parent of Bob through a

Re: File as a directory - file-as-dir vs. link-dirs (again) - 1/3

2005-11-17 Thread Leo Comerford
Once again, I have to apologise for a stupidly long and stupidly late
reply. I've tried to make this thing a little more digestible by
chopping it into three chunks. In order to keep any replies together,
I suggest that people reply to the third part unless the reply is very
specific to one of the other parts. This first part is (I hope)
relatively fun.

First of all: I'll refer to 'relation-directories' as
'link-directories' from now on; the new term should be more
enlightening and less misleading. (Sorry if the change causes any
temporary confusion.) Again, each link-directory expresses one
instance of a relation; in RDB terms that's one tuple of a relation or
one row of a table, while in OO theory terms it's one link of a
relation. (In fact that's not completely and invariably true, because
of the "weakly-typed" nature of link-dirs.) The directory which (by
definition) has as its children every link-directory of a given type
is *not* a link-directory. (It is an ordinary predicate-directory.) In
RDB terms it is the table, and its children are its rows. In OO terms
it is the relation (which makes it a class) and its children are the
links of that relation (the objects which are instances of the
relation).

Second, in the coming examples, assume that the present working
"directory" can be set to any "name", those of ordinary atomic files
as well as those of link- and predicate-directories. This isn't
essential to anything that follows, but it does make things more tidy.
The ability to list the path"names" of a given file makes it useful to
have the pwd point to an atomic file: a command, say

$ ls -P

, can list (some of) the parents of the current file, whether or not
it is a directory. The change also creates consistency with
link-directories, which are non-(predicate-)directory files that can
be the target of the pwd.

On 5/28/05, Alexander G. M. Smith <[EMAIL PROTECTED]> wrote:
> Leo Comerford wrote on Wed, 18 May 2005 12:50:38 +0100:
> > But if you have relation-directories and the ability to find the
> > pathnames of a given file, you can do everything you can do with
> > subfiles, just as nicely, and more besides. And if subfiles are
> > completely redundant and bad news anyway, we shouldn't have them.
>
> I prefer subfiles (or fildirutes) as being easier to understand.  But
> maybe that's just due to lots of experience with using file hierarchies.
> I can see having a relational system, but I'd always want to also have
> a directory hierarchy namespace, so that all files can be named.
>
> Having those relationship directories seems kind of clunky - since
> they're not located near the object being investigated.  Though
> that's a GUI matter of making/(something)/friend the system file browser pop 
> up a
> "Show Relationships..." menu item as contrasted with drilling down
> to a subfile directory listing by clicking on an item.

I'll start with an example here. Imagine a directory,

/(whatever)/portrait

, in which there are portrait photos of a number of men, one photo per
man. Each photo is identified under /(whatever)/portrait by the guy's
first name, so you have

/(whatever)/portrait/Mike
/(whatever)/portrait/Bob

and so on. Now suppose we use link-directories to express father/son
relationships between the guys in the photos. So, for example, if Mike
is Bob's father, we could have

/(something)/father-son/
/(something)/father-son/aardvark:
/(something)/father-son/aardvark:father (which is the file also known
as '/(whatever)/portrait/Mike')
/(something)/father-son/aardvark:son (the file also known as
'/(whatever)/portrait/Bob')

Using these link directories, we can easily express the information in
this (father's-side) family tree:

     Mike  
  |   |
  v   v
 --- Bob --  Ted
 ||   |   |
 vv   v   v
Joe  DeanEd  Todd

, where Mike > Bob means "Mike is the picture of the father of the
guy pictured in Bob".

But this is where the clunkiness comes in. The family-tree
representation above is an obvious and natural way to conceive of and
manipulate the father/son relationships. We want there to be a
father-son link straight from Mike to Bob; what's more, we want to be
able to list the children (in the graph sense!) of Mike and see Bob
and Ted, and to move leafward from Mike to Bob or rootward from Bob to
Mike. But when we look at how we expressed the information using
link-directories, we see this instead:

--- /(something)/father-son/ 
|   |
v   v
aardvark -  

Re: Reiser3 bug in 2.6.11.11

2005-11-17 Thread [EMAIL PROTECTED]

Konstantin Münning schrieb:

init started and first system startup messages appeared. But then a
bunch of oopses appeared fast so I was not able to find which part of
the kernel was causing the first error and then the keyboard stops
responding so I couldn't scrollback. At that point only powering down
was possible. I can't tell if it happens while fs was RO or when/after
it was remounted RW. And as there was no network or disk access at that
point recovering some information was not possible.


can you reproduce the oopses and redirect the errors/oops message to a 
serial console or netconsole? does the error go away with a current 
kernel? perhaps some reiserfs guru can decode them


--
BOFH excuse #293:

You must've hit the wrong any key.


Re: More Slowdown

2005-11-17 Thread [EMAIL PROTECTED]

Francesco Biscani schrieb:
What are the implications of doing something like this? Is "sync" going to 
stop working or isn't it using this function?


sync(8) won't stop working, because it's using sync(2):

% strace -T sync 2>&1 | grep sync
execve("/bin/sync", ["sync"], [/* 20 vars */]) = 0
sync()  = 0 <0.213305>


...but can someone explain to me: what's the difference between sync(2) 
and fsync(2) ? why are there 2 systemcalls, why is fsync(2) expensive 
and (mis?)used so often by applications and sync(2) is cheap (not?) and 
used only by sync(8)? the manpages say:


fsync, fdatasync -
synchronize a file's complete in-core state with that on disk

sync -
commit buffer cache to disk

but both syscalls do not guarantee  data  integrity anyway, because 
"modern disks have large caches".


thank you,
Christian.
--
BOFH excuse #453:

Spider infestation in warm case parts


Re: More Slowdown

2005-11-17 Thread Hans Reiser
6% fragmentation is enormous.  You very much need the repacker we have
not yet written.

remember that one seek and rotate takes ~12 ms, and during that time you
could transfer 50MB*.012 bytes.

Hans

John Gilmore wrote:

>On Thursday 17 November 2005 12:40, Vladimir V. Saveliev wrote:
>  
>
>>Please try whether the attached patch improves anything. It simplifies
>>fsync by avoid commiting of transactions which do not modify file being
>>fsync-ed.
>>
>>The patch applied to 2.6.14-mm2 with warnings, but that can be ignored.
>>
>>
>
>I haven't tried this patch yet, but I did try the earlier 'disable fsync 
>completely' patch. In fact, I'm using it right now.
>
>It doesn't help. Therefore, your patch probably won't help either.
>
>OK, disabling fsync does help a *little* bit. But I think that the issue (for 
>me, anyway) isn't sync per se, it's just flat-out access time. Deleteing lots 
>of small files is EXTREMELY slow, but even reading files is slower than it 
>should be. It took no less that 10 minutes to delete an old kernel source 
>tree, for instance. 
>
>It's related to fragmentation, I think. I didn't really notice any speed 
>problems until my hard drive got to about 95% (or so) full. But they haven't 
>gone away, even though usage is now down around 54%.
>
>Hrm... I should be able to check that...
>
>
>About an hour later...
>
>So maybe I was wrong. 6.5% data fragmentation doesn't seem that high. But 
>19.8% tree fragmentation does seem a bit high. 
>
>How should this data be interpreted?
>
>
>#measurefs.reiser4 -T /dev/mapper/e-h -f
>measurefs.reiser4 1.0.5
>Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by 
>reiser4progs/COPYING.
>
>Tree fragmentation ... done
>0.197747
>
>#measurefs.reiser4 -S -D /dev/mapper/e-h -f
>measurefs.reiser4 1.0.5
>Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by 
>reiser4progs/COPYING.
>
>Data fragmentation ... done
>0.065593
>Tree statistics ... done
>Packing statistics:
>  Formatted nodes:3721.29b (90.85%)
>  Branch nodes:   1734.57b (42.35%)
>  Twig nodes: 2886.97b (70.48%)
>  Leaf nodes: 3814.82b (93.14%)
>
>Node statistics:
>  Total nodes:8543553
>  Formatted nodes: 146354
>  Unformatted nodes:  8397199
>  Branch nodes:   292
>  Twig nodes:   10542
>  Leaf nodes: 8532719
>
>Item statistics:
>  Total items: 637352
>  Nodeptr items:   146353
>  Statdata items: 191218
>  Direntry items:   17512
>  Tail items:  245018
>  Extent items: 36869
>
>
>#
>
>
>  
>



Re: More Slowdown

2005-11-17 Thread Hans Reiser
PFC wrote:

>
> Just a few words about this "slowdown" thing.
>
> I use linux-2.6.11-cko1-swsusp2 with reiser4 included. I won't
> upgrade to  a new version until Hans says the current one is at least
> as stable as it  was before starting the merge...
>
> I get the "slowdown" once in a while, usually for 2-5 seconds,
> it's not  that annoying.
>
> However :
>
> If I understand well, when memory is needed (memory pressure),
> reiser4  triggers a flush and writes dirty pages to the disk in large
> quantities.
> This has many advantages like not writing at all the temporary
> files  which already have been deleted, deferred allocation, etc, it's
> really  cool.
>
> However when "memory pressure" (ie. need to free some RAM) occurs,
> it is  usually that I am doing something interactively, like opening a
> document  or starting some software. Or it might mean that the
> database server just  received a big query which needs some sorting
> space in RAM for instance.
> Thus, "memory pressure" almost always means "I need memory NOW
> and  someone is waiting in front of their screen for it"...
> And it is at this very moment that reiser4 has to flush (to free
> memory).
> Thus the "flush storm", by nature, always happens when you don't
> want it  to happen. It almost never happens when you are away from the
> computer  taking a leak, for instance.
>
> This is analogous to the problem caused to postgres by
> checkpointing...  the postgres guys implemented a background writer to
> solve this.
> I wonder if reiser4 could do the same, ie. trickle down dirty
> pages to  free up memory before it is actually needed, to improve
> reactivity. There  is a balance to be found, of course, between
> flushing as late as possible  (to benefit from all the nifty reiser4
> features) and flushing earlier (to  avoid triggering the "flush storm").
> Maybe this could be set via a few controls...
> - tell reiser4 to try to keep X amount of RAM immediately
> available  without flush
> - when the CPU is idle, and/or when the disk is idle, start
> flushing,  but stop doing it as soon as some CPU is needed, or a key
> is hit...
> - just do frequent, small partial flushes which will keep good
> locality  of reference while being small
> - do it at a lower priority so that the keyboard does not
> stop  responding !!!

I agree that smoothness needs working on.  After we merge.

>
> Huh, well, that's it... what do you think ?
>
>
>
>> When fsyncing, Reiser4, to my understanding, isn't allowed to put
>> stuff in it's memory cache - it must put it to disk right away.  And
>
>
> This is the whole point of fsync, yes.
> Now, it's pretty stupid for evlolution to issue a fsync() on every
> pixel  move or whatever.
> fsync() is for databases or things which must survive a hard
> system  crash...
> evolution could as well have used fflush() and everything would
> have been  alright. Dumb.
>
>> For comparative purposes, I hear of consumer systems with 2 or 4 GB of
>> ram, and I know of brand new PC hard disks which have a throughput of
>> less than 5 MB/s (my hard disk maxees out at 20 MB/s on my PC.)  Do
>> you know the throughputs of your drives, and the size of the memory in
>> your machines?
>
>
> Hum. A crap laptop harddrive will do 15 MBytes/s and a recent
> normal  desktop drive (7200rpm ATA or SATA) will do 50 MBytes/s or
> more...
> If you get a lot less (like, 5 MB/s), you have a problem (DMA
> disabled,  etc)
>
>
>
>
PFC is right.


Re: More Slowdown or reiser4 update for 2.6.14-mm2

2005-11-17 Thread Thorsten Hirsch
Seems like there's a bug in your patch

> ftp://ftp.namesys.com/pub/reiser4-for-2.6/2.6.14-mm2/reiser4-for-2.6.14-mm2-1.patch.gz

[ cut here ]
kernel BUG at fs/reiser4/block_alloc.c:149!
invalid operand:  [#1]
last sysfs file: /class/vc/vcsa7/dev
Modules linked in: snd_opl3_synth snd_seq_instr snd_seq_midi_emul
snd_ainstr_fm snd_pcm_oss snd_mixer_oss snd_seq_oss snd_seq_midi_event
snd_seq snd_cmipci snd_pcm snd_page_alloc snd_opl3_lib snd_timer
snd_hwdep snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore ntfs
tuner tvaudio bttv video_buf firmware_class i2c_algo_bit v4l2_common
btcx_risc tveeprom i2c_core videodev ehci_hcd uhci_hcd usbcore via_rhine
lp parport_pc parport loop aes_i586 nvidia rtc
CPU:0
EIP:0060:[]Tainted: P  VLI
EFLAGS: 00210297   (2.6.14-mm2)
EIP is at sub_from_ctx_grabbed+0x3b/0x50
eax:    ebx:    ecx: 0001   edx: 
esi: da564cc0   edi: c158d800   ebp: c5b6f2e0   esp: c3013ca4
ds: 007b   es: 007b   ss: 0068
Process java (pid: 7631, threadinfo=c3012000 task=c495ba90)
Stack: 0001  c01a21ef da564cc0 0001  d36cf960
d36cf960
   d3dd43e0 c01a428d d3dd43e0 0001  d36cf960 d36cf960
c5b6f38c
   c01a42ec d36cf960 d3dd43e0 c5b6f38c 0003 0001 c01d2f16
c5b6f38c
Call Trace:
 [] grabbed2flush_reserved_nolock+0x3f/0x80
 [] do_jnode_make_dirty+0x11d/0x150
 [] jnode_make_dirty_locked+0x2c/0x40
 [] save_static_sd+0x86/0x90
 [] znode_make_dirty+0x1e/0x80
 [] update_sd_at+0xd2/0x220
 [] locate_inode_sd+0xe8/0x100
 [] update_sd+0x7b/0xa0
 [] preempt_point+0x5/0x20
 [] write_sd_by_inode_common+0xc8/0xd0
 [] init_context+0xe/0x80
 [] sync_unix_file+0x58/0x80
 [] write_file+0x9c/0xd0
 [] preempt_point+0x5/0x20
 [] txn_begin+0x1d/0x30
 [] write_unix_file+0x310/0x5f0
 [] copy_from_user+0x4c/0x90
 [] write_unix_file+0x0/0x5f0
 [] do_readv_writev+0x18d/0x310
 [] schedule+0x313/0x650
 [] vfs_writev+0x58/0x60
 [] sys_writev+0x4b/0xb0
 [] syscall_call+0x7/0xb
Code: 24 14 8b 4c 24 10 8b 56 64 8b 46 60 39 da 76 15 29 c8 19 da 89 46
60 89 56 64 8b 1c 24 8b 74 24 04 83 c4 08 c3 72 04 39 c8 73 e5 <0f> 0b
95 00 32 8d 46 c0 eb db 8d 74 26 00 8d bc 27 00 00 00 00
-

Regards,
Thorsten



Re: Regular Plugin

2005-11-17 Thread Edward Shishkin

Peter van Hardenberg wrote:

The notion of the regular plugin seems odd to me. It is a seperate plugin type 
with distinct plugins that only serve to refer to "file" plugins (which are 
found in plugin/object.c, not in plugin/file/*.c).
 



In accordance with the last policy file plugins, that implement objects 
which are known
(for vfs) as regular files, should be stored in plugin/file directory, 
so in the latest versions
of reiser4 the file regular.c has been moved to the upper common 
directory "plugin".


So when I create a new "file" plugin, I cannot use it unless I also create a 
"regular" plugin which serves no purpose except to allow me to create those 
"file"s by storing their ID. 
 



You are right.

A few words explaining why the "regular" plugin field couldn't have somehow 
storeda "file" plugin would be educational. 



Because changing a file plugin id is unsafe operation (at least in the 
case when there is
more then one field of file plugin type in struct plugin_set): suppose 
you allow a some
file plugin to be changed, it means that users also will be able to 
change foo//plugin/file,
the main plugin which manages the file "foo". This is why we added a 
special plugin type:

feel free to change these plugins.

Also, regular is a rather unclear 
name. Something like "defaultfileplugin" might be easier to deduce, or even 
"defaultchild".


 



Perhaps you are right about clearness, but the reason for the name 
"regular" was the need for
nominated children to be "regular files for vfs". This is why 
"defaultfileplugin" sounds not
so good (file plugin can be a directory file plugin, whereas mkdir 
doesnt look at this field
at all, and "default" sounds like something that is not to be modified). 
Maybe "regularchild"

will improve the situation?

Thanks,
Edward.


-pvh

 





Re: More Slowdown or reiser4 update for 2.6.14-mm2

2005-11-17 Thread Hesse, Christian
On Thursday 17 November 2005 18:22, Vladimir V. Saveliev wrote:
> Hello
>
> Hesse, Christian wrote:
> > Vladimir V. Saveliev wrote:
> >>Please try whether the attached patch improves anything. It simplifies
> >>fsync by avoid commiting of transactions which do not modify file being
> >>fsync-ed.
> >>
> >>The patch applied to 2.6.14-mm2 with warnings, but that can be ignored.
> >
> > Hi everybody,
> >
> > I'm suffering the same problem, sync and fsync are horribly slow. I've
> > written a small test program:
> >
> > http://www.earthworm.de/tmp/reiser4-fsync.c
> >
> > with 2.6.13:
> > sync()  = 0 <0.000198>
> > fsync(3)= 0 <0.003353>
> >
> > with 2.6.14 (with and without patch):
> > sync()  = 0 <2.092873>
> > fsync(3)= 0 <0.132579>
>
> I tried your test on a box with reiser4 root fs:
> 2.6.13:
> strace -T -e sync,fsync ./eworm xx
> fsync(3)= 0 <0.158808>
>
> 2.6.14-mm2 +
> ftp://ftp.namesys.com/pub/reiser4-for-2.6/2.6.14-mm2/reiser4-for-2.6.14-mm2
>-1.patch.gz
>
> strace -T -e sync,fsync ./eworm xx
> fsync(3)= 0 <0.005373>
>
> Would you please try whether 2.6.14-mm2 with fresh reiser4 update fsyncs
> better?

No change, still bad performance: up to 2 seconds in sync(), up to 0.2 seconds 
in fsync().
-- 
Christian


pgpi42UtePgPN.pgp
Description: PGP signature


Re: More Slowdown or reiser4 update for 2.6.14-mm2

2005-11-17 Thread Thorsten Hirsch
Me again,

meanwhile I've applied this patch to my 2.6.14-mm2 (gentoo):

ftp://ftp.namesys.com/pub/reiser4-for-2.6/2.6.14-mm2/reiser4-for-2.6.14-mm2-1.patch.gz

...and I've got to say: THANK YOU! This patch has cured my slow system,
everything's running normal again. Everything? Well, I'm not so sure
about the result of the earthworm-test:

$ strace -T -e sync,fsync ./a.out
sync()  = 0 <70.050916>
fsync(3)= 0 <0.232150>

Looks like a new world record of slowness. :-(

Thorsten



Re: More Slowdown or reiser4 update for 2.6.14-mm2

2005-11-17 Thread Thorsten Hirsch
Hi again,

> > http://www.earthworm.de/tmp/reiser4-fsync.c
> > 
> > with 2.6.13:
> > sync()  = 0 <0.000198>
> > fsync(3)= 0 <0.003353>
> > 
> > with 2.6.14 (with and without patch):
> > sync()  = 0 <2.092873>
> > fsync(3)= 0 <0.132579>
> 
> I tried your test on a box with reiser4 root fs:
> 2.6.13:
> strace -T -e sync,fsync ./eworm xx
> fsync(3)= 0 <0.158808>
> 
> 2.6.14-mm2 +
> ftp://ftp.namesys.com/pub/reiser4-for-2.6/2.6.14-mm2/reiser4-for-2.6.14-mm2-1.patch.gz
> 
> strace -T -e sync,fsync ./eworm xx
> fsync(3)= 0 <0.005373>

here are my results for 2.6.14-mm2 (gentoo, w/o that patch for -mm2):

$ strace -T -e sync,fsync ./a.out
sync()  = 0 <0.767049>
fsync(3)= 0 <0.207243>

I'm going to install the latest gentoo-sources and will try it again
with some patches. Oh, but please have a closer look onto the mail from
John Gilmore, he wrote today. I'm experiencing the same: the slowdown
does not affect vim and evolution only, but the whole system. And yes,
also the reads are a lot slower. Bootup time has increased by factor 3
or 4. And because of all the disk activity I'd also guess, that some
kind of fragmentation is causing these problems, but I haven't checked
tree fragmentation, yet. ...probably later.

Thorsten



Re: More Slowdown

2005-11-17 Thread John Gilmore
On Thursday 17 November 2005 12:40, Vladimir V. Saveliev wrote:
> Please try whether the attached patch improves anything. It simplifies
> fsync by avoid commiting of transactions which do not modify file being
> fsync-ed.
>
> The patch applied to 2.6.14-mm2 with warnings, but that can be ignored.

I haven't tried this patch yet, but I did try the earlier 'disable fsync 
completely' patch. In fact, I'm using it right now.

It doesn't help. Therefore, your patch probably won't help either.

OK, disabling fsync does help a *little* bit. But I think that the issue (for 
me, anyway) isn't sync per se, it's just flat-out access time. Deleteing lots 
of small files is EXTREMELY slow, but even reading files is slower than it 
should be. It took no less that 10 minutes to delete an old kernel source 
tree, for instance. 

It's related to fragmentation, I think. I didn't really notice any speed 
problems until my hard drive got to about 95% (or so) full. But they haven't 
gone away, even though usage is now down around 54%.

Hrm... I should be able to check that...


About an hour later...

So maybe I was wrong. 6.5% data fragmentation doesn't seem that high. But 
19.8% tree fragmentation does seem a bit high. 

How should this data be interpreted?


#measurefs.reiser4 -T /dev/mapper/e-h -f
measurefs.reiser4 1.0.5
Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by 
reiser4progs/COPYING.

Tree fragmentation ... done
0.197747

#measurefs.reiser4 -S -D /dev/mapper/e-h -f
measurefs.reiser4 1.0.5
Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by 
reiser4progs/COPYING.

Data fragmentation ... done
0.065593
Tree statistics ... done
Packing statistics:
  Formatted nodes:3721.29b (90.85%)
  Branch nodes:   1734.57b (42.35%)
  Twig nodes: 2886.97b (70.48%)
  Leaf nodes: 3814.82b (93.14%)

Node statistics:
  Total nodes:8543553
  Formatted nodes: 146354
  Unformatted nodes:  8397199
  Branch nodes:   292
  Twig nodes:   10542
  Leaf nodes: 8532719

Item statistics:
  Total items: 637352
  Nodeptr items:   146353
  Statdata items: 191218
  Direntry items:   17512
  Tail items:  245018
  Extent items: 36869


#


Re: More Slowdown or reiser4 update for 2.6.14-mm2

2005-11-17 Thread Vladimir V. Saveliev
Hello

Hesse, Christian wrote:
> Vladimir V. Saveliev wrote:
>>Please try whether the attached patch improves anything. It simplifies
>>fsync by avoid commiting of transactions which do not modify file being
>>fsync-ed. 
>>
>>The patch applied to 2.6.14-mm2 with warnings, but that can be ignored.
> 
> Hi everybody,
> 
> I'm suffering the same problem, sync and fsync are horribly slow. I've 
> written 
> a small test program:
> 
> http://www.earthworm.de/tmp/reiser4-fsync.c
> 
> with 2.6.13:
> sync()  = 0 <0.000198>
> fsync(3)= 0 <0.003353>
> 
> with 2.6.14 (with and without patch):
> sync()  = 0 <2.092873>
> fsync(3)= 0 <0.132579>

I tried your test on a box with reiser4 root fs:
2.6.13:
strace -T -e sync,fsync ./eworm xx
fsync(3)= 0 <0.158808>

2.6.14-mm2 +
ftp://ftp.namesys.com/pub/reiser4-for-2.6/2.6.14-mm2/reiser4-for-2.6.14-mm2-1.patch.gz

strace -T -e sync,fsync ./eworm xx
fsync(3)= 0 <0.005373>


Would you please try whether 2.6.14-mm2 with fresh reiser4 update fsyncs better?


Re: need opinions from sysadmins on where reiser4progs should install

2005-11-17 Thread Philippe Gramoullé

Hello Hans,

On Sat, 12 Nov 2005 23:17:37 -0800
Hans Reiser <[EMAIL PROTECTED]> wrote:

  | What do the sysadmins on the list think?
  | 
  | Hans

Personally, for Reiserfs V3, i always compiled reiserfsprogs statically and 
installed
the tools in /sbin.

Mainly because, we used to have /usr on a separate partition on all server 
installs.

So should a crash occur and /usr becomes corrupted, well, at least / is mounted 
and i could
reiserfsck partitions right away, handy when the server is several thousand 
kilometers away :)

I expect to do the same for reiser4progs, so i wish that reiser4progs utilities 
would install
in /, and as such /sbin seems the best choice _to me_

Thanks

Philippe

PS: I hope that Santa will bring me a brand new kernel.org kernel with reiser4 
in :)
Good luck with that, and congratulations to you and the whole team for such 
a nice
filesystem


Re: More Slowdown

2005-11-17 Thread Hesse, Christian
Vladimir V. Saveliev wrote:
> Please try whether the attached patch improves anything. It simplifies
> fsync by avoid commiting of transactions which do not modify file being
> fsync-ed. 
>
> The patch applied to 2.6.14-mm2 with warnings, but that can be ignored.

Hi everybody,

I'm suffering the same problem, sync and fsync are horribly slow. I've written 
a small test program:

http://www.earthworm.de/tmp/reiser4-fsync.c

with 2.6.13:
sync()  = 0 <0.000198>
fsync(3)= 0 <0.003353>

with 2.6.14 (with and without patch):
sync()  = 0 <2.092873>
fsync(3)= 0 <0.132579>
-- 
Christian


pgpyj0k35mBC3.pgp
Description: PGP signature


Thomas: to you

2005-11-17 Thread Neve Strite



 

L C A V X V Pe I m I a A rv A b A n L oi L i G a I zt I e R x U ara S n A   M c   3,75    3,32    1,22  http://www.kfdrvt.renonendo.com


Re: More Slowdown

2005-11-17 Thread Vladimir V. Saveliev
Hello

Artur Makówka wrote:
> Hans Reiser wrote:
>> fsync can be dramatically better optimized, and it will be after the
>> kernel merge work is completed.  This optimization will likely consist
>> of reducing the tendency to merge atoms and handling fsync by using
>> write twice algorithms to a fixed journal area.  Other improvements will
>> doubtless be found when time is spent on it.  I am sorry that vim and
>> evolution are suffering so much from our neglecting fsync until after
>> the merge.  fsync is one of the things I would have us working on if I
>> had my choice of what we improved in reiser4 rather than other persons
>> making that choice for us at the moment.  Oh well, such is life in the
>> society of men.;-)
>>
>> It looks like akpm is going to start reading the reiser4 code.  I
>> suspect his remarks will be a step above the ones made so far, he wrote
>> such nice readahead code.
>>
> 
> Just want to add, that for desktop systems its only vim and evolution,
> but for my free hosting server it was very frequent system crashes
> (because of that i lost part of my database) and so on. Just want to
> warn anyone deciding to use reiser4 on server, to use 2.6.12 kernels or
> lower as this bug is almost not existent there.
> 
> For some uses of reiser4 this bug is very dangerous. Not just slow work
> of some application, but like i said data loss, system instability (few
> crashes every day), and so on.
> 
> I would say such a bug/design choice should be top priority, number one.
> Of course thats not true if reiser4 is meant to be only for home use.
> Just want to point that out, because it seems everybody is using reiser4
> only at home, and i am the only one on earth using it on server
> environment (i guess that wasn't the best idea...)
> 
> Thanks in advance for consideration of taking this bug to top of your
> TODO list.
> 

Please try whether the attached patch improves anything. It simplifies fsync by
avoid commiting of transactions which do not modify file being fsync-ed.

The patch applied to 2.6.14-mm2 with warnings, but that can be ignored.



This patch simplifies reiser4's fsync. 
It is an experimental patch to test whether it helps against slowdowns reported 
by users.


 fs/reiser4/plugin/file/file.c |   14 ++
 fs/reiser4/txnmgr.c   |   22 +++---
 fs/reiser4/txnmgr.h   |1 +
 3 files changed, 30 insertions(+), 7 deletions(-)

diff -puN fs/reiser4/plugin/file/file.c~reiser4-fix-fsync 
fs/reiser4/plugin/file/file.c
--- linux-2.6.14-mm2/fs/reiser4/plugin/file/file.c~reiser4-fix-fsync
2005-11-17 13:42:26.0 +0300
+++ linux-2.6.14-mm2-vs/fs/reiser4/plugin/file/file.c   2005-11-17 
13:42:26.0 +0300
@@ -1633,11 +1633,25 @@ int sync_unix_file(struct file *file, st
 {
int result;
reiser4_context *ctx;
+   txn_atom *atom;
+   reiser4_block_nr reserve;
 
ctx = init_context(dentry->d_inode->i_sb);
if (IS_ERR(ctx))
return PTR_ERR(ctx);
 
+   reserve = estimate_update_common(dentry->d_inode);
+   if (reiser4_grab_space(reserve, BA_CAN_COMMIT))
+   return RETERR(-ENOSPC);
+   write_sd_by_inode_common(dentry->d_inode);
+
+   atom = get_current_atom_locked();
+   spin_lock_txnh(ctx->trans);
+   force_commit_atom(ctx->trans);
+   reiser4_exit_context(ctx);
+   return 0;
+
+
assert("nikita-3486", ctx->trans->atom == NULL);
result = commit_file_atoms(dentry->d_inode);
assert("nikita-3484", ergo(result == 0, ctx->trans->atom == NULL));
diff -puN fs/reiser4/txnmgr.c~reiser4-fix-fsync fs/reiser4/txnmgr.c
--- linux-2.6.14-mm2/fs/reiser4/txnmgr.c~reiser4-fix-fsync  2005-11-17 
13:42:26.0 +0300
+++ linux-2.6.14-mm2-vs/fs/reiser4/txnmgr.c 2005-11-17 13:42:26.0 
+0300
@@ -1173,9 +1173,14 @@ static int commit_current_atom(long *nr_
 
 /* TXN_TXNH */
 
-/* commit current atom and wait commit completion; atom and txn_handle should 
be
- * locked before call, this function unlocks them on exit. */
-static int force_commit_atom_nolock(txn_handle * txnh)
+/**
+ * force_commit_atom - commit current atom and wait commit completion
+ * @txnh:
+ *
+ * Commits current atom and wait commit completion; current atom and @txnh have
+ * to be spinlocked before call, this function unlocks them on exit.
+ */
+int force_commit_atom(txn_handle *txnh)
 {
txn_atom *atom;
 
@@ -1188,14 +1193,17 @@ static int force_commit_atom_nolock(txn_
assert("zam-834", atom != NULL);
assert_spin_locked(&(atom->alock));
 
-   /* Set flags for atom and txnh: forcing atom commit and waiting for
-* commit completion */
+   /*
+* Set flags for atom and txnh: forcing atom commit and waiting for
+* commit completion
+*/
txnh->flags |= TXNH_WAIT_COMMIT;
atom->flags |= ATOM_FORCE_COMMIT;
 
spin_unlock_txnh(txnh);
spin_unlock_atom(atom);
 
+   /* c

Re: reiserfsck --rebuild-tree failure

2005-11-17 Thread Carles Pina i Estany

Hi,

On Nov/17/2005, Vitaly Fertman wrote:

> > i've got a lot of error massages in kern.log: kern.log.
> > obvious, there are badblocks: badblocks.log.
> 
> check out www.namesys.com/bad-block-handling.html

interesting, I didn't know this feature. It works in Reiser 3 and 4? (It
seems that yes, just to be sure)

-- 
Carles Pina i EstanyGPG id: 0x8CBDAE64
http://pinux.info   Manresa - Barcelona


Re: More Slowdown

2005-11-17 Thread Artur Makówka

Hans Reiser wrote:

fsync can be dramatically better optimized, and it will be after the
kernel merge work is completed.  This optimization will likely consist
of reducing the tendency to merge atoms and handling fsync by using
write twice algorithms to a fixed journal area.  Other improvements will
doubtless be found when time is spent on it.  I am sorry that vim and
evolution are suffering so much from our neglecting fsync until after
the merge.  fsync is one of the things I would have us working on if I
had my choice of what we improved in reiser4 rather than other persons
making that choice for us at the moment.  Oh well, such is life in the
society of men.;-)

It looks like akpm is going to start reading the reiser4 code.  I
suspect his remarks will be a step above the ones made so far, he wrote
such nice readahead code.



Just want to add, that for desktop systems its only vim and evolution, 
but for my free hosting server it was very frequent system crashes 
(because of that i lost part of my database) and so on. Just want to 
warn anyone deciding to use reiser4 on server, to use 2.6.12 kernels or 
lower as this bug is almost not existent there.


For some uses of reiser4 this bug is very dangerous. Not just slow work 
of some application, but like i said data loss, system instability (few 
crashes every day), and so on.


I would say such a bug/design choice should be top priority, number one. 
Of course thats not true if reiser4 is meant to be only for home use. 
Just want to point that out, because it seems everybody is using reiser4 
only at home, and i am the only one on earth using it on server 
environment (i guess that wasn't the best idea...)


Thanks in advance for consideration of taking this bug to top of your 
TODO list.




Re: reiserfsck --rebuild-tree failure

2005-11-17 Thread Vitaly Fertman
On Wednesday 16 November 2005 20:27, iv wrote:
> i'm following an advice to send a bug report about failed reiserfsck
> --rebuild-tree found at http://www.namesys.com/faq.html#rebuild-tree.
> i tried to compile the newest reiserfsprogs-3.6.15-pre1 but it fails

use reiserfsprogs-3.6.19.tar.gz from ftp.namesys.com/pub/reiserfsprogs/
please

> while doing "make": make.log.
> so i run reiserfsck from a package (reiserfsck 3.6.13-pre1 (2003
> www.namesys.com)). it also failed: fsck.log.
> i've got a lot of error massages in kern.log: kern.log.
> obvious, there are badblocks: badblocks.log.

check out www.namesys.com/bad-block-handling.html

> i still can read from damaged partition. when i run `strings /dev/hdc3`
> i get plently of text.
> the question is if there is a way to mount the partition.
> thanks in advance.
> ivan matviyuk.
> 
> 

-- 
Vitaly


Re: Reiser3 bug in 2.6.11.11

2005-11-17 Thread Konstantin Münning
Hi!

[EMAIL PROTECTED] wrote:
> Konstantin Münning schrieb:
> 
>> init started and first system startup messages appeared. But then a
>> bunch of oopses appeared fast so I was not able to find which part of
>> the kernel was causing the first error and then the keyboard stops
>> responding so I couldn't scrollback. At that point only powering down
>> was possible. I can't tell if it happens while fs was RO or when/after
>> it was remounted RW. And as there was no network or disk access at that
>> point recovering some information was not possible.
> 
> 
> can you reproduce the oopses and redirect the errors/oops message to a
> serial console or netconsole? does the error go away with a current
> kernel? perhaps some reiserfs guru can decode them

Sorry I had no time to play as it is an "in-production" laptop and had
to be functional fast so I currently have no way to reproduce the fault.
 Redirecting output would require another kernel and the device has no
serial or network port :-(.

Maybe extracting metadata (debugreiserfs -p) would have been good for
debugging but at that point I had nowhere to store it. If this happens a
second time I will find a way to save it.

As there were only a few fs errors reported by fsck probably looking
over range/overflow checks in the code regarding used space/block size
might give a hint...

Have a nice day,
-- 
Konstantin Münning


Re: More Slowdown

2005-11-17 Thread PFC


Just a few words about this "slowdown" thing.

	I use linux-2.6.11-cko1-swsusp2 with reiser4 included. I won't upgrade to  
a new version until Hans says the current one is at least as stable as it  
was before starting the merge...


	I get the "slowdown" once in a while, usually for 2-5 seconds, it's not  
that annoying.


However :

	If I understand well, when memory is needed (memory pressure), reiser4  
triggers a flush and writes dirty pages to the disk in large quantities.
	This has many advantages like not writing at all the temporary files  
which already have been deleted, deferred allocation, etc, it's really  
cool.


	However when "memory pressure" (ie. need to free some RAM) occurs, it is  
usually that I am doing something interactively, like opening a document  
or starting some software. Or it might mean that the database server just  
received a big query which needs some sorting space in RAM for instance.
	Thus, "memory pressure" almost always means "I need memory NOW and  
someone is waiting in front of their screen for it"...

And it is at this very moment that reiser4 has to flush (to free 
memory).
	Thus the "flush storm", by nature, always happens when you don't want it  
to happen. It almost never happens when you are away from the computer  
taking a leak, for instance.


	This is analogous to the problem caused to postgres by checkpointing...  
the postgres guys implemented a background writer to solve this.
	I wonder if reiser4 could do the same, ie. trickle down dirty pages to  
free up memory before it is actually needed, to improve reactivity. There  
is a balance to be found, of course, between flushing as late as possible  
(to benefit from all the nifty reiser4 features) and flushing earlier (to  
avoid triggering the "flush storm").

Maybe this could be set via a few controls...
		- tell reiser4 to try to keep X amount of RAM immediately available  
without flush
		- when the CPU is idle, and/or when the disk is idle, start flushing,  
but stop doing it as soon as some CPU is needed, or a key is hit...
		- just do frequent, small partial flushes which will keep good locality  
of reference while being small
		- do it at a lower priority so that the keyboard does not stop  
responding !!!


Huh, well, that's it... what do you think ?




When fsyncing, Reiser4, to my understanding, isn't allowed to put
stuff in it's memory cache - it must put it to disk right away.  And


This is the whole point of fsync, yes.
	Now, it's pretty stupid for evlolution to issue a fsync() on every pixel  
move or whatever.
	fsync() is for databases or things which must survive a hard system  
crash...
	evolution could as well have used fflush() and everything would have been  
alright. Dumb.



For comparative purposes, I hear of consumer systems with 2 or 4 GB of
ram, and I know of brand new PC hard disks which have a throughput of
less than 5 MB/s (my hard disk maxees out at 20 MB/s on my PC.)  Do
you know the throughputs of your drives, and the size of the memory in
your machines?


	Hum. A crap laptop harddrive will do 15 MBytes/s and a recent normal  
desktop drive (7200rpm ATA or SATA) will do 50 MBytes/s or more...
	If you get a lot less (like, 5 MB/s), you have a problem (DMA disabled,  
etc)





Re: More Slowdown

2005-11-17 Thread Ingo Bormuth

If you are frequently hit by fsync (as some of the previosly posters told us) 
an option might be to say something as

  tmgr.atom_max_age=30 (or tmgr.atom_max_size=?)

in fstab (or remount the drive in vulnerable situations).

Of course that sacrifices large parts of reiser4's mean performance, but that
might be better than a largely unusable machine. One day reiser4 will be
fully optimized.




On 2005-11-16 22:08, michael chang wrote:
> That would explain any
> jerkiness -- it's because Reiser4 is writing everything from the last
> real write to the actual disk to now (the current real right) in one
> go, and making everything wait. 


-- 
Ingo Bormuth, voicebox & telefax: +49-12125-10226517  '(~o-o~)'
public key 86326EC9, http://ibormuth.efil.de/contact ---ooO--(.)--Ooo---