missing fs ksyms

2000-06-14 Thread Ben Fennema

I think buffer_insert_inode_queue and fsync_inode_buffers need to be
added to ksyms.c for ext2 to compile as a module in later 2.4-ac kernels.

Ben



Re: Trimming VFS inodes?

2000-06-14 Thread Hans Reiser

Richard Gooch wrote:
> 
>   Hi, Al. I'd like to explore an idea Linus suggested a while back. He
> suggested using VFS inodes as the data store for devfs, rather than
> keeping stuff in devfs entries. So the idea would be that the VFS
> maintains the tree structure rather than devfs entries.
> 
> This is a lot closer to being feasible with all the VFS changes you've
> been making, but there is one problem that really concerns me. VFS
> inodes are very heavyweight. The devfs entries are very lightweight,
> storing only that which is necessary. So you could save some code
> space in devfs, but at the expense of increased data size. Either way,
> it costs RAM.
> 
> Have you given any consideration to coming up with a more lightweight
> inode structure? Either through modification of the VFS inode, or
> creation of some kind of "generic" lightweight inode structure that
> stores the bare essentials. Perhaps it could go like this:
> dentry->lightweight inode->heavyweight inode.


> 
> Another idea (probably too radical, and also CPU inefficient), is a
> super lightweight inode that has just two pointers: one to FS-specific
> data, another to FS-specific methods. The methods are used to
> read/write inode members, so each FS can decide just how much is worth
> storing.

There are desired applications of reiserfs where the VFS inode is just too
heavyweight.  I'd just like to say that this seems like a good concern you have
here, and the ReiserFS team is completely willing to recode in 2.5.* to
accomodate your radical proposal, or some as yet unproposed even better radical
proposal if it comes along, because this is a real issue.  Perhaps the ultimate
lightweight inode would simply mean treating the dcache as optional, and the FS
determining whether to look there for it or sidestep it.

For persons surprised that this is a real issue, let me just mention that there
are persons desiring to put 30 million entry plus hypertext indexes with poor
locality of reference into reiserfs as directories, and one issue is that the
VFS inode costs too much RAM.  For these indexes to be effective one needs to
use stem compression and other such techniques on them just to be able to
prevent being killed by random I/Os to disk when the index is too big for RAM.

> 
> Yet another idea is to split the dcache and icache so that you can
> keep dentries around (thus maintaining your tree), with pointers to
> FS-specific data (to save "inode" state), but still free VFS inodes
> when there is memory pressure. This would require a new "refill"
> method, which is similar but not quite the same as the lookup()
> method.

Also interesting.

> 
> I have two basic questions:
> 
> - do you see merit in some kind of cheaper inode structure
> 
> - how would you like to see it done?
> 
> Regards,
> 
> Richard
> Permanent: [EMAIL PROTECTED]
> Current:   [EMAIL PROTECTED]

This looks like the start of an interesting discussion.:)



Boot errors after manual mount/unmount of EXT3 fs

2000-06-14 Thread Cassandra Sewell

Has anyone seen this problem. I have a machine which is using partitions 
that are EXT3 w/ Linux V 2.2.5-15.  I was performing a mount/unmount of an EXT3
fs. Every thing 
was working fine When I got an system hang on the issue of an unmount for 
the ext3 fs. The system was rebooted and then I began to get the messages saying
that the fs ext3 was not supported, and to run e2fsck. At boot time the system
would go through the boot process and then go to kdb. I rebooted w 2.2.12ext3
and attempted the e2fsck now I am unable to get 
the system up and functioning because it does mount any of the ext3 fs, and
seems 
to think they are ext2.   

