Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/raidframe rever the previous for now; it hangs recon...



details:   https://anonhg.NetBSD.org/src/rev/d3817b787ef0
branches:  trunk
changeset: 764716:d3817b787ef0
user:      mrg <mrg%NetBSD.org@localhost>
date:      Mon May 02 00:39:37 2011 +0000

description:
rever the previous for now; it hangs reconstruction.

diffstat:

 sys/dev/raidframe/rf_reconstruct.h |   4 ++--
 sys/dev/raidframe/rf_reconutil.c   |   8 +++-----
 sys/dev/raidframe/rf_revent.c      |  24 +++++++++++++-----------
 sys/dev/raidframe/rf_threadstuff.h |   4 +---
 4 files changed, 19 insertions(+), 21 deletions(-)

diffs (164 lines):

diff -r fee3278afc10 -r d3817b787ef0 sys/dev/raidframe/rf_reconstruct.h
--- a/sys/dev/raidframe/rf_reconstruct.h        Mon May 02 00:29:53 2011 +0000
+++ b/sys/dev/raidframe/rf_reconstruct.h        Mon May 02 00:39:37 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_reconstruct.h,v 1.25 2011/05/01 10:01:01 mrg Exp $  */
+/*     $NetBSD: rf_reconstruct.h,v 1.26 2011/05/02 00:39:37 mrg Exp $  */
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -137,7 +137,7 @@
        /* reconstruction event queue */
        RF_ReconEvent_t *eventQueue;    /* queue of pending reconstruction
                                         * events */
-       rf_declare_mutex2(eq_mutex);    /* mutex for locking event
+        RF_DECLARE_MUTEX(eq_mutex)     /* mutex for locking event
                                         * queue */
        int     eq_count;       /* debug only */
 
diff -r fee3278afc10 -r d3817b787ef0 sys/dev/raidframe/rf_reconutil.c
--- a/sys/dev/raidframe/rf_reconutil.c  Mon May 02 00:29:53 2011 +0000
+++ b/sys/dev/raidframe/rf_reconutil.c  Mon May 02 00:39:37 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_reconutil.c,v 1.30 2011/05/01 10:01:01 mrg Exp $    */
+/*     $NetBSD: rf_reconutil.c,v 1.31 2011/05/02 00:39:37 mrg Exp $    */
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -31,7 +31,7 @@
  ********************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_reconutil.c,v 1.30 2011/05/01 10:01:01 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_reconutil.c,v 1.31 2011/05/02 00:39:37 mrg Exp $");
 
 #include <dev/raidframe/raidframevar.h>
 
@@ -125,7 +125,7 @@
        }
 
        /* initialize the event queue */
-       rf_init_mutex2(reconCtrlPtr->eq_mutex, IPL_VM);
+       rf_mutex_init(&reconCtrlPtr->eq_mutex);
 
        reconCtrlPtr->eventQueue = NULL;
        reconCtrlPtr->eq_count = 0;
@@ -171,8 +171,6 @@
                t = reconCtrlPtr->floatingRbufs;
        }
 
-       rf_destroy_mutex2(reconCtrlPtr->eq_mutex);
-
        rf_FreeReconMap(reconCtrlPtr->reconMap);
        rf_FreeParityStripeStatusTable(raidPtr, reconCtrlPtr->pssTable);
        RF_Free(reconCtrlPtr->perDiskInfo,
diff -r fee3278afc10 -r d3817b787ef0 sys/dev/raidframe/rf_revent.c
--- a/sys/dev/raidframe/rf_revent.c     Mon May 02 00:29:53 2011 +0000
+++ b/sys/dev/raidframe/rf_revent.c     Mon May 02 00:39:37 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_revent.c,v 1.26 2011/05/01 10:01:01 mrg Exp $       */
+/*     $NetBSD: rf_revent.c,v 1.27 2011/05/02 00:39:37 mrg Exp $       */
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_revent.c,v 1.26 2011/05/01 10:01:01 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_revent.c,v 1.27 2011/05/02 00:39:37 mrg Exp $");
 
 #include <sys/errno.h>
 
@@ -81,7 +81,7 @@
        RF_ReconEvent_t *event;
        int stall_count;
 
-       rf_lock_mutex2(rctrl->eq_mutex);
+       RF_LOCK_MUTEX(rctrl->eq_mutex);
        /* q null and count==0 must be equivalent conditions */
        RF_ASSERT((rctrl->eventQueue == NULL) == (rctrl->eq_count == 0));
 
@@ -114,8 +114,9 @@
                        reconDesc->numReconExecDelays++;
 #endif                         /* RF_RECON_STATS > 0 */
 
-                       status = rf_sleep("rfrecond", RECON_TIMO,
-                                         rctrl->eq_mutex);
+                       status = ltsleep(&reconDesc->reconExecTicks, PRIBIO,
+                                        "recon delay", RECON_TIMO,
+                                        &rctrl->eq_mutex);
                        RF_ASSERT(status == EWOULDBLOCK);
                        reconDesc->reconExecTicks = 0;
                }
