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 ---