***Messages after executing ex2fsck*
Linux version 2.2.5-15 ([EMAIL PROTECTED]) (gcc version egcs-2.91.66
19990314/Linux (egcs-
1.1.2 release)) #1 Mon Apr 19 23:00:46 EDT 1999
Detected 266322585 Hz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 265.42 BogoMIPS
...
...
...
autodetecting RAID arrays
autorun ...
... autorun DONE.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 60k freed
Adding Swap: 528188k swap-space (priority -1)
EXT2-fs warning: mounting fs with errors, running e2fsck is recommended
EXT2-fs error (device ide0(3,1)): ext2_check_blocks_bitmap: Wrong free blocks
count for group 15, st
ored = 6300, counted = 6301
EXT2-fs error (device ide0(3,1)): ext2_check_blocks_bitmap: Wrong free blocks
count in super block,
stored = 55127, counted = 55128
EXT2-fs error (device ide0(3,1)): ext2_check_inodes_bitmap: Wrong free inodes
count in group 0, stor
ed = 1773, counted = 1772
EXT2-fs error (device ide0(3,1)): ext2_check_inodes_bitmap: Wrong free inodes
count in group 15, sto
red = 1534, counted = 1536
EXT2-fs error (device ide0(3,1)): ext2_check_inodes_bitmap: Wrong free inodes
count in super block,
stored = 21415, counted = 21416


END ***

I attempted to boot up with 2.2.12ext3 (with ext3 support) and recieved the 
following errors.  But at least it mounts the fs. 

* boot 2.2.12
Linux version 2.2.12ext3 ([EMAIL PROTECTED]) (gcc version egcs-2.91.66
19990314/Linux (egcs-
1.1.2 release)) #2 SMP Fri Mar 3 02:50:38 MST 2000
mapped APIC to e000 (002d)
mapped IOAPIC to d000 (002d1000)
...
...
Partition check:
 hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 hda9 hda10 > hda4
 hdb: hdb1 hdb2 hdb3 < hdb5 hdb6 hdb7 hdb8 hdb9 hdb10 > hdb4
autodetecting RAID arrays
autorun ...
... autorun DONE.
Journal inode found at cffc6000: 2048000
JFS DEBUG: (journal.c, 528): journal_init_inode: journal cffedb60: inode
03:01/187, size 2048000, bi
ts 10, blksize 1024
JFS DEBUG: (recovery.c, 411): journal_recover: JFS: recovery, exit status 0,
recovered transactions
3048 to 3072
EXT3-fs warning: mounting fs with errors, running e2fsck is recommended
EXT3-fs error (device ide0(3,1)): ext3_check_blocks_bitmap: Wrong free blocks
count for group 15, st
ored = 6300, counted = 6301
EXT3-fs error (device ide0(3,1)): ext3_check_blocks_bitmap: Wrong free blocks
count in super block,
stored = 55155, counted = 55156
EXT3-fs error (device ide0(3,1)): ext3_check_inodes_bitmap: Wrong free inodes
count in group 0, stor
ed = 1773, counted = 1772
EXT3-fs error (device ide0(3,1)): ext3_check_inodes_bitmap: Wrong free inodes
count in group 15, sto
red = 1534, counted = 1536
EXT3-fs error (device ide0(3,1)): ext3_check_inodes_bitmap: Wrong free inodes
count in super block,
stored = 21421, counted = 21422
VFS: Mounted root (ext3 filesystem).
Freeing unused kernel memory: 64k freed
Adding Swap: 528184k swap-space (priority -1)
Journal inode found at cfaedb00: 2048000
JFS DEBUG: (journal.c, 528): journal_init_inode: journal cffedec0: inode
03:07/171, size 2048000, bi
ts 10, blksize 1024
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
Journal inode found at cfaed8c0: 2048000
JFS DEBUG: (journal.c, 528): journal_init_inode: journal cfa02000: inode
03:06/15, size 2048000, bit
s 10, blksize 1024
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
Journal inode found at cfaed560: 2048000
JFS DEBUG: (journal.c, 528): journal_init_inode: journal cfa02120: inode
03:05/39, size 2048000, bit
s 10, blksize 1024
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
Journal inode found at cfaed200: 2048000
JFS DEBUG: (journal.c, 528): journal_init_inode: journal cfa02240: inode
03:02/14, size 2048000, bit
s 10, blksize 1024
*** end of trace **

I am relative new to LINUX and its Filesystems, etc.  Any help or assistance
would be invaluable.

Thanks

begin:vcard 
n:Sewell;Cassandra 
tel;work:(303)538-1729
x-mozilla-html:FALSE
org:Lucent Technologies;13MB8
adr:;;11900 N. Pecos Street;Rm 37W17;Denver;CO;80234
version:2.1
email;internet:[EMAIL PROTECTED]
title:Member of Technical Staff
x-mozilla-cpt:;-29984
fn:Sewell, Cassandra 
end:vcard



