Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/raidframe finish porting mcpair users to kmutex, and...



details:   https://anonhg.NetBSD.org/src/rev/29529e4fd6a4
branches:  trunk
changeset: 764794:29529e4fd6a4
user:      mrg <mrg%NetBSD.org@localhost>
date:      Thu May 05 04:20:51 2011 +0000

description:
finish porting mcpair users to kmutex, and fix a couple of declarations
in rf_netbsdkintf.c.  fixes i386/conf/ALL build.

diffstat:

 sys/dev/raidframe/rf_evenodd.c          |  22 +++++++++++-----------
 sys/dev/raidframe/rf_netbsdkintf.c      |  16 ++++++++--------
 sys/dev/raidframe/rf_paritylogDiskMgr.c |  28 ++++++++++++++--------------
 3 files changed, 33 insertions(+), 33 deletions(-)

diffs (225 lines):

diff -r 92306f15508e -r 29529e4fd6a4 sys/dev/raidframe/rf_evenodd.c
--- a/sys/dev/raidframe/rf_evenodd.c    Wed May 04 23:36:21 2011 +0000
+++ b/sys/dev/raidframe/rf_evenodd.c    Thu May 05 04:20:51 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_evenodd.c,v 1.19 2007/01/29 01:52:45 hubertf Exp $  */
+/*     $NetBSD: rf_evenodd.c,v 1.20 2011/05/05 04:20:51 mrg Exp $      */
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -33,7 +33,7 @@
  ****************************************************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_evenodd.c,v 1.19 2007/01/29 01:52:45 hubertf Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_evenodd.c,v 1.20 2011/05/05 04:20:51 mrg Exp $");
 
 #include "rf_archs.h"
 
@@ -411,13 +411,13 @@
                rf_PrintDAGList(rd_dag_h);
        }
 #endif
-       RF_LOCK_MUTEX(mcpair->mutex);
+       RF_LOCK_MCPAIR(mcpair);
        mcpair->flag = 0;
        rf_DispatchDAG(rd_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
            (void *) mcpair);
        while (!mcpair->flag)
-               RF_WAIT_COND(mcpair->cond, mcpair->mutex);
-       RF_UNLOCK_MUTEX(mcpair->mutex);
+               RF_WAIT_MCPAIR(mcpair);
+       RF_UNLOCK_MCPAIR(mcpair);
        if (rd_dag_h->status != rf_enable) {
                RF_ERRORMSG("Unable to verify parity:  can't read the stripe\n");
                retcode = RF_PARITY_COULD_NOT_VERIFY;
@@ -473,13 +473,13 @@
                        rf_PrintDAGList(wr_dag_h);
                }
 #endif
-               RF_LOCK_MUTEX(mcpair->mutex);
+               RF_LOCK_MCPAIR(mcpair);
                mcpair->flag = 0;
                rf_DispatchDAG(wr_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
                    (void *) mcpair);
                while (!mcpair->flag)
-                       RF_WAIT_COND(mcpair->cond, mcpair->mutex);
-               RF_UNLOCK_MUTEX(mcpair->mutex);
+                       RF_WAIT_MCPAIR(mcpair);
+               RF_UNLOCK_MCPAIR(mcpair);
                if (wr_dag_h->status != rf_enable) {
                        RF_ERRORMSG("Unable to correct parity in VerifyParity:  can't write the stripe\n");
                        parity_cant_correct = RF_TRUE;
@@ -504,13 +504,13 @@
                        rf_PrintDAGList(wr_dag_h);
                }
 #endif
-               RF_LOCK_MUTEX(mcpair->mutex);
+               RF_LOCK_MCPAIR(mcpair);
                mcpair->flag = 0;
                rf_DispatchDAG(wr_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
                    (void *) mcpair);
                while (!mcpair->flag)
