Module Name:    src
Committed By:   rmind
Date:           Sun Feb 19 00:05:57 UTC 2012

Modified Files:
        src/sys/uvm: uvm_fault.c uvm_fault_i.h uvm_km.c uvm_loan.c uvm_map.c
            uvm_map.h

Log Message:
Remove VM_MAP_INTRSAFE and related code.  Not used since the "kmem changes".


To generate a diff of this commit:
cvs rdiff -u -r1.193 -r1.194 src/sys/uvm/uvm_fault.c
cvs rdiff -u -r1.27 -r1.28 src/sys/uvm/uvm_fault_i.h
cvs rdiff -u -r1.120 -r1.121 src/sys/uvm/uvm_km.c
cvs rdiff -u -r1.81 -r1.82 src/sys/uvm/uvm_loan.c
cvs rdiff -u -r1.313 -r1.314 src/sys/uvm/uvm_map.c
cvs rdiff -u -r1.70 -r1.71 src/sys/uvm/uvm_map.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/uvm/uvm_fault.c
diff -u src/sys/uvm/uvm_fault.c:1.193 src/sys/uvm/uvm_fault.c:1.194
--- src/sys/uvm/uvm_fault.c:1.193	Thu Feb  2 19:43:08 2012
+++ src/sys/uvm/uvm_fault.c	Sun Feb 19 00:05:55 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_fault.c,v 1.193 2012/02/02 19:43:08 tls Exp $	*/
+/*	$NetBSD: uvm_fault.c,v 1.194 2012/02/19 00:05:55 rmind Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.193 2012/02/02 19:43:08 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.194 2012/02/19 00:05:55 rmind Exp $");
 
 #include "opt_uvmhist.h"
 
@@ -2400,8 +2400,6 @@ uvm_fault_unwire_locked(struct vm_map *m
 	paddr_t pa;
 	struct vm_page *pg;
 
-	KASSERT((map->flags & VM_MAP_INTRSAFE) == 0);
-
 	/*
 	 * we assume that the area we are unwiring has actually been wired
 	 * in the first place.   this means that we should be able to extract

Index: src/sys/uvm/uvm_fault_i.h
diff -u src/sys/uvm/uvm_fault_i.h:1.27 src/sys/uvm/uvm_fault_i.h:1.28
--- src/sys/uvm/uvm_fault_i.h:1.27	Sun Jun 12 03:36:03 2011
+++ src/sys/uvm/uvm_fault_i.h	Sun Feb 19 00:05:56 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_fault_i.h,v 1.27 2011/06/12 03:36:03 rmind Exp $	*/
+/*	$NetBSD: uvm_fault_i.h,v 1.28 2012/02/19 00:05:56 rmind Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -107,16 +107,7 @@ uvmfault_lookup(struct uvm_faultinfo *uf
 	 * only be two levels so we won't loop very long.
 	 */
 