Re: Trimming VFS inodes?

2000-06-14 Thread Alexander Viro



On Tue, 13 Jun 2000, Richard Gooch wrote:

> > Richard, may I remind you that we are supposed to be in the freeze?
> > There may be a chance to trim the union down _and_ get it into 2.4.
> 
> ??? Didn't you read the other parts of my message. Quoting myself:
> 
> > Besides, there's also the problem of getting efficiency improvements
> > into the mainline kernel. I don't expect Linus would let us fix these
> > things so close to 2.4.

Let me put it that way: odds of getting conceptually very simple _and_
doable on per-fs basis changes into the tree are much, much better than
doing that with the overhaul of fs/namei.c and all revalidate code, may it
be damned. Yes, revalidate() is the last sucking part of VFS-proper. Yes,
we will need to do that. But doing that _now_? Yeah, right.
 
> And here you quote me:
> > > Yeah, but 2.4 is too close. Such a change is going to require a fair
> > > bit of surgery for all filesystems.
> 
> So I don't really expect wholesale VFS changes right now (but, hey,
> that doesn't seem to stop you getting stuff in;-). But that shouldn't

They would not be there if not for your ability to get devfs there ;-/
And took three months of piece-wise feeding the fixes into tree.

> stop us talking about where to go from here.

> > You don't need it on all filesystems.
> 
> So you're thinking of attacking just the worst offenders?

If we have, e.g. UFS and ext2 taken care of (in that sequence - scratch
monkey first) the rest will be doable essentially at leisure. Changes to
a filesystem are local to that filesystem and do not affect the rest - the
only infrastructure problem had been solved in 2.3.1. So IMO it's
proof-of-concept + several worst offenders to drive the size down + the
rest during 2.4 whenever somebody has spare time. Doing that in one huge
patch? No, thanks.

> OK, so you're assuming that shrinking the union will be done by only
> attacking a small number of filesystems. In that case, it will
> probably be less invasive that splitting the dcache and icache.
> However, ultimately I'd like to see the union thrown out entirely.

As soon as it shrinks to zero elements...

> And also have the dcache and icache split.

In the main tree - not earlier than 2.5. It should either be done right or
not at all and doing it right is way too late for 2.4.




Re: Trimming VFS inodes?

2000-06-14 Thread Richard Gooch

Alexander Viro writes:
> 
> On Tue, 13 Jun 2000, Richard Gooch wrote:
> 
> > I'd like to see something more drastic. Indeed, that union crap is by
> > far the worst offender and needs fixing. But there's a whole pile of
> > other junk that's just not needed all the time.
> 
> Richard, may I remind you that we are supposed to be in the freeze?
> There may be a chance to trim the union down _and_ get it into 2.4.

??? Didn't you read the other parts of my message. Quoting myself:

> Besides, there's also the problem of getting efficiency improvements
> into the mainline kernel. I don't expect Linus would let us fix these
> things so close to 2.4.

And here you quote me:
> > Yeah, but 2.4 is too close. Such a change is going to require a fair
> > bit of surgery for all filesystems.

So I don't really expect wholesale VFS changes right now (but, hey,
that doesn't seem to stop you getting stuff in;-). But that shouldn't
stop us talking about where to go from here.

> You don't need it on all filesystems.

So you're thinking of attacking just the worst offenders?

> > I still prefer my idea of splitting the dcache and icache so that you
> > can maintain a populated dentry tree without keeping the inodes
> > hanging around as well. This seems far less invasive and also brings
> > even more space savings.
> 
> Less invasive??? It requires a lot of changes in the internal VFS
> locking protocol. And that affects (in non-obvious ways) every
> friggin' code path in namei.c and dcache.c. It's going to happen,
> but that's _not_ a 2.4.early stuff. Sorry. Just too high potential
> of introducing a lot of new and interesting races. I will fork
> VFS-CURRENT after 2.4.0 release, then such stuff may go there
> without destabilising 2.4. Maybe some parts will be possible to fold
> back during 2.4, but complete thing will not be merged until
> 2.5.early.

OK, so you're assuming that shrinking the union will be done by only
attacking a small number of filesystems. In that case, it will
probably be less invasive that splitting the dcache and icache.
However, ultimately I'd like to see the union thrown out entirely.
And also have the dcache and icache split.