@@ -127,7 +128,8 @@
                reconDesc->numReconEventWaits++;
 #endif                         /* RF_RECON_STATS > 0 */
 
-               rf_sleep("rfevq", RF_EVENTQ_WAIT, rctrl->eq_mutex);
+               ltsleep(&(rctrl)->eventQueue, PRIBIO,  "raidframe eventq",
+                       RF_EVENTQ_WAIT, &((rctrl)->eq_mutex));
 
                stall_count++;
 
@@ -153,7 +155,7 @@
 
        /* q null and count==0 must be equivalent conditions */
        RF_ASSERT((rctrl->eventQueue == NULL) == (rctrl->eq_count == 0));
-       rf_unlock_mutex2(rctrl->eq_mutex);
+       RF_UNLOCK_MUTEX(rctrl->eq_mutex);
        return (event);
 }
 /* enqueues a reconstruction event on the indicated queue */
@@ -168,13 +170,13 @@
                RF_ASSERT(col != rctrl->fcol);
        }
        RF_ASSERT(col >= 0 && col <= raidPtr->numCol);
-       rf_lock_mutex2(rctrl->eq_mutex);
+       RF_LOCK_MUTEX(rctrl->eq_mutex);
        /* q null and count==0 must be equivalent conditions */
        RF_ASSERT((rctrl->eventQueue == NULL) == (rctrl->eq_count == 0));
        event->next = rctrl->eventQueue;
        rctrl->eventQueue = event;
        rctrl->eq_count++;
-       rf_unlock_mutex2(rctrl->eq_mutex);
+       RF_UNLOCK_MUTEX(rctrl->eq_mutex);
 
        wakeup(&(rctrl)->eventQueue);
 }
@@ -204,7 +206,7 @@
        RF_ReconCtrl_t *rctrl = reconDesc->raidPtr->reconControl;
        RF_ReconEvent_t *event;
 
-       rf_lock_mutex2(rctrl->eq_mutex);
+       RF_LOCK_MUTEX(rctrl->eq_mutex);
        while (rctrl->eventQueue!=NULL) {
 
                event = rctrl->eventQueue;
@@ -214,7 +216,7 @@
                /* dump it */
                rf_FreeReconEventDesc(event);
        }
-       rf_unlock_mutex2(rctrl->eq_mutex);
+       RF_UNLOCK_MUTEX(rctrl->eq_mutex);
 }
 
 void
diff -r fee3278afc10 -r d3817b787ef0 sys/dev/raidframe/rf_threadstuff.h
--- a/sys/dev/raidframe/rf_threadstuff.h        Mon May 02 00:29:53 2011 +0000
+++ b/sys/dev/raidframe/rf_threadstuff.h        Mon May 02 00:39:37 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rf_threadstuff.h,v 1.27 2011/05/01 10:01:01 mrg Exp $  */
+/*     $NetBSD: rf_threadstuff.h,v 1.28 2011/05/02 00:39:37 mrg Exp $  */
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -91,8 +91,6 @@
 #define rf_signal_cond2(_c_)       cv_signal(&(_c_))
 #define rf_broadcast_cond2(_c_)    cv_broadcast(&(_c_))
 
-#define rf_sleep(_w_,_t_,_m_)      kpause((_w_), false, (_t_), &(_m_))
-
 /*
  * In NetBSD, kernel threads are simply processes which share several
  * substructures and never run in userspace.



Home | Main Index | Thread Index | Old Index