Skip site navigation (1)Skip section navigation (2)
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>