vm_fault.c (6d40c3d394b358d1e6a34d4e546c9c66990a614a) | vm_fault.c (1e9122e5295f57fea2fd7c0883fc592238920fc1) |
---|---|
1/* 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * Copyright (c) 1994 John S. Dyson 5 * All rights reserved. 6 * Copyright (c) 1994 David Greenman 7 * All rights reserved. 8 * --- 52 unchanged lines hidden (view full) --- 61 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 62 * School of Computer Science 63 * Carnegie Mellon University 64 * Pittsburgh PA 15213-3890 65 * 66 * any improvements or extensions that they make and grant Carnegie the 67 * rights to redistribute these changes. 68 * | 1/* 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * Copyright (c) 1994 John S. Dyson 5 * All rights reserved. 6 * Copyright (c) 1994 David Greenman 7 * All rights reserved. 8 * --- 52 unchanged lines hidden (view full) --- 61 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 62 * School of Computer Science 63 * Carnegie Mellon University 64 * Pittsburgh PA 15213-3890 65 * 66 * any improvements or extensions that they make and grant Carnegie the 67 * rights to redistribute these changes. 68 * |
69 * $Id: vm_fault.c,v 1.15 1995/01/10 07:32:45 davidg Exp $ | 69 * $Id: vm_fault.c,v 1.16 1995/01/24 10:12:29 davidg Exp $ |
70 */ 71 72/* 73 * Page fault handling module. 74 */ 75 76#include <sys/param.h> 77#include <sys/systm.h> --- 212 unchanged lines hidden (view full) --- 290 vm_page_unqueue(m); 291 vm_page_unlock_queues(); 292 293 /* 294 * Mark page busy for other threads. 295 */ 296 m->flags |= PG_BUSY; 297 if (m->object != kernel_object && m->object != kmem_object && | 70 */ 71 72/* 73 * Page fault handling module. 74 */ 75 76#include <sys/param.h> 77#include <sys/systm.h> --- 212 unchanged lines hidden (view full) --- 290 vm_page_unqueue(m); 291 vm_page_unlock_queues(); 292 293 /* 294 * Mark page busy for other threads. 295 */ 296 m->flags |= PG_BUSY; 297 if (m->object != kernel_object && m->object != kmem_object && |
298 m->valid && 299 ((m->valid & vm_page_bits(0, PAGE_SIZE)) 300 != vm_page_bits(0, PAGE_SIZE))) { | 298 m->valid && ((m->valid & VM_PAGE_BITS_ALL) != VM_PAGE_BITS_ALL)) { |
301 goto readrest; 302 } 303 break; 304 } 305 if (((object->pager != NULL) && (!change_wiring || wired)) 306 || (object == first_object)) { 307 308 if (swap_pager_full && !object->shadow && (!object->pager || --- 525 unchanged lines hidden (view full) --- 834 /* 835 * Put this page into the physical map. We had to do the unlock above 836 * because pmap_enter may cause other faults. We don't put the page 837 * back on the active queue until later so that the page-out daemon 838 * won't find us (yet). 839 */ 840 841 pmap_enter(map->pmap, vaddr, VM_PAGE_TO_PHYS(m), prot, wired); | 299 goto readrest; 300 } 301 break; 302 } 303 if (((object->pager != NULL) && (!change_wiring || wired)) 304 || (object == first_object)) { 305 306 if (swap_pager_full && !object->shadow && (!object->pager || --- 525 unchanged lines hidden (view full) --- 832 /* 833 * Put this page into the physical map. We had to do the unlock above 834 * because pmap_enter may cause other faults. We don't put the page 835 * back on the active queue until later so that the page-out daemon 836 * won't find us (yet). 837 */ 838 839 pmap_enter(map->pmap, vaddr, VM_PAGE_TO_PHYS(m), prot, wired); |
840#if 0 |
|
842 if( ((prot & VM_PROT_WRITE) == 0) && change_wiring == 0 && wired == 0) 843 pmap_prefault(map->pmap, vaddr, entry, first_object); | 841 if( ((prot & VM_PROT_WRITE) == 0) && change_wiring == 0 && wired == 0) 842 pmap_prefault(map->pmap, vaddr, entry, first_object); |
843#endif |
|
844 845 /* 846 * If the page is not wired down, then put it where the pageout daemon 847 * can find it. 848 */ 849 vm_object_lock(object); 850 vm_page_lock_queues(); 851 if (change_wiring) { --- 404 unchanged lines hidden --- | 844 845 /* 846 * If the page is not wired down, then put it where the pageout daemon 847 * can find it. 848 */ 849 vm_object_lock(object); 850 vm_page_lock_queues(); 851 if (change_wiring) { --- 404 unchanged lines hidden --- |