summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe
diff options
context:
space:
mode:
authormrg <mrg@NetBSD.org>2011-05-11 06:20:33 +0000
committermrg <mrg@NetBSD.org>2011-05-11 06:20:33 +0000
commitf1da238299e43663fce0d48a79e7c0db5876e8a2 (patch)
tree821dd1c91d8916caa19fa60f0c240633deb28e14 /sys/dev/raidframe
parent7280cc26582c664f35766206804c797e2f00942a (diff)
convert regionBufferPool.mutex/cond and parityBufferPool.mutex/cond
to kmutex/cv.
Diffstat (limited to 'sys/dev/raidframe')
-rw-r--r--sys/dev/raidframe/rf_paritylog.h6
-rw-r--r--sys/dev/raidframe/rf_paritylogDiskMgr.c19
-rw-r--r--sys/dev/raidframe/rf_paritylogging.c18
3 files changed, 23 insertions, 20 deletions
diff --git a/sys/dev/raidframe/rf_paritylog.h b/sys/dev/raidframe/rf_paritylog.h
index 141a6a8428d..e97f28a8387 100644
--- a/sys/dev/raidframe/rf_paritylog.h
+++ b/sys/dev/raidframe/rf_paritylog.h
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_paritylog.h,v 1.10 2011/05/11 06:03:06 mrg Exp $ */
+/* $NetBSD: rf_paritylog.h,v 1.11 2011/05/11 06:20:33 mrg Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -94,8 +94,8 @@ struct RF_ParityLogQueue_s {
};
struct RF_RegionBufferQueue_s {
- RF_DECLARE_MUTEX(mutex)
- RF_DECLARE_COND(cond)
+ rf_declare_mutex2(mutex);
+ rf_declare_cond2(cond);
int bufferSize;
int totalBuffers; /* size of array 'buffers' */
int availableBuffers; /* num available 'buffers' */
diff --git a/sys/dev/raidframe/rf_paritylogDiskMgr.c b/sys/dev/raidframe/rf_paritylogDiskMgr.c
index 28ee32549e9..efa13c6e966 100644
--- a/sys/dev/raidframe/rf_paritylogDiskMgr.c
+++ b/sys/dev/raidframe/rf_paritylogDiskMgr.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_paritylogDiskMgr.c,v 1.27 2011/05/11 05:14:07 mrg Exp $ */
+/* $NetBSD: rf_paritylogDiskMgr.c,v 1.28 2011/05/11 06:20:33 mrg Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_paritylogDiskMgr.c,v 1.27 2011/05/11 05:14:07 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_paritylogDiskMgr.c,v 1.28 2011/05/11 06:20:33 mrg Exp $");
#include "rf_archs.h"
@@ -67,18 +67,18 @@ AcquireReintBuffer(RF_RegionBufferQueue_t *pool)
/* Return a region buffer from the free list (pool). If the free list
* is empty, WAIT. BLOCKING */
- RF_LOCK_MUTEX(pool->mutex);
+ rf_lock_mutex2(pool->mutex);
if (pool->availableBuffers > 0) {
bufPtr = pool->buffers[pool->availBuffersIndex];
pool->availableBuffers--;
pool->availBuffersIndex++;
if (pool->availBuffersIndex == pool->totalBuffers)
pool->availBuffersIndex = 0;
- RF_UNLOCK_MUTEX(pool->mutex);
+ rf_unlock_mutex2(pool->mutex);
} else {
RF_PANIC(); /* should never happen in correct config,
* single reint */
- RF_WAIT_COND(pool->cond, pool->mutex);
+ rf_wait_cond2(pool->cond, pool->mutex);
}
return (bufPtr);
}
@@ -91,15 +91,18 @@ ReleaseReintBuffer(
/* Insert a region buffer (bufPtr) into the free list (pool).
* NON-BLOCKING */
- RF_LOCK_MUTEX(pool->mutex);
+ rf_lock_mutex2(pool->mutex);
pool->availableBuffers++;
pool->buffers[pool->emptyBuffersIndex] = bufPtr;
pool->emptyBuffersIndex++;
if (pool->emptyBuffersIndex == pool->totalBuffers)
pool->emptyBuffersIndex = 0;
RF_ASSERT(pool->availableBuffers <= pool->totalBuffers);
- RF_UNLOCK_MUTEX(pool->mutex);
- RF_SIGNAL_COND(pool->cond);
+ /*
+ * XXXmrg this signal goes with the above "shouldn't happen" wait?
+ */
+ rf_signal_cond2(pool->cond);
+ rf_unlock_mutex2(pool->mutex);
}
diff --git a/sys/dev/raidframe/rf_paritylogging.c b/sys/dev/raidframe/rf_paritylogging.c
index 8229031f2b8..6fc6663fa38 100644
--- a/sys/dev/raidframe/rf_paritylogging.c
+++ b/sys/dev/raidframe/rf_paritylogging.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_paritylogging.c,v 1.33 2011/05/11 06:03:06 mrg Exp $ */
+/* $NetBSD: rf_paritylogging.c,v 1.34 2011/05/11 06:20:33 mrg Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_paritylogging.c,v 1.33 2011/05/11 06:03:06 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_paritylogging.c,v 1.34 2011/05/11 06:20:33 mrg Exp $");
#include "rf_archs.h"
@@ -293,8 +293,8 @@ rf_ConfigureParityLogging(
}
rf_ShutdownCreate(listp, rf_ShutdownParityLoggingPool, raidPtr);
/* build pool of region buffers */
- rf_mutex_init(&raidPtr->regionBufferPool.mutex);
- raidPtr->regionBufferPool.cond = 0;
+ rf_init_mutex2(raidPtr->regionBufferPool.mutex, IPL_VM);
+ rf_init_cond2(raidPtr->regionBufferPool.cond, "rfrbpl");
raidPtr->regionBufferPool.bufferSize = raidPtr->regionLogCapacity *
raidPtr->bytesPerSector;
printf("regionBufferPool.bufferSize %d\n",
@@ -342,8 +342,8 @@ rf_ConfigureParityLogging(
raidPtr);
/* build pool of parity buffers */
parityBufferCapacity = maxRegionParityRange;
- rf_mutex_init(&raidPtr->parityBufferPool.mutex);
- raidPtr->parityBufferPool.cond = 0;
+ rf_init_mutex2(raidPtr->parityBufferPool.mutex, IPL_VM);
+ rf_init_cond2(raidPtr->parityBufferPool.cond, "rfpbpl");
raidPtr->parityBufferPool.bufferSize = parityBufferCapacity *
raidPtr->bytesPerSector;
printf("parityBufferPool.bufferSize %d\n",
@@ -392,7 +392,7 @@ rf_ConfigureParityLogging(
raidPtr);
/* initialize parityLogDiskQueue */
rf_init_mutex2(raidPtr->parityLogDiskQueue.mutex, IPL_VM);
- rf_init_cond2(raidPtr->parityLogDiskQueue.cond, "rfdskq");
+ rf_init_cond2(raidPtr->parityLogDiskQueue.cond, "rfpldq");
raidPtr->parityLogDiskQueue.flushQueue = NULL;
raidPtr->parityLogDiskQueue.reintQueue = NULL;
raidPtr->parityLogDiskQueue.bufHead = NULL;
@@ -538,7 +538,6 @@ FreeRegionBufferQueue(RF_RegionBufferQueue_t * queue)
{
int i;
- RF_LOCK_MUTEX(queue->mutex);
if (queue->availableBuffers != queue->totalBuffers) {
printf("Attempt to free region queue which is still in use!\n");
RF_ASSERT(0);
@@ -546,7 +545,8 @@ FreeRegionBufferQueue(RF_RegionBufferQueue_t * queue)
for (i = 0; i < queue->totalBuffers; i++)
RF_Free(queue->buffers[i], queue->bufferSize);
RF_Free(queue->buffers, queue->totalBuffers * sizeof(void *));
- RF_UNLOCK_MUTEX(queue->mutex);
+ rf_destroy_mutex2(queue->mutex);
+ rf_destroy_cond2(queue->cond);
}
static void