-	/*CONSTCOND*/
-	while (1) {
-		/*
-		 * Make sure this is not an "interrupt safe" map.
-		 * Such maps are never supposed to be involved in
-		 * a fault.
-		 */
-		if (ufi->map->flags & VM_MAP_INTRSAFE)
-			return (false);
-
+	for (;;) {
 		/*
 		 * lock map
 		 */

Index: src/sys/uvm/uvm_km.c
diff -u src/sys/uvm/uvm_km.c:1.120 src/sys/uvm/uvm_km.c:1.121
--- src/sys/uvm/uvm_km.c:1.120	Fri Feb 10 17:35:47 2012
+++ src/sys/uvm/uvm_km.c	Sun Feb 19 00:05:56 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_km.c,v 1.120 2012/02/10 17:35:47 para Exp $	*/
+/*	$NetBSD: uvm_km.c,v 1.121 2012/02/19 00:05:56 rmind Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -120,7 +120,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_km.c,v 1.120 2012/02/10 17:35:47 para Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_km.c,v 1.121 2012/02/19 00:05:56 rmind Exp $");
 
 #include "opt_uvmhist.h"
 
@@ -499,15 +499,13 @@ uvm_km_check_empty(struct vm_map *map, v
 			panic("uvm_km_check_empty: va %p has pa 0x%llx",
 			    (void *)va, (long long)pa);
 		}
-		if ((map->flags & VM_MAP_INTRSAFE) == 0) {
-			mutex_enter(uvm_kernel_object->vmobjlock);
-			pg = uvm_pagelookup(uvm_kernel_object,
-			    va - vm_map_min(kernel_map));
-			mutex_exit(uvm_kernel_object->vmobjlock);
-			if (pg) {
-				panic("uvm_km_check_empty: "
-				    "has page hashed at %p", (const void *)va);
-			}
+		mutex_enter(uvm_kernel_object->vmobjlock);
+		pg = uvm_pagelookup(uvm_kernel_object,
+		    va - vm_map_min(kernel_map));
+		mutex_exit(uvm_kernel_object->vmobjlock);
+		if (pg) {
+			panic("uvm_km_check_empty: "
+			    "has page hashed at %p", (const void *)va);
 		}
 	}
 }

Index: src/sys/uvm/uvm_loan.c
diff -u src/sys/uvm/uvm_loan.c:1.81 src/sys/uvm/uvm_loan.c:1.82
--- src/sys/uvm/uvm_loan.c:1.81	Sat Aug  6 17:25:03 2011
+++ src/sys/uvm/uvm_loan.c	Sun Feb 19 00:05:56 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_loan.c,v 1.81 2011/08/06 17:25:03 rmind Exp $	*/
+/*	$NetBSD: uvm_loan.c,v 1.82 2012/02/19 00:05:56 rmind Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_loan.c,v 1.81 2011/08/06 17:25:03 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_loan.c,v 1.82 2012/02/19 00:05:56 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -245,7 +245,6 @@ uvm_loan(struct vm_map *map, vaddr_t sta
 
 	KASSERT(((flags & UVM_LOAN_TOANON) == 0) ^
 		((flags & UVM_LOAN_TOPAGE) == 0));
-	KASSERT((map->flags & VM_MAP_INTRSAFE) == 0);
 
 	/*
 	 * "output" is a pointer to the current place to put the loaned page.

Index: src/sys/uvm/uvm_map.c
diff -u src/sys/uvm/uvm_map.c:1.313 src/sys/uvm/uvm_map.c:1.314
--- src/sys/uvm/uvm_map.c:1.313	Sun Feb 12 20:28:14 2012
+++ src/sys/uvm/uvm_map.c	Sun Feb 19 00:05:56 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_map.c,v 1.313 2012/02/12 20:28:14 martin Exp $	*/
+/*	$NetBSD: uvm_map.c,v 1.314 2012/02/19 00:05:56 rmind Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_map.c,v 1.313 2012/02/12 20:28:14 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_map.c,v 1.314 2012/02/19 00:05:56 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_uvmhist.h"
@@ -607,8 +607,6 @@ _uvm_tree_sanity(struct vm_map *map)
 /*
  * vm_map_lock: acquire an exclusive (write) lock on a map.
  *
- * => Note that "intrsafe" maps use only exclusive, spin locks.
- *
  * => The locking protocol provides for guaranteed upgrade from shared ->
  *    exclusive by whichever thread currently has the map marked busy.
  *    See "LOCKING PROTOCOL NOTES" in uvm_map.h.  This is horrible; among
@@ -620,24 +618,18 @@ void
 vm_map_lock(struct vm_map *map)
 {
 
-	if ((map->flags & VM_MAP_INTRSAFE) != 0) {
-		mutex_spin_enter(&map->mutex);
-		return;
-	}
-
 	for (;;) {
 		rw_enter(&map->lock, RW_WRITER);
-		if (map->busy == NULL)
-			break;
-		if (map->busy == curlwp)
+		if (map->busy == NULL || map->busy == curlwp) {
 			break;
+		}
 		mutex_enter(&map->misc_lock);
 		rw_exit(&map->lock);
-		if (map->busy != NULL)
+		if (map->busy != NULL) {
 			cv_wait(&map->cv, &map->misc_lock);
+		}
 		mutex_exit(&map->misc_lock);
 	}
-
 	map->timestamp++;
 }
 
@@ -649,15 +641,13 @@ bool
 vm_map_lock_try(struct vm_map *map)
 {
 
-	if ((map->flags & VM_MAP_INTRSAFE) != 0)
-		return mutex_tryenter(&map->mutex);
-	if (!rw_tryenter(&map->lock, RW_WRITER))
+	if (!rw_tryenter(&map->lock, RW_WRITER)) {
 		return false;
+	}
 	if (map->busy != NULL) {
 		rw_exit(&map->lock);
 		return false;
 	}
-
 	map->timestamp++;
 	return true;
 }
@@ -670,13 +660,9 @@ void
 vm_map_unlock(struct vm_map *map)
 {
 
-	if ((map->flags & VM_MAP_INTRSAFE) != 0)
-		mutex_spin_exit(&map->mutex);
-	else {
-		KASSERT(rw_write_held(&map->lock));
-		KASSERT(map->busy == NULL || map->busy == curlwp);
-		rw_exit(&map->lock);
-	}
+	KASSERT(rw_write_held(&map->lock));
+	KASSERT(map->busy == NULL || map->busy == curlwp);
+	rw_exit(&map->lock);
 }
 
 /*
@@ -711,21 +697,17 @@ void
 vm_map_lock_read(struct vm_map *map)
 {
 
-	KASSERT((map->flags & VM_MAP_INTRSAFE) == 0);
-
 	rw_enter(&map->lock, RW_READER);
 }
 
 /*
  * vm_map_unlock_read: release a shared lock on a map.
  */
- 
+
 void
 vm_map_unlock_read(struct vm_map *map)
 {
 
-	KASSERT((map->flags & VM_MAP_INTRSAFE) == 0);
-
 	rw_exit(&map->lock);
 }
 
@@ -756,11 +738,7 @@ bool
 vm_map_locked_p(struct vm_map *map)
 {
 
-	if ((map->flags & VM_MAP_INTRSAFE) != 0) {
-		return mutex_owned(&map->mutex);
-	} else {
-		return rw_write_held(&map->lock);
-	}
+	return rw_write_held(&map->lock);
 }
 
 /*
@@ -775,14 +753,14 @@ uvm_mapent_alloc(struct vm_map *map, int
 	UVMHIST_FUNC("uvm_mapent_alloc"); UVMHIST_CALLED(maphist);
 
 	me = pool_cache_get(&uvm_map_entry_cache, pflags);
-	if (__predict_false(me == NULL))
+	if (__predict_false(me == NULL)) {
 		return NULL;
+	}
 	me->flags = 0;
 
-
 	UVMHIST_LOG(maphist, "<- new entry=0x%x [kentry=%d]", me,
-	    ((map->flags & VM_MAP_INTRSAFE) != 0 || map == kernel_map), 0, 0);
-	return (me);
+	    (map == kernel_map), 0, 0);
+	return me;
 }
 
 /*
@@ -1131,8 +1109,7 @@ uvm_map_prepare(struct vm_map *map, vadd
 	 * detect a popular device driver bug.
 	 */
 
-	KASSERT(doing_shutdown || curlwp != NULL ||
-	    (map->flags & VM_MAP_INTRSAFE));
+	KASSERT(doing_shutdown || curlwp != NULL);
 
 	/*
 	 * zero-sized mapping doesn't make any sense.
@@ -1156,11 +1133,9 @@ uvm_map_prepare(struct vm_map *map, vadd
 	/*
 	 * figure out where to put new VM range
 	 */
-
 retry:
 	if (vm_map_lock_try(map) == false) {
-		if ((flags & UVM_FLAG_TRYLOCK) != 0 &&
-		    (map->flags & VM_MAP_INTRSAFE) == 0) {
+		if ((flags & UVM_FLAG_TRYLOCK) != 0) {
 			return EAGAIN;
 		}
 		vm_map_lock(map); /* could sleep here */
@@ -4180,6 +4155,7 @@ uvmspace_free(struct vmspace *vm)
 	if (vm->vm_shm != NULL)
 		shmexit(vm);
 #endif
+
 	if (map->nentries) {
 		uvm_unmap_remove(map, vm_map_min(map), vm_map_max(map),
 		    &dead_entries, 0);
@@ -4188,8 +4164,8 @@ uvmspace_free(struct vmspace *vm)
 	}
 	KASSERT(map->nentries == 0);
 	KASSERT(map->size == 0);
+
 	mutex_destroy(&map->misc_lock);
-	mutex_destroy(&map->mutex);
 	rw_destroy(&map->lock);
 	cv_destroy(&map->cv);
 	pmap_destroy(map->pmap);
@@ -4557,7 +4533,6 @@ uvm_mapent_trymerge(struct vm_map *map, 
 void
 uvm_map_setup(struct vm_map *map, vaddr_t vmin, vaddr_t vmax, int flags)
 {
-	int ipl;
 
 	rb_tree_init(&map->rb_tree, &uvm_map_tree_ops);
 	map->header.next = map->header.prev = &map->header;
@@ -4572,19 +4547,11 @@ uvm_map_setup(struct vm_map *map, vaddr_
 	map->timestamp = 0;
 	map->busy = NULL;
 
-	if ((flags & VM_MAP_INTRSAFE) != 0) {
-		ipl = IPL_VM;
-	} else {
-		ipl = IPL_NONE;
-	}
-
 	rw_init(&map->lock);
 	cv_init(&map->cv, "vm_map");
-	mutex_init(&map->misc_lock, MUTEX_DRIVER, ipl);
-	mutex_init(&map->mutex, MUTEX_DRIVER, ipl);
+	mutex_init(&map->misc_lock, MUTEX_DRIVER, IPL_NONE);
 }
 
-
 /*
  *   U N M A P   -   m a i n   e n t r y   p o i n t
  */

Index: src/sys/uvm/uvm_map.h
diff -u src/sys/uvm/uvm_map.h:1.70 src/sys/uvm/uvm_map.h:1.71
--- src/sys/uvm/uvm_map.h:1.70	Fri Jan 27 19:48:41 2012
+++ src/sys/uvm/uvm_map.h	Sun Feb 19 00:05:56 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_map.h,v 1.70 2012/01/27 19:48:41 para Exp $	*/
+/*	$NetBSD: uvm_map.h,v 1.71 2012/02/19 00:05:56 rmind Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -193,8 +193,6 @@ struct vm_map_entry {
  *
  *		VM_MAP_PAGEABLE		r/o static flag; no locking required
  *
- *		VM_MAP_INTRSAFE		r/o static flag; no locking required
- *
  *		VM_MAP_WIREFUTURE	r/w; may only be set or cleared when
  *					map is write-locked.  may be tested
  *					without asserting `flags_lock'.
@@ -212,7 +210,6 @@ struct vm_map {
 	struct pmap *		pmap;		/* Physical map */
 	krwlock_t		lock;		/* Non-intrsafe lock */
 	struct lwp *		busy;		/* LWP holding map busy */
-	kmutex_t		mutex;		/* INTRSAFE lock */
 	kmutex_t		misc_lock;	/* Lock for ref_count, cv */
 	kcondvar_t		cv;		/* For signalling */
 	int			flags;		/* flags */
@@ -236,7 +233,6 @@ struct vm_map {
 
 /* vm_map flags */
 #define	VM_MAP_PAGEABLE		0x01		/* ro: entries are pageable */
-#define	VM_MAP_INTRSAFE		0x02		/* ro: interrupt safe map */
 #define	VM_MAP_WIREFUTURE	0x04		/* rw: wire future mappings */
 #define	VM_MAP_DYING		0x20		/* rw: map is being destroyed */
 #define	VM_MAP_TOPDOWN		0x40		/* ro: arrange map top-down */

Reply via email to