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>