From owner-freebsd-hackers Wed Apr 23 23:12:13 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id XAA18413 for hackers-outgoing; Wed, 23 Apr 1997 23:12:13 -0700 (PDT) Received: from root.com (implode.root.com [198.145.90.17]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id XAA18406 for ; Wed, 23 Apr 1997 23:12:11 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by root.com (8.8.5/8.6.5) with SMTP id XAA07844; Wed, 23 Apr 1997 23:13:00 -0700 (PDT) Message-Id: <199704240613.XAA07844@root.com> X-Authentication-Warning: implode.root.com: localhost [127.0.0.1] didn't use HELO protocol To: Zhao Hui cc: freebsd-hackers@freebsd.org Subject: Re: questions In-reply-to: Your message of "Thu, 24 Apr 1997 13:00:42 +0900." From: David Greenman Reply-To: dg@root.com Date: Wed, 23 Apr 1997 23:13:00 -0700 Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > I've just read some materials on improvement to VM of your FreeBSD. >I have some questions about it .Can some anwser them for me? > Questions : 1. How do you design and implement "clustered page-ins > and page-outs" ? Clustered page-ins occur in the fault handling code. See vm_fault.c: vm_fault_additional_pages(). Clustered page-outs are done in the pageout daemon. See vm_pageout.c: vm_pageout_clean(). > 2. What does "pre-faulting" mean? How to implement it? > 3. What means "page table pre-loadeing"? How did you > implement it? These are both basically the same thing. What this means is that all resident pages for a given VM object (such as a file "vnode object") are mapped into the address space of the process by inserting them into the page table pages at the time that the object is mmap'ed. The alternative (which is what the old BSD code did) is to fault the (resident) pages one at a time into the address space when they are accessed...but this is very expensive and unnecessary. > Is there some detailed materials deliberating on these >subjects? How can get them? No such document exists. The closest description of the VM system in FreeBSD can be found in "The Design and Implementation of the 4.4BSD Operating System", by Kirk McKusick and others. ...but the VM system in FreeBSD has evolved substantially since 4.4BSD and is quite different. -DG David Greenman Core-team/Principal Architect, The FreeBSD Project