summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoreivind <eivind@FreeBSD.org>1999-01-08 17:31:30 +0000
committereivind <eivind@FreeBSD.org>1999-01-08 17:31:30 +0000
commita8dc66f457be84eefbe16e70c901ceb11137ba65 (patch)
treee5747f527c552fa90334c779c047697b372582fb /sys/vm
parent1c69824749ed0aa6efce159d39ab3f17fc9e25f2 (diff)
downloadFreeBSD-src-a8dc66f457be84eefbe16e70c901ceb11137ba65.zip
FreeBSD-src-a8dc66f457be84eefbe16e70c901ceb11137ba65.tar.gz
Split DIAGNOSTIC -> DIAGNOSTIC, INVARIANTS, and INVARIANT_SUPPORT as
discussed on -hackers. Introduce 'KASSERT(assertion, ("panic message", args))' for simple check + panic. Reviewed by: msmith
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/device_pager.c7
-rw-r--r--sys/vm/swap_pager.c12
-rw-r--r--sys/vm/vm_fault.c8
-rw-r--r--sys/vm/vm_object.c34
-rw-r--r--sys/vm/vm_page.c29
-rw-r--r--sys/vm/vm_page.h8
-rw-r--r--sys/vm/vm_zone.c10
-rw-r--r--sys/vm/vm_zone.h8
8 files changed, 42 insertions, 74 deletions
diff --git a/sys/vm/device_pager.c b/sys/vm/device_pager.c
index 4459b4c..a200b9c 100644
--- a/sys/vm/device_pager.c
+++ b/sys/vm/device_pager.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)device_pager.c 8.1 (Berkeley) 6/11/93
- * $Id: device_pager.c,v 1.35 1998/11/08 12:39:07 dfr Exp $
+ * $Id: device_pager.c,v 1.36 1998/12/07 21:58:50 archie Exp $
*/
#include <sys/param.h>
@@ -208,10 +208,7 @@ dev_pager_getpages(object, m, count, reqpage)
panic("dev_pager_getpage: no map function");
paddr = pmap_phys_address((*mapfunc) ((dev_t) dev, (vm_offset_t) offset << PAGE_SHIFT, prot));
-#ifdef DIAGNOSTIC
- if (paddr == -1)
- panic("dev_pager_getpage: map function returns error");
-#endif
+ KASSERT(paddr != -1,("dev_pager_getpage: map function returns error"));
/*
* Replace the passed in reqpage page with our own fake page and free up the
* all of the original pages.
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index 3e2d0de..dff0490 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -39,7 +39,7 @@
* from: Utah $Hdr: swap_pager.c 1.4 91/04/30$
*
* @(#)swap_pager.c 8.9 (Berkeley) 3/21/94
- * $Id: swap_pager.c,v 1.104 1998/11/19 06:20:42 bde Exp $
+ * $Id: swap_pager.c,v 1.105 1998/12/29 22:53:51 dt Exp $
*/
/*
@@ -1297,7 +1297,7 @@ swap_pager_putpages(object, m, count, sync, rtvals)
swb[i]->swb_locked--;
}
-#if defined(DIAGNOSTIC)
+#if defined(INVARIANTS)
for (i = firstidx; i < lastidx; i++) {
if (reqaddr[i] == SWB_EMPTY) {
printf("I/O to empty block???? -- pindex: %d, i: %d\n",
@@ -1348,11 +1348,9 @@ swap_pager_putpages(object, m, count, sync, rtvals)
}
spc = TAILQ_FIRST(&swap_pager_free);
-#if defined(DIAGNOSTIC)
- if (spc == NULL)
- panic("swap_pager_putpages: free queue is empty, %d expected\n",
- swap_pager_free_count);
-#endif
+ KASSERT(spc,
+ ("swap_pager_putpages: free queue is empty, %d expected\n",
+ swap_pager_free_count));
TAILQ_REMOVE(&swap_pager_free, spc, spc_list);
swap_pager_free_count--;
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index 886833a..f1456b6 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -66,7 +66,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_fault.c,v 1.90 1998/10/28 13:37:02 dg Exp $
+ * $Id: vm_fault.c,v 1.91 1998/11/25 07:40:49 dg Exp $
*/
/*
@@ -528,10 +528,8 @@ readrest:
}
}
-#if defined(DIAGNOSTIC)
- if ((fs.m->flags & PG_BUSY) == 0)
- panic("vm_fault: not busy after main loop");
-#endif
+ KASSERT((fs.m->flags & PG_BUSY) != 0,
+ ("vm_fault: not busy after main loop"));
/*
* PAGE HAS BEEN FOUND. [Loop invariant still holds -- the object lock
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index a79bb1b..a00e995 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -61,7 +61,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_object.c,v 1.135 1998/11/05 14:28:26 dg Exp $
+ * $Id: vm_object.c,v 1.136 1999/01/02 11:34:57 bde Exp $
*/
/*
@@ -242,10 +242,8 @@ vm_object_reference(object)
if (object == NULL)
return;
-#if defined(DIAGNOSTIC)
- if (object->flags & OBJ_DEAD)
- panic("vm_object_reference: attempting to reference dead obj");
-#endif
+ KASSERT(!(object->flags & OBJ_DEAD),
+ ("vm_object_reference: attempting to reference dead obj"));
object->ref_count++;
if (object->type == OBJT_VNODE) {
@@ -262,11 +260,10 @@ vm_object_vndeallocate(object)
vm_object_t object;
{
struct vnode *vp = (struct vnode *) object->handle;
-#if defined(DIAGNOSTIC)
- if (object->type != OBJT_VNODE)
- panic("vm_object_vndeallocate: not a vnode object");
- if (vp == NULL)
- panic("vm_object_vndeallocate: missing vp");
+ KASSERT(object->type == OBJT_VNODE,
+ ("vm_object_vndeallocate: not a vnode object"));
+ KASSERT(vp, ("vm_object_vndeallocate: missing vp"));
+#if defined(INVARIANTS)
if (object->ref_count == 0) {
vprint("vm_object_vndeallocate", vp);
panic("vm_object_vndeallocate: bad object reference count");
@@ -328,12 +325,11 @@ vm_object_deallocate(object)
vm_object_t robject;
robject = TAILQ_FIRST(&object->shadow_head);
-#if defined(DIAGNOSTIC)
- if (robject == NULL)
- panic("vm_object_deallocate: ref_count: %d,"
- " shadow_count: %d",
- object->ref_count, object->shadow_count);
-#endif
+ KASSERT(robject != NULL,
+ ("vm_object_deallocate: ref_count: %d,"
+ " shadow_count: %d",
+ object->ref_count,
+ object->shadow_count));
if ((robject->handle == NULL) &&
(robject->type == OBJT_DEFAULT ||
robject->type == OBJT_SWAP)) {
@@ -418,10 +414,8 @@ vm_object_terminate(object)
*/
vm_object_pip_wait(object, "objtrm");
-#if defined(DIAGNOSTIC)
- if (object->paging_in_progress != 0)
- panic("vm_object_terminate: pageout in progress");
-#endif
+ KASSERT(!object->paging_in_progress,
+ ("vm_object_terminate: pageout in progress"));
/*
* Clean and free the pages, as appropriate. All references to the
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index dec8452..08bfc60 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)vm_page.c 7.4 (Berkeley) 5/7/91
- * $Id: vm_page.c,v 1.113 1998/11/11 15:07:57 dg Exp $
+ * $Id: vm_page.c,v 1.114 1998/12/23 01:52:47 dillon Exp $
*/
/*
@@ -870,11 +870,8 @@ vm_page_alloc(object, pindex, page_req)
int queue, qtype;
int s;
-#ifdef DIAGNOSTIC
- m = vm_page_lookup(object, pindex);
- if (m)
- panic("vm_page_alloc: page already allocated");
-#endif
+ KASSERT(!vm_page_lookup(object, pindex),
+ ("vm_page_alloc: page already allocated"));
if ((curproc == pageproc) && (page_req != VM_ALLOC_INTERRUPT)) {
page_req = VM_ALLOC_SYSTEM;
@@ -887,10 +884,7 @@ vm_page_alloc(object, pindex, page_req)
case VM_ALLOC_NORMAL:
if (cnt.v_free_count >= cnt.v_free_reserved) {
m = vm_page_select_free(object, pindex, PQ_FREE);
-#if defined(DIAGNOSTIC)
- if (m == NULL)
- panic("vm_page_alloc(NORMAL): missing page on free queue\n");
-#endif
+ KASSERT(m, ("vm_page_alloc(NORMAL): missing page on free queue\n"));
} else {
m = vm_page_select_cache(object, pindex);
if (m == NULL) {
@@ -909,10 +903,7 @@ vm_page_alloc(object, pindex, page_req)
case VM_ALLOC_ZERO:
if (cnt.v_free_count >= cnt.v_free_reserved) {
m = vm_page_select_free(object, pindex, PQ_ZERO);
-#if defined(DIAGNOSTIC)
- if (m == NULL)
- panic("vm_page_alloc(ZERO): missing page on free queue\n");
-#endif
+ KASSERT(m, ("vm_page_alloc(ZERO): missing page on free queue\n"));
} else {
m = vm_page_select_cache(object, pindex);
if (m == NULL) {
@@ -933,10 +924,7 @@ vm_page_alloc(object, pindex, page_req)
((cnt.v_cache_count == 0) &&
(cnt.v_free_count >= cnt.v_interrupt_free_min))) {
m = vm_page_select_free(object, pindex, PQ_FREE);
-#if defined(DIAGNOSTIC)
- if (m == NULL)
- panic("vm_page_alloc(SYSTEM): missing page on free queue\n");
-#endif
+ KASSERT(m, ("vm_page_alloc(SYSTEM): missing page on free queue\n"));
} else {
m = vm_page_select_cache(object, pindex);
if (m == NULL) {
@@ -955,10 +943,7 @@ vm_page_alloc(object, pindex, page_req)
case VM_ALLOC_INTERRUPT:
if (cnt.v_free_count > 0) {
m = vm_page_select_free(object, pindex, PQ_FREE);
-#if defined(DIAGNOSTIC)
- if (m == NULL)
- panic("vm_page_alloc(INTERRUPT): missing page on free queue\n");
-#endif
+ KASSERT(m, ("vm_page_alloc(INTERRUPT): missing page on free queue\n"));
} else {
splx(s);
vm_pageout_deficit++;
diff --git a/sys/vm/vm_page.h b/sys/vm/vm_page.h
index 26231a2..3149391 100644
--- a/sys/vm/vm_page.h
+++ b/sys/vm/vm_page.h
@@ -61,7 +61,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_page.h,v 1.47 1998/10/21 14:46:42 dg Exp $
+ * $Id: vm_page.h,v 1.48 1998/10/28 13:37:02 dg Exp $
*/
/*
@@ -391,12 +391,8 @@ vm_page_hold(vm_page_t mem)
static __inline void
vm_page_unhold(vm_page_t mem)
{
-#ifdef DIAGNOSTIC
- if (--mem->hold_count < 0)
- panic("vm_page_unhold: hold count < 0!!!");
-#else
--mem->hold_count;
-#endif
+ KASSERT(mem->hold_count >= 0, ("vm_page_unhold: hold count < 0!!!"));
}
static __inline void
diff --git a/sys/vm/vm_zone.c b/sys/vm/vm_zone.c
index 3c52819..d90784e 100644
--- a/sys/vm/vm_zone.c
+++ b/sys/vm/vm_zone.c
@@ -11,7 +11,7 @@
* 2. Absolutely no warranty of function or purpose is made by the author
* John S. Dyson.
*
- * $Id: vm_zone.c,v 1.23 1998/10/31 17:21:31 peter Exp $
+ * $Id: vm_zone.c,v 1.24 1998/12/04 22:54:57 archie Exp $
*/
#include <sys/param.h>
@@ -194,7 +194,7 @@ zbootinit(vm_zone_t z, char *name, int size, void *item, int nitems)
z->zitems = NULL;
for (i = 0; i < nitems; i++) {
((void **) item)[0] = z->zitems;
-#if defined(DIAGNOSTIC)
+#if defined(INVARIANTS)
((void **) item)[1] = (void *) ZENTRY_FREE;
#endif
z->zitems = item;
@@ -357,7 +357,7 @@ _zget(vm_zone_t z)
nitems -= 1;
for (i = 0; i < nitems; i++) {
((void **) item)[0] = z->zitems;
-#if defined(DIAGNOSTIC)
+#if defined(INVARIANTS)
((void **) item)[1] = (void *) ZENTRY_FREE;
#endif
z->zitems = item;
@@ -367,7 +367,7 @@ _zget(vm_zone_t z)
} else if (z->zfreecnt > 0) {
item = z->zitems;
z->zitems = ((void **) item)[0];
-#if defined(DIAGNOSTIC)
+#if defined(INVARIANTS)
if (((void **) item)[1] != (void *) ZENTRY_FREE)
zerror(ZONE_ERROR_NOTFREE);
((void **) item)[1] = 0;
@@ -432,7 +432,7 @@ sysctl_vm_zone SYSCTL_HANDLER_ARGS
return (0);
}
-#if defined(DIAGNOSTIC)
+#if defined(INVARIANT_SUPPORT)
void
zerror(int error)
{
diff --git a/sys/vm/vm_zone.h b/sys/vm/vm_zone.h
index 55c54d3..6b322f5 100644
--- a/sys/vm/vm_zone.h
+++ b/sys/vm/vm_zone.h
@@ -11,7 +11,7 @@
* 2. Absolutely no warranty of function or purpose is made by the author
* John S. Dyson.
*
- * $Id: vm_zone.c,v 1.20 1998/04/15 17:47:40 bde Exp $
+ * $Id: vm_zone.h,v 1.10 1998/04/25 04:50:03 dyson Exp $
*/
#if !defined(_SYS_ZONE_H)
@@ -76,7 +76,7 @@ _zalloc(vm_zone_t z)
{
void *item;
-#if defined(DIAGNOSTIC)
+#if defined(INVARIANTS)
if (z == 0)
zerror(ZONE_ERROR_INVALID);
#endif
@@ -86,7 +86,7 @@ _zalloc(vm_zone_t z)
item = z->zitems;
z->zitems = ((void **) item)[0];
-#if defined(DIAGNOSTIC)
+#if defined(INVARIANTS)
if (((void **) item)[1] != (void *) ZENTRY_FREE)
zerror(ZONE_ERROR_NOTFREE);
((void **) item)[1] = 0;
@@ -101,7 +101,7 @@ static __inline__ void
_zfree(vm_zone_t z, void *item)
{
((void **) item)[0] = z->zitems;
-#if defined(DIAGNOSTIC)
+#if defined(INVARIANTS)
if (((void **) item)[1] == (void *) ZENTRY_FREE)
zerror(ZONE_ERROR_ALREADYFREE);
((void **) item)[1] = (void *) ZENTRY_FREE;
OpenPOWER on IntegriCloud