-                       RF_WAIT_COND(mcpair->cond, mcpair->mutex);
-               RF_UNLOCK_MUTEX(mcpair->mutex);
+                       RF_WAIT_MCPAIR(mcpair);
+               RF_UNLOCK_MCPAIR(mcpair);
                if (wr_dag_h->status != rf_enable) {
                        RF_ERRORMSG("Unable to correct second redundant information in VerifyParity:  can't write the stripe\n");
                        red2_cant_correct = RF_TRUE;
diff -r 92306f15508e -r 29529e4fd6a4 sys/dev/raidframe/rf_netbsdkintf.c
--- a/sys/dev/raidframe/rf_netbsdkintf.c        Wed May 04 23:36:21 2011 +0000
+++ b/sys/dev/raidframe/rf_netbsdkintf.c        Thu May 05 04:20:51 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_netbsdkintf.c,v 1.288 2011/05/01 06:22:54 mrg Exp $ */
+/*     $NetBSD: rf_netbsdkintf.c,v 1.289 2011/05/05 04:20:51 mrg Exp $ */
 
 /*-
  * Copyright (c) 1996, 1997, 1998, 2008 The NetBSD Foundation, Inc.
@@ -101,7 +101,7 @@
  ***********************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.288 2011/05/01 06:22:54 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.289 2011/05/05 04:20:51 mrg Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -162,7 +162,7 @@
 static RF_Raid_t **raidPtrs;   /* global raid device descriptors */
 
 #if (RF_INCLUDE_PARITY_DECLUSTERING_DS > 0)
-static rf_declare_mutex2(rf_sparet_wait_mutex):
+static rf_declare_mutex2(rf_sparet_wait_mutex);
 static rf_declare_cond2(rf_sparet_wait_cv);
 static rf_declare_cond2(rf_sparet_resp_cv);
 
@@ -341,9 +341,9 @@
        }
 
 #if (RF_INCLUDE_PARITY_DECLUSTERING_DS > 0)
-       rf_init_mutex2(&rf_sparet_wait_mutex);
-       rf_init_cond2(&rf_sparet_wait_cv, "sparetw");
-       rf_init_cond2(&rf_sparet_resp_cv, "rfgst");
+       rf_init_mutex2(rf_sparet_wait_mutex, IPL_VM);
+       rf_init_cond2(rf_sparet_wait_cv, "sparetw");
+       rf_init_cond2(rf_sparet_resp_cv, "rfgst");
 
        rf_sparet_wait_queue = rf_sparet_resp_queue = NULL;
 #endif
@@ -1930,11 +1930,11 @@
        rf_lock_mutex2(rf_sparet_wait_mutex);
        req->next = rf_sparet_wait_queue;
        rf_sparet_wait_queue = req;
-       rf_broadcast_conf2(rf_sparet_wait_cv);
+       rf_broadcast_cond2(rf_sparet_wait_cv);
 
        /* mpsleep unlocks the mutex */
        while (!rf_sparet_resp_queue) {
-               cv_wait(rf_sparet_resp_cv, rf_sparet_resp_mutex);
+               rf_wait_cond2(rf_sparet_resp_cv, rf_sparet_wait_mutex);
        }
        req = rf_sparet_resp_queue;
        rf_sparet_resp_queue = req->next;
diff -r 92306f15508e -r 29529e4fd6a4 sys/dev/raidframe/rf_paritylogDiskMgr.c
--- a/sys/dev/raidframe/rf_paritylogDiskMgr.c   Wed May 04 23:36:21 2011 +0000
+++ b/sys/dev/raidframe/rf_paritylogDiskMgr.c   Thu May 05 04:20:51 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_paritylogDiskMgr.c,v 1.23 2009/03/14 15:36:20 dsl Exp $     */
+/*     $NetBSD: rf_paritylogDiskMgr.c,v 1.24 2011/05/05 04:20:51 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.23 2009/03/14 15:36:20 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_paritylogDiskMgr.c,v 1.24 2011/05/05 04:20:51 mrg Exp $");
 
 #include "rf_archs.h"
 
@@ -338,7 +338,7 @@
        RF_PhysDiskAddr_t *fwr_pda;
 
        fwr_mcpair = rf_AllocMCPair();
-       RF_LOCK_MUTEX(fwr_mcpair->mutex);
+       RF_LOCK_MCPAIR(fwr_mcpair);
 
        RF_ASSERT(logList);
        log = logList;
@@ -354,7 +354,7 @@
 
                /* wait for the DAG to complete */
                while (!fwr_mcpair->flag)
