Date: Tue, 01 May 2001 01:28:10 -0700 From: Terry Lambert <tlambert2@mindspring.com> To: Poul-Henning Kamp <phk@critter.freebsd.dk> Cc: Kirk McKusick <mckusick@mckusick.com>, Robert Watson <rwatson@FreeBSD.ORG>, Julian Elischer <julian@elischer.org>, Rik van Riel <riel@conectiva.com.br>, freebsd-hackers@FreeBSD.ORG, Matt Dillon <dillon@earth.backplane.com>, David Xu <bsddiy@21cn.com> Subject: Re: vm balance Message-ID: <3AEE739A.A69A52FE@mindspring.com> References: <33029.987575619@critter>
next in thread | previous in thread | raw e-mail | index | archive | help
Poul-Henning Kamp wrote: > > In message <200104180540.WAA58303@beastie.mckusick.com>, Kirk > McKusick writes: > > >Every vnode in the system has an associated object. > > No: device vnodes dont... > > I think the correct solution to that is to move devices away from > vnodes and into the fdesc layer, just like fifo's and sockets. This is really, likewise, a bad idea. The "struct fileops" has been a problem from day one. It exists for devices because we still have "specfs", and have not moved over to a "devfs" that uses vnodes instead of using strategy routines invoked from a "struct fileops *" dereference. The code was smeared into the FIFO/socket/IPC code as a poor man's integration to get something working. When that happened, the ability to do normal things like set ownership, permissions, etc., on things like FIFOs disappeared. FreeBSD is much poorer with regard to full compliance with POSIX semantics on things like F_ fcntl() arguments and the like when applied to sockets. Linux, Solaris, AIX, and other POSIX and Single UNIX Specification compliant OSs don't suffer these same problems. Perhaps one of the most annoying things about FreeBSD is the inability to perform advisory locking on anything by true vnode objects... and then only if the underlying VFS has an advisory lock chain hung off of some private structure, which can't be rescued except through the evils of POSIX locking semantics. Many applications use advisory lock chains off of devices to communicate region protection information not directly related to really protecting the resource. Similarly, "struct fileops" is the main culprit, to my mind, behind the inability of FreeBSD to support cloning devices, such as that needed for multiple virtual machine instances in vmware to work as it does in Linux and other first-class host OSs. -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3AEE739A.A69A52FE>