diff options
author | eivind <eivind@FreeBSD.org> | 1999-01-08 17:31:30 +0000 |
---|---|---|
committer | eivind <eivind@FreeBSD.org> | 1999-01-08 17:31:30 +0000 |
commit | a8dc66f457be84eefbe16e70c901ceb11137ba65 (patch) | |
tree | e5747f527c552fa90334c779c047697b372582fb /sys/vm | |
parent | 1c69824749ed0aa6efce159d39ab3f17fc9e25f2 (diff) | |
download | FreeBSD-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.c | 7 | ||||
-rw-r--r-- | sys/vm/swap_pager.c | 12 | ||||
-rw-r--r-- | sys/vm/vm_fault.c | 8 | ||||
-rw-r--r-- | sys/vm/vm_object.c | 34 | ||||
-rw-r--r-- | sys/vm/vm_page.c | 29 | ||||
-rw-r--r-- | sys/vm/vm_page.h | 8 | ||||
-rw-r--r-- | sys/vm/vm_zone.c | 10 | ||||
-rw-r--r-- | sys/vm/vm_zone.h | 8 |
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; |