BTW: for 2.4, my main focus is on ensuring there aren't any races in
devfs. The recent changes should make things a lot better :-)

Regards,

Richard
Permanent: [EMAIL PROTECTED]
Current:   [EMAIL PROTECTED]



Re: Trimming VFS inodes?

2000-06-14 Thread Alexander Viro



On Tue, 13 Jun 2000, Richard Gooch wrote:

> I'd like to see something more drastic. Indeed, that union crap is by
> far the worst offender and needs fixing. But there's a whole pile of
> other junk that's just not needed all the time.

Richard, may I remind you that we are supposed to be in the freeze? There
may be a chance to trim the union down _and_ get it into 2.4.

[snip]
> Yeah, but 2.4 is too close. Such a change is going to require a fair
> bit of surgery for all filesystems.

You don't need it on all filesystems.

> I still prefer my idea of splitting the dcache and icache so that you
> can maintain a populated dentry tree without keeping the inodes
> hanging around as well. This seems far less invasive and also brings
> even more space savings.

Less invasive??? It requires a lot of changes in the internal VFS locking
protocol. And that affects (in non-obvious ways) every friggin' code path
in namei.c and dcache.c. It's going to happen, but that's _not_ a
2.4.early stuff. Sorry. Just too high potential of introducing a lot of
new and interesting races. I will fork VFS-CURRENT after 2.4.0 release,
then such stuff may go there without destabilising 2.4. Maybe some parts
will be possible to fold back during 2.4, but complete thing will not be
merged until 2.5.early.




Re: Trimming VFS inodes?

2000-06-14 Thread Alexander Viro



On Tue, 13 Jun 2000, Richard Gooch wrote:

> > Yes. And all that time mounting the thing at several point was a huge,
> > fscking hole.
> 
> Sure. And hence RedHat wasn't going to compile it in.

Fine with RedHat, but how in hell does it solve the problem? I don't
_CARE_ for any "party line". I don't belong to any fucking parties, no
matter where I'm employed. Excuse me, but I had seen enough of that shit
in .su and .ru and that's a game I don't play.

[snip]

> OK, but since you never liked devfs in the first place, I'm surprised
> you would care so much about devfs races. I'd just expect a "don't use
> devfs" response, rather than all this effort to help clean up devfs.

If it is a part of ftp.kernel.org tree and I don't want to fork - too
fscking bad, that's part of the things I'm dealing with.

> > What we are paying no is the price of these years when devfs grew
> > larger and larger and accumulated stuff from all layers of VFS. All
> > these changes were not done - you were just sitting on the growing
> > patch and refused to turn it into the set of small patches, each
> > doing one thing and doing it right. Fine, so that work has to be
> > done now. I think that I'm actually getting it quite fine - 3-4
> > months and most of the infrastructure is built, thank you very much.
> 
> Try to imagine the shit I've been going through the last 2.5 years
> with devfs. Flamewar after bloody flamewar (*NOT* about minor things
.procmailrc?
> like devfs races, the merits of devfs multi-mounting vs. VFS bindings,
> but basic arguments about the very concept). Between the flamewars,
> tracking constant kernel drift,
[check]
> writing a thesis
[check]
> and maintaining a
> relationship,
[check]
> I'm surprised I got as much done on it as I did. On top
> of that, when I finally had more time available, Linus dropped the
> whole namespace change thing on me.

> Besides, if I were to have tried to clean up the VFS first, I expect I
> would have encountered extreme opposition, as people would have used
> it as another reason to oppose devfs ("don't bloat the VFS"). And

So don't bloat it ;-) If you will compare the size before and after you'll
see that no bloat went in.

> people would oppose the VFS changes because they'd want another
> obstacle for devfs. No thanks. I wasn't going to get into that fight.
>
> Also, trying to maintain multiple dependent patches is a lot of work.
[check]
> Roll on BK.
> 
> > Yes, I had other reasons. This kind of stuff actually has to be done
> > right or not at all. So these changes started they had pulled in
> > quite a bit of other stuff - handling of pseudoroots in binary
> > emulation, for example. But doing all that stuff during the freeze
> > and in effect postponing the release... Not if we had any
> > choice. Unfortunately, we hadn't.
> 
> There's always a choice. You could always have opted for the RedHat
> party line: don't use devfs because it's racy.

