Date: Wed, 23 Apr 1997 23:13:00 -0700 From: David Greenman <dg@root.com> To: Zhao Hui <angela@hawk.hit.edu.cn> Cc: freebsd-hackers@freebsd.org Subject: Re: questions Message-ID: <199704240613.XAA07844@root.com> In-Reply-To: Your message of "Thu, 24 Apr 1997 13:00:42 %2B0900." <Pine.LNX.3.91.970424124700.28703A-100000@hawk.hit.edu.cn>
next in thread | previous in thread | raw e-mail | index | archive | help
> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704240613.XAA07844>