aboutsummaryrefslogtreecommitdiff
path: root/sys/vm/vm_fault.c
Commit message (Collapse)AuthorAgeFilesLines
* Use the VM_PAGE_BITS_ALL in a place it can be used.David Greenman1995-01-261-4/+4
| | | | | | | | Comment out call to pmap_prefault() until stability problems can be thoroghly analyzed. Notes: svn path=/head/; revision=5915
* Added ability to detect sequential faults and DTRT. (swap_pager.c)David Greenman1995-01-241-5/+12
| | | | | | | | | | | | | | | | | Added hook for pmap_prefault() and use symbolic constant for new third argument to vm_page_alloc() (vm_fault.c, various) Changed the way that upages and page tables are held. (vm_glue.c) Fixed architectural flaw in allocating pages at interrupt time that was introduced with the merged cache changes. (vm_page.c, various) Adjusted some algorithms to acheive better paging performance and to accomodate the fix for the architectural flaw mentioned above. (vm_pageout.c) Fixed pbuf handling problem, changed policy on handling read-behind page. (vnode_pager.c) Submitted by: John Dyson Notes: svn path=/head/; revision=5841
* Fixed some formatting weirdness that I overlooked in the previous commit.David Greenman1995-01-101-2/+2
| | | | Notes: svn path=/head/; revision=5464
* These changes embody the support of the fully coherent merged VM buffer cache,David Greenman1995-01-091-438/+358
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | much higher filesystem I/O performance, and much better paging performance. It represents the culmination of over 6 months of R&D. The majority of the merged VM/cache work is by John Dyson. The following highlights the most significant changes. Additionally, there are (mostly minor) changes to the various filesystem modules (nfs, msdosfs, etc) to support the new VM/buffer scheme. vfs_bio.c: Significant rewrite of most of vfs_bio to support the merged VM buffer cache scheme. The scheme is almost fully compatible with the old filesystem interface. Significant improvement in the number of opportunities for write clustering. vfs_cluster.c, vfs_subr.c Upgrade and performance enhancements in vfs layer code to support merged VM/buffer cache. Fixup of vfs_cluster to eliminate the bogus pagemove stuff. vm_object.c: Yet more improvements in the collapse code. Elimination of some windows that can cause list corruption. vm_pageout.c: Fixed it, it really works better now. Somehow in 2.0, some "enhancements" broke the code. This code has been reworked from the ground-up. vm_fault.c, vm_page.c, pmap.c, vm_object.c Support for small-block filesystems with merged VM/buffer cache scheme. pmap.c vm_map.c Dynamic kernel VM size, now we dont have to pre-allocate excessive numbers of kernel PTs. vm_glue.c Much simpler and more effective swapping code. No more gratuitous swapping. proc.h Fixed the problem that the p_lock flag was not being cleared on a fork. swap_pager.c, vnode_pager.c Removal of old vfs_bio cruft to support the past pseudo-coherency. Now the code doesn't need it anymore. machdep.c Changes to better support the parameter values for the merged VM/buffer cache scheme. machdep.c, kern_exec.c, vm_glue.c Implemented a seperate submap for temporary exec string space and another one to contain process upages. This eliminates all map fragmentation problems that previously existed. ffs_inode.c, ufs_inode.c, ufs_readwrite.c Changes for merged VM/buffer cache. Add "bypass" support for sneaking in on busy buffers. Submitted by: John Dyson and David Greenman Notes: svn path=/head/; revision=5455
* Fixed bug where a read-behind to a negative offset would occur if theDavid Greenman1994-11-131-12/+16
| | | | | | | | | | fault was at offset 0 in the object. This resulted in more overhead but was othewise benign. Added incore() check in vnode_pager_has_page() to work around a problem with LFS...other than slightly higher overhead, this change has no affect on UFS. Notes: svn path=/head/; revision=4446
* Fixed return status from pagers. Ahem...the previous method would manufactureDavid Greenman1994-11-061-4/+12
| | | | | | | | | data when it couldn't get it legitimately. :-( Submitted by: John Dyson Notes: svn path=/head/; revision=4207
* Changed a thread_sleep into an spl protected tsleep. A deadlock can occurDavid Greenman1994-10-231-7/+9
| | | | | | | | | otherwise. Minor efficiency improvement in vm_page_free(). Submitted by: John Dyson Notes: svn path=/head/; revision=3807
* Various changes to allow operation without any swapspace configured. NoteDavid Greenman1994-10-221-3/+5
| | | | | | | | | | | that this is intended for use only in floppy situations and is done at the sacrifice of performance in that case (in ther words, this is not the best solution, but works okay for this exceptional situation). Submitted by: John Dyson Notes: svn path=/head/; revision=3766
* 1) Some of the counters in the vmmeter struct don't fit well into the Mach VMDavid Greenman1994-10-151-3/+2
| | | | | | | | | | | | | scheme of things, so I've changed them to be more appropriate. page in/ous are now associated with the pager that did them. Nuked v_fault as the only fault of interest that wouldn't be already counted in v_trap is a VM fault, and this is counted seperately. 2) Implemented most of the remaining counters and corrected the counting of some that were done wrong. They are all almost correct now...just a few minor ones left to fix. Notes: svn path=/head/; revision=3612
* Count vm faults as v_vm_fault, not v_fault.David Greenman1994-10-151-2/+2
| | | | Notes: svn path=/head/; revision=3611
* Cosmetics: unused vars, ()'s, #include's &c &c to silence gcc.Poul-Henning Kamp1994-10-091-8/+11
| | | | | | | Reviewed by: davidg Notes: svn path=/head/; revision=3449
* Call resetpriority, not setpriority() ...oops.David Greenman1994-10-091-2/+2
| | | | | | | Submitted by: John Dyson Notes: svn path=/head/; revision=3446
* Stuff object into v_vmdata rather than pager. Not important which atDavid Greenman1994-10-051-4/+4
| | | | | | | | | | the moment, but will be in the future. Other changes mostly cosmetic, but are made for future VMIO considerations. Submitted by: John Dyson Notes: svn path=/head/; revision=3374
* Incorporated post 1.1.5 work from John Dyson. This includes performanceDavid Greenman1994-08-061-2/+5
| | | | | | | | | | | | improvements via the new routines pmap_qenter/pmap_qremove and pmap_kenter/ pmap_kremove. These routine allow fast mapping of pages for those architectures that have "normal" MMUs. Also included is a fix to the pageout daemon to properly check a queue end condition. Submitted by: John Dyson Notes: svn path=/head/; revision=1887
* Added $Id$David Greenman1994-08-021-1/+3
| | | | Notes: svn path=/head/; revision=1817
* The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch.Rodney W. Grimes1994-05-251-85/+355
| | | | | | | | Reviewed by: Rodney W. Grimes Submitted by: John Dyson and David Greenman Notes: svn path=/head/; revision=1549
* BSD 4.4 Lite Kernel SourcesRodney W. Grimes1994-05-241-0/+1035
Notes: svn path=/head/; revision=1541