I don't opt for party lines of any description. Besides, it's not a RH
release I'm talking about. Linux != RH.

> > And stuff already in the tree is not enough - aside of multiple
> > mounts there is revalidate() problems. So it will take more...
> 
> IIRC, your concerns here were that devfs "knew" about how revalidates
> work, and thus if you want to change the VFS, devfs will have to track
> that.

Not only that, actually - order of invalidation was incorrect, IIRC.

> I'll agree that's not ideal, but given the amount of dependence other
> filesystems have on VFS subtleties, I don't see why it's the end of

Most of them actually has very few dependencies - there are exceptions
(HFS, UMSDOS, autofs), but majority is pretty clean in that respect.

> the world. I don't think there's any races in there, though.

Famous last words.

> BTW: have you looked at my latest devfs patch?

Looking at it.




Re: Trimming VFS inodes?

2000-06-14 Thread Richard Gooch

Alexander Viro writes:
> 
> 
> On Tue, 13 Jun 2000, Richard Gooch wrote:
> 
> > > Yes. And all that time mounting the thing at several point was a huge,
> > > fscking hole.
> > 
> > Sure. And hence RedHat wasn't going to compile it in.
> 
> Fine with RedHat, but how in hell does it solve the problem? I don't
> _CARE_ for any "party line". I don't belong to any fucking parties, no
> matter where I'm employed. Excuse me, but I had seen enough of that shit
> in .su and .ru and that's a game I don't play.

;-)

> > OK, but since you never liked devfs in the first place, I'm surprised
> > you would care so much about devfs races. I'd just expect a "don't use
> > devfs" response, rather than all this effort to help clean up devfs.
> 
> If it is a part of ftp.kernel.org tree and I don't want to fork -
> too fscking bad, that's part of the things I'm dealing with.

Well, I'm certainly happy to see the VFS binding stuff (even down to
the file/device level) have gone in. Good job.

> > > What we are paying no is the price of these years when devfs grew
> > > larger and larger and accumulated stuff from all layers of VFS. All
> > > these changes were not done - you were just sitting on the growing
> > > patch and refused to turn it into the set of small patches, each
> > > doing one thing and doing it right. Fine, so that work has to be
> > > done now. I think that I'm actually getting it quite fine - 3-4
> > > months and most of the infrastructure is built, thank you very much.
> > 
> > Try to imagine the shit I've been going through the last 2.5 years
> > with devfs. Flamewar after bloody flamewar (*NOT* about minor things
> .procmailrc?

Unfortunately procmail doesn't support the following syntax:
* CONTENT_just_another_rant_against_devfs

so it makes it hard to distinguish between bug reports, feature
requests, *new* technical criticisms or alternative suggestions, and
just repeat flaming.

> > Besides, if I were to have tried to clean up the VFS first, I expect I
> > would have encountered extreme opposition, as people would have used
> > it as another reason to oppose devfs ("don't bloat the VFS"). And
> 
> So don't bloat it ;-) If you will compare the size before and after
> you'll see that no bloat went in.

Actually, I've seen one or two gripes about recent VFS changes, so
there's always someone who will complain. But it's been my experience
that arguments about bloat don't always correlate strongly with
reality.

And I do know that if *I* had done those VFS changes (with the obvious
intent of making devfs itself smaller), then the screams of bloat
would have spurt forth. Guilt by association and all that.

> > > And stuff already in the tree is not enough - aside of multiple
> > > mounts there is revalidate() problems. So it will take more...
> > 
> > IIRC, your concerns here were that devfs "knew" about how revalidates
> > work, and thus if you want to change the VFS, devfs will have to track
> > that.
> 
> Not only that, actually - order of invalidation was incorrect, IIRC.

Let me check I understand what you mean. You're concerned about the
way I *invalidate*, rather than the way I *revalidate*?

So, basically, the order in which I unregister devices and invalidate
dentries is where you see a problem?

You're not saying there is a problem with the way I do revalidates?

> > BTW: have you looked at my latest devfs patch?
> 
> Looking at it.

Thanks.

Regards,

Richard
Permanent: [EMAIL PROTECTED]
Current:   [EMAIL PROTECTED]