Module Name: src Committed By: njoly Date: Wed Jul 3 17:10:28 UTC 2013
Modified Files: src/sys/rump/librump/rumpkern: locks.c rump.c Log Message: Make RUMP_LOCKDEBUG work again. With some help from pooka@. To generate a diff of this commit: cvs rdiff -u -r1.64 -r1.65 src/sys/rump/librump/rumpkern/locks.c cvs rdiff -u -r1.270 -r1.271 src/sys/rump/librump/rumpkern/rump.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/rump/librump/rumpkern/locks.c diff -u src/sys/rump/librump/rumpkern/locks.c:1.64 src/sys/rump/librump/rumpkern/locks.c:1.65 --- src/sys/rump/librump/rumpkern/locks.c:1.64 Wed May 15 14:52:49 2013 +++ src/sys/rump/librump/rumpkern/locks.c Wed Jul 3 17:10:28 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: locks.c,v 1.64 2013/05/15 14:52:49 pooka Exp $ */ +/* $NetBSD: locks.c,v 1.65 2013/07/03 17:10:28 njoly Exp $ */ /* * Copyright (c) 2007-2011 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: locks.c,v 1.64 2013/05/15 14:52:49 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: locks.c,v 1.65 2013/07/03 17:10:28 njoly Exp $"); #include <sys/param.h> #include <sys/kmem.h> @@ -59,8 +59,8 @@ static lockops_t rw_lockops = { lockdebug_alloc(lock, ops, (uintptr_t)__builtin_return_address(0)) #define FREELOCK(lock) \ lockdebug_free(lock) -#define WANTLOCK(lock, shar, try) \ - lockdebug_wantlock(lock, (uintptr_t)__builtin_return_address(0), shar, try) +#define WANTLOCK(lock, shar) \ + lockdebug_wantlock(lock, (uintptr_t)__builtin_return_address(0), shar) #define LOCKED(lock, shar) \ lockdebug_locked(lock, NULL, (uintptr_t)__builtin_return_address(0), shar) #define UNLOCKED(lock, shar) \ @@ -68,7 +68,7 @@ static lockops_t rw_lockops = { #else #define ALLOCK(a, b) #define FREELOCK(a) -#define WANTLOCK(a, b, c) +#define WANTLOCK(a, b) #define LOCKED(a, b) #define UNLOCKED(a, b) #endif @@ -131,7 +131,7 @@ void mutex_enter(kmutex_t *mtx) { - WANTLOCK(mtx, false, false); + WANTLOCK(mtx, 0); rumpuser_mutex_enter(RUMPMTX(mtx)); LOCKED(mtx, false); } @@ -140,7 +140,7 @@ void mutex_spin_enter(kmutex_t *mtx) { - WANTLOCK(mtx, false, false); + WANTLOCK(mtx, 0); rumpuser_mutex_enter_nowrap(RUMPMTX(mtx)); LOCKED(mtx, false); } @@ -152,7 +152,7 @@ mutex_tryenter(kmutex_t *mtx) error = rumpuser_mutex_tryenter(RUMPMTX(mtx)); if (error == 0) { - WANTLOCK(mtx, false, true); + WANTLOCK(mtx, 0); LOCKED(mtx, false); } return error == 0; @@ -224,7 +224,7 @@ rw_enter(krwlock_t *rw, const krw_t op) { - WANTLOCK(rw, op == RW_READER, false); + WANTLOCK(rw, op == RW_READER); rumpuser_rw_enter(krw2rumprw(op), RUMPRW(rw)); LOCKED(rw, op == RW_READER); } @@ -236,7 +236,7 @@ rw_tryenter(krwlock_t *rw, const krw_t o error = rumpuser_rw_tryenter(krw2rumprw(op), RUMPRW(rw)); if (error == 0) { - WANTLOCK(rw, op == RW_READER, true); + WANTLOCK(rw, op == RW_READER); LOCKED(rw, op == RW_READER); } return error == 0; @@ -264,7 +264,7 @@ rw_tryupgrade(krwlock_t *rw) rv = rumpuser_rw_tryupgrade(RUMPRW(rw)); if (rv == 0) { UNLOCKED(rw, 1); - WANTLOCK(rw, 0, true); + WANTLOCK(rw, 0); LOCKED(rw, 0); } return rv == 0; @@ -276,7 +276,7 @@ rw_downgrade(krwlock_t *rw) rumpuser_rw_downgrade(RUMPRW(rw)); UNLOCKED(rw, 0); - WANTLOCK(rw, 1, false); + WANTLOCK(rw, 1); LOCKED(rw, 1); } Index: src/sys/rump/librump/rumpkern/rump.c diff -u src/sys/rump/librump/rumpkern/rump.c:1.270 src/sys/rump/librump/rumpkern/rump.c:1.271 --- src/sys/rump/librump/rumpkern/rump.c:1.270 Fri May 31 16:16:40 2013 +++ src/sys/rump/librump/rumpkern/rump.c Wed Jul 3 17:10:28 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: rump.c,v 1.270 2013/05/31 16:16:40 pooka Exp $ */ +/* $NetBSD: rump.c,v 1.271 2013/07/03 17:10:28 njoly Exp $ */ /* * Copyright (c) 2007-2011 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.270 2013/05/31 16:16:40 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.271 2013/07/03 17:10:28 njoly Exp $"); #include <sys/systm.h> #define ELFSIZE ARCH_ELFSIZE @@ -282,7 +282,6 @@ rump_init(void) aprint_verbose("%s%s", copyright, version); rump_intr_init(numcpu); - rump_tsleep_init(); /* init minimal lwp/cpu context */ l = &lwp0; @@ -294,6 +293,8 @@ rump_init(void) rumpuser_curlwpop(RUMPUSER_LWP_CREATE, l); rumpuser_curlwpop(RUMPUSER_LWP_SET, l); + rump_tsleep_init(); + rumpuser_mutex_init(&rump_giantlock, RUMPUSER_MTX_SPIN); ksyms_init(); uvm_init();