Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/raidframe convert mcpair to kmutex.



details:   https://anonhg.NetBSD.org/src/rev/e468b05a49fe
branches:  trunk
changeset: 764688:e468b05a49fe
user:      mrg <mrg%NetBSD.org@localhost>
date:      Sun May 01 01:09:05 2011 +0000

description:
convert mcpair to kmutex.

diffstat:

 sys/dev/raidframe/rf_copyback.c   |  12 ++++++------
 sys/dev/raidframe/rf_mcpair.c     |  16 +++++++++-------
 sys/dev/raidframe/rf_mcpair.h     |  11 ++++++-----
 sys/dev/raidframe/rf_parityscan.c |  24 ++++++++++++------------
 sys/dev/raidframe/rf_raid1.c      |  22 +++++++++++-----------
 5 files changed, 44 insertions(+), 41 deletions(-)

diffs (247 lines):

diff -r 591eab91b0b2 -r e468b05a49fe sys/dev/raidframe/rf_copyback.c
--- a/sys/dev/raidframe/rf_copyback.c   Sun May 01 00:22:36 2011 +0000
+++ b/sys/dev/raidframe/rf_copyback.c   Sun May 01 01:09:05 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_copyback.c,v 1.45 2011/02/19 07:11:09 enami Exp $   */
+/*     $NetBSD: rf_copyback.c,v 1.46 2011/05/01 01:09:05 mrg Exp $     */
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -38,7 +38,7 @@
  ****************************************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_copyback.c,v 1.45 2011/02/19 07:11:09 enami Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_copyback.c,v 1.46 2011/05/01 01:09:05 mrg Exp $");
 
 #include <dev/raidframe/raidframevar.h>
 
@@ -350,17 +350,17 @@
         * pair to complete. in the simulator, just return, since everything
         * will happen as callbacks */
 
-       RF_LOCK_MUTEX(desc->mcpair->mutex);
+       RF_LOCK_MCPAIR(desc->mcpair);
        desc->mcpair->flag = 0;
-       RF_UNLOCK_MUTEX(desc->mcpair->mutex);
+       RF_UNLOCK_MCPAIR(desc->mcpair);
 
        rf_DiskIOEnqueue(&raidPtr->Queues[spCol], desc->readreq, RF_IO_NORMAL_PRIORITY);
 
-       RF_LOCK_MUTEX(desc->mcpair->mutex);
+       RF_LOCK_MCPAIR(desc->mcpair);
        while (!desc->mcpair->flag) {
                RF_WAIT_MCPAIR(desc->mcpair);
        }
-       RF_UNLOCK_MUTEX(desc->mcpair->mutex);
+       RF_UNLOCK_MCPAIR(desc->mcpair);
        rf_FreeDiskQueueData(desc->readreq);
        rf_FreeDiskQueueData(desc->writereq);
 
diff -r 591eab91b0b2 -r e468b05a49fe sys/dev/raidframe/rf_mcpair.c
--- a/sys/dev/raidframe/rf_mcpair.c     Sun May 01 00:22:36 2011 +0000
+++ b/sys/dev/raidframe/rf_mcpair.c     Sun May 01 01:09:05 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_mcpair.c,v 1.23 2011/04/30 01:44:36 mrg Exp $       */
+/*     $NetBSD: rf_mcpair.c,v 1.24 2011/05/01 01:09:05 mrg Exp $       */
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_mcpair.c,v 1.23 2011/04/30 01:44:36 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_mcpair.c,v 1.24 2011/05/01 01:09:05 mrg Exp $");
 
 #include <dev/raidframe/raidframevar.h>
 
@@ -75,8 +75,8 @@
        RF_MCPair_t *t;
 
        t = pool_get(&rf_pools.mcpair, PR_WAITOK);
-       rf_mutex_init(&t->mutex);
-       t->cond = 0;
+       rf_init_mutex2(t->mutex, IPL_VM);
+       rf_init_cond2(t->cond, "mcpair");
        t->flag = 0;
 
        return (t);
@@ -85,6 +85,8 @@
 void
 rf_FreeMCPair(RF_MCPair_t *t)
 {
+       rf_destroy_cond2(t->cond);
+       rf_destroy_mutex2(t->mutex);
        pool_put(&rf_pools.mcpair, t);
 }
 
@@ -93,8 +95,8 @@
 void
 rf_MCPairWakeupFunc(RF_MCPair_t *mcpair)
 {
-       RF_LOCK_MUTEX(mcpair->mutex);
+       RF_LOCK_MCPAIR(mcpair);
        mcpair->flag = 1;
-       wakeup(&(mcpair->cond));
-       RF_UNLOCK_MUTEX(mcpair->mutex);
+       rf_broadcast_cond2(mcpair->cond);
+       RF_UNLOCK_MCPAIR(mcpair);
 }
diff -r 591eab91b0b2 -r e468b05a49fe sys/dev/raidframe/rf_mcpair.h
--- a/sys/dev/raidframe/rf_mcpair.h     Sun May 01 00:22:36 2011 +0000
+++ b/sys/dev/raidframe/rf_mcpair.h     Sun May 01 01:09:05 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_mcpair.h,v 1.9 2005/12/11 12:23:37 christos Exp $   */
+/*     $NetBSD: rf_mcpair.h,v 1.10 2011/05/01 01:09:05 mrg Exp $       */
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -37,12 +37,13 @@
 #include "rf_threadstuff.h"
 
 struct RF_MCPair_s {
-       RF_DECLARE_MUTEX(mutex)
-       RF_DECLARE_COND(cond)
+       rf_declare_mutex2(mutex);
+       rf_declare_cond2(cond);
        int     flag;
 };
