From owner-cvs-sys Thu Oct 26 06:56:26 1995 Return-Path: owner-cvs-sys Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id GAA06853 for cvs-sys-outgoing; Thu, 26 Oct 1995 06:56:26 -0700 Received: (from dyson@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id GAA06844 ; Thu, 26 Oct 1995 06:56:19 -0700 From: John Dyson Message-Id: <199510261356.GAA06844@freefall.freebsd.org> Subject: Re: SYSCALL IDEAS [Was: cvs commit: src/sys/kern sysv_msg.c sysv_sem.c sysv_shm.c] To: terry@lambert.org (Terry Lambert) Date: Thu, 26 Oct 1995 06:56:19 -0700 (PDT) Cc: terry@lambert.org, bde@zeta.org.au, CVS-commiters@freefall.freebsd.org, bde@freefall.freebsd.org, cvs-sys@freefall.freebsd.org, hackers@freebsd.org, swallace@ece.uci.edu In-Reply-To: <199510252135.OAA19692@phaeton.artisoft.com> from "Terry Lambert" at Oct 25, 95 02:35:47 pm X-Mailer: ELM [version 2.4 PL24] Content-Type: text Content-Length: 2426 Sender: owner-cvs-sys@freebsd.org Precedence: bulk > > 2^12 * 2^31 = 2^43. > 2^43 << 2^63. > > The problem is for large file systems, and a lesser problem, large files > on large file systems (lesser because a file will always be smaller > than the FS that contains it). > > Right now it is impossible to support those files for which quad is > a desirable type for off_t because of VM limitations imposed. The > imposition is present codified in ffs_vmlimits() in the source file > /sys/ufs/ffs/ffs_vfsops.c. > The VM limitations are due to extreme performance hits if we have to go to a (long long) type representation of a page. I propose that we (in fact we will) move from page offsets to page indexes. For a 32 bit machine, it gives us at least 8TB (and probably more with sign extension fixes) for file/filesystem sizes. For a 64 bit machine it would give us even more (by a factor of 4,000,000). As far as the API is concerned, we can use whatever we want -- long, long long, or whatever. We will just have that terrible, limiting capability of supporting only 8TB files on 32 bit machines with 4K pagesizes. We haven't worked on the sign extension problems, because simply we do not support files > 4GB (or is it 2GB???) period right now. I don't believe that there is a problem with block devices (we do NOT use vmio for those.) But additionally we do not support mmaping them right now. > > The codification in ffs_vmlimits() is an interface violation in any > case: it is a machine architecture dependency, and in acutality a > vmio dependency and doesn't belong in the supposedly machine independent > FS code anyway. > I agree - but it made it work for now. The changes have been so vast that there has been significant ugliness added to the code. That is being worked on, and I suggest that if there are some architectural problems that you see -- 'corrected' code would be helpful. Note also some sort of performance analysis and architectural impact review is desirable. All I can say is that I spent nearly a year working on the most horrible OS code that I ever saw -- SVR4, and I don't want us to go down the low performance path that they did. They got both the hackery and low performance. At least we are working on cleaning up the hackery aspects, including that which was inherited from Mach (because of the differences in the philosophy -- Mach VM and the original BSD port was certainly interesting.) John dyson@freebsd.org