Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Nov 1995 10:46:47 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        davidg@root.com
Cc:        terry@lambert.org, rashid@rk.ios.com, jgreco@brasil.moneng.mei.com, hackers@freebsd.org
Subject:   Re: Odd crash after inode depletion..
Message-ID:  <199511141746.KAA20340@phaeton.artisoft.com>
In-Reply-To: <199511141725.JAA00436@corbin.Root.COM> from "David Greenman" at Nov 14, 95 09:25:44 am

next in thread | previous in thread | raw e-mail | index | archive | help
>    Do you know the difference of appearance of a cicular queue in our sources?
> Based on your comments, I must conclude that you do not. tailq's are NOT
> circular queues. The vnode free list is NOT a circular queue and it never has
> been in FreeBSD.

First of all, I correctly identified the code that was screwing up from
a written description of the problem.  I wrote the part about the circular
queues before going to the code (I was going to not attempt a cursor fix
precisely because it doesn't matter what I post, I get attacked).

Second, it was a change to the queue management that cause the screwup,
since even you must admit that it didn't happen in the past, and the
change was to add more vnodes, and the failure mode was in the queue
head check that guards the allocation code.

Third, I identified two potential quick hack fixes.


>    The change to a circular queue for the mountlist was NOT made for aesthetic
> reasons. It was made because it is required to traverse the mount queue in the
> reverse direction in order to properly dismount filesystems (because of mount
> point dependencies).

This is why god invented the stack and function recursion.  It's called a
depth first traversal.

> You can only do this by using circleq's.

Like hell.  It's *convenient* to use a circular queue.  Since mounting
and unmounting are less typical than getdents(), and system shutdown
is less typical than either, there's no good reason, other than aesthetics,
to make a change.  Unless you happen to fix the file systems that would
require the change.

>    Look Terry, I'm not the only one who is getting very annoyed at your
> continuous spread of mis-truths and baseless criticisms. You would be doing
> yourself and everyone else a favor if you would double check your facts and
> assumptions first and stop making such completely wrong comments.


I couldn't give less of a damn if the actual description lacked your high
standards of descriptive accuracy.  I correctly identified the problem
as that of pulling a vnode with a positive count off the freelist head.

It's the code that counts.

Feel free to provide your own patch to fix this long standing bug, as
you have been free to do since it was first reported.


					Regards,
					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199511141746.KAA20340>