-#define RF_WAIT_MCPAIR(_mcp) \
-       ltsleep(&((_mcp)->cond), PRIBIO, "mcpair", 0, &((_mcp)->mutex))
+#define RF_WAIT_MCPAIR(_mcp)   rf_wait_cond2((_mcp)->cond, (_mcp)->mutex)
+#define RF_LOCK_MCPAIR(_mcp)   rf_lock_mutex2((_mcp)->mutex)
+#define RF_UNLOCK_MCPAIR(_mcp) rf_unlock_mutex2((_mcp)->mutex)
 
 int     rf_ConfigureMCPair(RF_ShutdownList_t ** listp);
 RF_MCPair_t *rf_AllocMCPair(void);
diff -r 591eab91b0b2 -r e468b05a49fe sys/dev/raidframe/rf_parityscan.c
--- a/sys/dev/raidframe/rf_parityscan.c Sun May 01 00:22:36 2011 +0000
+++ b/sys/dev/raidframe/rf_parityscan.c Sun May 01 01:09:05 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_parityscan.c,v 1.33 2009/11/17 18:54:26 jld Exp $   */
+/*     $NetBSD: rf_parityscan.c,v 1.34 2011/05/01 01:09:05 mrg Exp $   */
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -33,7 +33,7 @@
  ****************************************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_parityscan.c,v 1.33 2009/11/17 18:54:26 jld Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_parityscan.c,v 1.34 2011/05/01 01:09:05 mrg Exp $");
 
 #include <dev/raidframe/raidframevar.h>
 
@@ -262,17 +262,17 @@
                rf_PrintDAGList(rd_dag_h);
        }
 #endif
-       RF_LOCK_MUTEX(mcpair->mutex);
+       RF_LOCK_MCPAIR(mcpair);
        mcpair->flag = 0;
-       RF_UNLOCK_MUTEX(mcpair->mutex);
+       RF_UNLOCK_MCPAIR(mcpair);
 
        rf_DispatchDAG(rd_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
            (void *) mcpair);
 
-       RF_LOCK_MUTEX(mcpair->mutex);
+       RF_LOCK_MCPAIR(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;
@@ -308,17 +308,17 @@
                        rf_PrintDAGList(wr_dag_h);
                }
 #endif
-               RF_LOCK_MUTEX(mcpair->mutex);
+               RF_LOCK_MCPAIR(mcpair);
                mcpair->flag = 0;
-               RF_UNLOCK_MUTEX(mcpair->mutex);
+               RF_UNLOCK_MCPAIR(mcpair);
 
                rf_DispatchDAG(wr_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
                    (void *) mcpair);
 
-               RF_LOCK_MUTEX(mcpair->mutex);
+               RF_LOCK_MCPAIR(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");
                        retcode = RF_PARITY_COULD_NOT_CORRECT;
diff -r 591eab91b0b2 -r e468b05a49fe sys/dev/raidframe/rf_raid1.c
--- a/sys/dev/raidframe/rf_raid1.c      Sun May 01 00:22:36 2011 +0000
+++ b/sys/dev/raidframe/rf_raid1.c      Sun May 01 01:09:05 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_raid1.c,v 1.32 2010/04/15 15:49:00 oster Exp $      */
+/*     $NetBSD: rf_raid1.c,v 1.33 2011/05/01 01:09:05 mrg Exp $        */
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -33,7 +33,7 @@
  *****************************************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_raid1.c,v 1.32 2010/04/15 15:49:00 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_raid1.c,v 1.33 2011/05/01 01:09:05 mrg Exp $");
 
 #include "rf_raid.h"
 #include "rf_raid1.h"
@@ -378,18 +378,18 @@
                rf_PrintDAGList(rd_dag_h);
        }
 #endif
-       RF_LOCK_MUTEX(mcpair->mutex);
+       RF_LOCK_MCPAIR(mcpair);
        mcpair->flag = 0;
-       RF_UNLOCK_MUTEX(mcpair->mutex);
+       RF_UNLOCK_MCPAIR(mcpair);
 
        rf_DispatchDAG(rd_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
            (void *) mcpair);
 
-       RF_LOCK_MUTEX(mcpair->mutex);
+       RF_LOCK_MCPAIR(mcpair);
        while (mcpair->flag == 0) {
                RF_WAIT_MCPAIR(mcpair);
        }
-       RF_UNLOCK_MUTEX(mcpair->mutex);
+       RF_UNLOCK_MCPAIR(mcpair);
 
        if (rd_dag_h->status != rf_enable) {
                RF_ERRORMSG("Unable to verify raid1 parity: can't read stripe\n");
@@ -497,19 +497,19 @@
                        rf_PrintDAGList(wr_dag_h);
                }
 #endif
-               RF_LOCK_MUTEX(mcpair->mutex);
+               RF_LOCK_MCPAIR(mcpair);
                mcpair->flag = 0;
-               RF_UNLOCK_MUTEX(mcpair->mutex);
+               RF_UNLOCK_MCPAIR(mcpair);
 
                /* fire off the write DAG */
                rf_DispatchDAG(wr_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
                    (void *) mcpair);
 
-               RF_LOCK_MUTEX(mcpair->mutex);
+               RF_LOCK_MCPAIR(mcpair);
                while (!mcpair->flag) {
-                       RF_WAIT_COND(mcpair->cond, mcpair->mutex);
+                       RF_WAIT_MCPAIR(mcpair);
                }
-               RF_UNLOCK_MUTEX(mcpair->mutex);
+               RF_UNLOCK_MCPAIR(mcpair);
                if (wr_dag_h->status != rf_enable) {
                        RF_ERRORMSG("Unable to correct RAID1 parity in VerifyParity\n");
                        goto done;



Home | Main Index | Thread Index | Old Index