-                       RF_WAIT_COND(fwr_mcpair->cond, fwr_mcpair->mutex);
+                       RF_WAIT_MCPAIR(fwr_mcpair);
                if (fwr_dag_h->status != rf_enable) {
                        RF_ERRORMSG1("Unable to write core log to disk (region %d)\n", regionID);
                        RF_ASSERT(0);
@@ -366,7 +366,7 @@
 
                log = log->next;
        }
-       RF_UNLOCK_MUTEX(fwr_mcpair->mutex);
+       RF_UNLOCK_MCPAIR(fwr_mcpair);
        rf_FreeMCPair(fwr_mcpair);
        rf_ReleaseParityLogs(raidPtr, logList);
 }
@@ -402,7 +402,7 @@
                printf("[initiating read of parity for region %d]\n",regionID);
        parityBuffer = AcquireReintBuffer(&raidPtr->parityBufferPool);
        prd_mcpair = rf_AllocMCPair();
-       RF_LOCK_MUTEX(prd_mcpair->mutex);
+       RF_LOCK_MCPAIR(prd_mcpair);
        prd_mcpair->flag = RF_FALSE;
        ReadRegionParity(regionID, prd_mcpair, parityBuffer, raidPtr,
                         &prd_dag_h, &prd_alloclist, &prd_pda);
@@ -414,16 +414,16 @@
                               regionID);
                regionBuffer = AcquireReintBuffer(&raidPtr->regionBufferPool);
                rrd_mcpair = rf_AllocMCPair();
-               RF_LOCK_MUTEX(rrd_mcpair->mutex);
+               RF_LOCK_MCPAIR(rrd_mcpair);
                rrd_mcpair->flag = RF_FALSE;
                ReadRegionLog(regionID, rrd_mcpair, regionBuffer, raidPtr,
                              &rrd_dag_h, &rrd_alloclist, &rrd_pda);
        }
        /* wait on read of region parity to complete */
        while (!prd_mcpair->flag) {
-               RF_WAIT_COND(prd_mcpair->cond, prd_mcpair->mutex);
+               RF_WAIT_MCPAIR(prd_mcpair);
        }
-       RF_UNLOCK_MUTEX(prd_mcpair->mutex);
+       RF_UNLOCK_MCPAIR(prd_mcpair);
        if (prd_dag_h->status != rf_enable) {
                RF_ERRORMSG("Unable to read parity from disk\n");
                /* add code to fail the parity disk */
@@ -435,8 +435,8 @@
        if (raidPtr->regionInfo[regionID].diskCount > 0) {
                /* wait on read of region log to complete */
                while (!rrd_mcpair->flag)
-                       RF_WAIT_COND(rrd_mcpair->cond, rrd_mcpair->mutex);
-               RF_UNLOCK_MUTEX(rrd_mcpair->mutex);
+                       RF_WAIT_MCPAIR(rrd_mcpair);
+               RF_UNLOCK_MCPAIR(rrd_mcpair);
                if (rrd_dag_h->status != rf_enable) {
                        RF_ERRORMSG("Unable to read region log from disk\n");
                        /* add code to fail the log disk */
@@ -457,13 +457,13 @@
                printf("[initiating write of parity for region %d]\n",
                       regionID);
        pwr_mcpair = rf_AllocMCPair();
-       RF_LOCK_MUTEX(pwr_mcpair->mutex);
+       RF_LOCK_MCPAIR(pwr_mcpair);
        pwr_mcpair->flag = RF_FALSE;
        WriteRegionParity(regionID, pwr_mcpair, parityBuffer, raidPtr,
                          &pwr_dag_h, &pwr_alloclist, &pwr_pda);
        while (!pwr_mcpair->flag)
-               RF_WAIT_COND(pwr_mcpair->cond, pwr_mcpair->mutex);
-       RF_UNLOCK_MUTEX(pwr_mcpair->mutex);
+               RF_WAIT_MCPAIR(pwr_mcpair);
+       RF_UNLOCK_MCPAIR(pwr_mcpair);
        if (pwr_dag_h->status != rf_enable) {
                RF_ERRORMSG("Unable to write parity to disk\n");
                /* add code to fail the parity disk */



Home | Main Index | Thread Index | Old Index