Module Name:    src
Committed By:   mrg
Date:           Mon May  2 00:39:37 UTC 2011

Modified Files:
        src/sys/dev/raidframe: rf_reconstruct.h rf_reconutil.c rf_revent.c
            rf_threadstuff.h

Log Message:
rever the previous for now; it hangs reconstruction.


To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/sys/dev/raidframe/rf_reconstruct.h
cvs rdiff -u -r1.30 -r1.31 src/sys/dev/raidframe/rf_reconutil.c
cvs rdiff -u -r1.26 -r1.27 src/sys/dev/raidframe/rf_revent.c
cvs rdiff -u -r1.27 -r1.28 src/sys/dev/raidframe/rf_threadstuff.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/raidframe/rf_reconstruct.h
diff -u src/sys/dev/raidframe/rf_reconstruct.h:1.25 src/sys/dev/raidframe/rf_reconstruct.h:1.26
--- src/sys/dev/raidframe/rf_reconstruct.h:1.25	Sun May  1 10:01:01 2011
+++ src/sys/dev/raidframe/rf_reconstruct.h	Mon May  2 00:39:37 2011
@@ -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 */
 

Index: src/sys/dev/raidframe/rf_reconutil.c
diff -u src/sys/dev/raidframe/rf_reconutil.c:1.30 src/sys/dev/raidframe/rf_reconutil.c:1.31
--- src/sys/dev/raidframe/rf_reconutil.c:1.30	Sun May  1 10:01:01 2011
+++ src/sys/dev/raidframe/rf_reconutil.c	Mon May  2 00:39:37 2011
@@ -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,

Index: src/sys/dev/raidframe/rf_revent.c
diff -u src/sys/dev/raidframe/rf_revent.c:1.26 src/sys/dev/raidframe/rf_revent.c:1.27
--- src/sys/dev/raidframe/rf_revent.c:1.26	Sun May  1 10:01:01 2011
+++ src/sys/dev/raidframe/rf_revent.c	Mon May  2 00:39:37 2011
@@ -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

Index: src/sys/dev/raidframe/rf_threadstuff.h
diff -u src/sys/dev/raidframe/rf_threadstuff.h:1.27 src/sys/dev/raidframe/rf_threadstuff.h:1.28
--- src/sys/dev/raidframe/rf_threadstuff.h:1.27	Sun May  1 10:01:01 2011
+++ src/sys/dev/raidframe/rf_threadstuff.h	Mon May  2 00:39:37 2011
@@ -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.

Reply via email to