summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe
diff options
context:
space:
mode:
authoroster <oster@NetBSD.org>2004-03-05 03:22:05 +0000
committeroster <oster@NetBSD.org>2004-03-05 03:22:05 +0000
commit7bd09b0f2b2b45c52f043c17ee95a8939af2cfe8 (patch)
tree14c112120b9edfe2874956e1d5c50a2e01aaa97f /sys/dev/raidframe
parenta0413593bce5fbff0a566fca524a2658054ad525 (diff)
Introduce RF_DEBUG_DAG and use it to #if-out rf_dagDebug sections.
(i386 GENERIC kernel shrinks by 1.6K)
Diffstat (limited to 'sys/dev/raidframe')
-rw-r--r--sys/dev/raidframe/rf_archs.h6
-rw-r--r--sys/dev/raidframe/rf_dagdegrd.c12
-rw-r--r--sys/dev/raidframe/rf_dagdegwr.c6
-rw-r--r--sys/dev/raidframe/rf_dagffrd.c10
-rw-r--r--sys/dev/raidframe/rf_dagffwr.c10
-rw-r--r--sys/dev/raidframe/rf_dagutils.c12
-rw-r--r--sys/dev/raidframe/rf_raid1.c8
-rw-r--r--sys/dev/raidframe/rf_raid5.c12
8 files changed, 60 insertions, 16 deletions
diff --git a/sys/dev/raidframe/rf_archs.h b/sys/dev/raidframe/rf_archs.h
index aac28be20bd..beb5cd81679 100644
--- a/sys/dev/raidframe/rf_archs.h
+++ b/sys/dev/raidframe/rf_archs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_archs.h,v 1.22 2004/02/29 23:27:24 oster Exp $ */
+/* $NetBSD: rf_archs.h,v 1.23 2004/03/05 03:22:05 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -108,6 +108,10 @@
#define RF_RECON_STATS 1
#endif
+#ifndef RF_DEBUG_DAG
+#define RF_DEBUG_DAG 0
+#endif
+
#ifndef RF_DEBUG_VALIDATE_DAG
#define RF_DEBUG_VALIDATE_DAG 0
#endif
diff --git a/sys/dev/raidframe/rf_dagdegrd.c b/sys/dev/raidframe/rf_dagdegrd.c
index f2faa6aba8b..bcf9dfaba25 100644
--- a/sys/dev/raidframe/rf_dagdegrd.c
+++ b/sys/dev/raidframe/rf_dagdegrd.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_dagdegrd.c,v 1.18 2004/01/10 00:56:27 oster Exp $ */
+/* $NetBSD: rf_dagdegrd.c,v 1.19 2004/03/05 03:22:05 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_dagdegrd.c,v 1.18 2004/01/10 00:56:27 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_dagdegrd.c,v 1.19 2004/03/05 03:22:05 oster Exp $");
#include <dev/raidframe/raidframevar.h>
@@ -126,9 +126,11 @@ rf_CreateRaidOneDegradedReadDAG(RF_Raid_t *raidPtr,
useMirror = 0;
parityStripeID = rf_RaidAddressToParityStripeID(&(raidPtr->Layout),
asmap->raidAddress, &which_ru);
+#if RF_DEBUG_DAG
if (rf_dagDebug) {
printf("[Creating RAID level 1 degraded read DAG]\n");
}
+#endif
dag_h->creator = "RaidOneDegradedReadDAG";
/* alloc the Wnd nodes and the Wmir node */
if (asmap->numDataFailed == 0)
@@ -278,9 +280,11 @@ rf_CreateDegradedReadDAG(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
asmap->raidAddress, &which_ru);
sectorsPerSU = layoutPtr->sectorsPerStripeUnit;
+#if RF_DEBUG_DAG
if (rf_dagDebug) {
printf("[Creating degraded read DAG]\n");
}
+#endif
RF_ASSERT(asmap->numDataFailed == 1);
dag_h->creator = "DegradedReadDAG";
@@ -543,9 +547,11 @@ rf_CreateRaidCDegradedReadDAG(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
parityStripeID = rf_RaidAddressToParityStripeID(&(raidPtr->Layout),
asmap->raidAddress, &which_ru);
+#if RF_DEBUG_DAG
if (rf_dagDebug) {
printf("[Creating RAID C degraded read DAG]\n");
}
+#endif
dag_h->creator = "RaidCDegradedReadDAG";
/* alloc the Wnd nodes and the Wmir node */
if (asmap->numDataFailed == 0)
@@ -995,8 +1001,10 @@ rf_DoubleDegRead(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
RF_PhysDiskAddr_t *failedPDAtwo = asmap->failedPDAs[1];
RF_StripeNum_t parityStripeID = rf_RaidAddressToParityStripeID(layoutPtr, asmap->raidAddress, &which_ru);
+#if RF_DEBUG_DAG
if (rf_dagDebug)
printf("[Creating Double Degraded Read DAG]\n");
+#endif
rf_DD_GenerateFailedAccessASMs(raidPtr, asmap, &npdas, &nRrdNodes, &pqPDAs, &nPQNodes, allocList);
nRudNodes = asmap->numStripeUnitsAccessed - (asmap->numDataFailed);
diff --git a/sys/dev/raidframe/rf_dagdegwr.c b/sys/dev/raidframe/rf_dagdegwr.c
index a919a84b478..0a14ba4f444 100644
--- a/sys/dev/raidframe/rf_dagdegwr.c
+++ b/sys/dev/raidframe/rf_dagdegwr.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_dagdegwr.c,v 1.15 2004/01/10 00:56:27 oster Exp $ */
+/* $NetBSD: rf_dagdegwr.c,v 1.16 2004/03/05 03:22:05 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_dagdegwr.c,v 1.15 2004/01/10 00:56:27 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_dagdegwr.c,v 1.16 2004/03/05 03:22:05 oster Exp $");
#include <dev/raidframe/raidframevar.h>
@@ -183,8 +183,10 @@ rf_CommonCreateSimpleDegradedWriteDAG(RF_Raid_t *raidPtr,
* disk */
failedPDA = asmap->failedPDAs[0];
+#if RF_DEBUG_DAG
if (rf_dagDebug)
printf("[Creating degraded-write DAG]\n");
+#endif
RF_ASSERT(asmap->numDataFailed == 1);
dag_h->creator = "SimpleDegradedWriteDAG";
diff --git a/sys/dev/raidframe/rf_dagffrd.c b/sys/dev/raidframe/rf_dagffrd.c
index 17ac6121586..62aecd9b713 100644
--- a/sys/dev/raidframe/rf_dagffrd.c
+++ b/sys/dev/raidframe/rf_dagffrd.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_dagffrd.c,v 1.11 2004/01/10 00:56:27 oster Exp $ */
+/* $NetBSD: rf_dagffrd.c,v 1.12 2004/03/05 03:22:05 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_dagffrd.c,v 1.11 2004/01/10 00:56:27 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_dagffrd.c,v 1.12 2004/03/05 03:22:05 oster Exp $");
#include <dev/raidframe/raidframevar.h>
@@ -145,15 +145,19 @@ rf_CreateNonredundantDAG(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
doFunc = rf_DiskReadFunc;
undoFunc = rf_DiskReadUndoFunc;
name = "R ";
+#if RF_DEBUG_DAG
if (rf_dagDebug)
printf("[Creating non-redundant read DAG]\n");
+#endif
break;
case RF_IO_TYPE_WRITE:
doFunc = rf_DiskWriteFunc;
undoFunc = rf_DiskWriteUndoFunc;
name = "W ";
+#if RF_DEBUG_DAG
if (rf_dagDebug)
printf("[Creating non-redundant write DAG]\n");
+#endif
break;
default:
RF_PANIC();
@@ -313,9 +317,11 @@ CreateMirrorReadDAG(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
n = asmap->numStripeUnitsAccessed;
dag_h->creator = "RaidOneReadDAG";
+#if RF_DEBUG_DAG
if (rf_dagDebug) {
printf("[Creating RAID level 1 read DAG]\n");
}
+#endif
/*
* This dag can not commit until the commit node is reached
* errors prior to the commit point imply the dag has failed.
diff --git a/sys/dev/raidframe/rf_dagffwr.c b/sys/dev/raidframe/rf_dagffwr.c
index 8e6c0de9594..9fdc6fe76de 100644
--- a/sys/dev/raidframe/rf_dagffwr.c
+++ b/sys/dev/raidframe/rf_dagffwr.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_dagffwr.c,v 1.18 2004/02/21 20:06:29 oster Exp $ */
+/* $NetBSD: rf_dagffwr.c,v 1.19 2004/03/05 03:22:05 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_dagffwr.c,v 1.18 2004/02/21 20:06:29 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_dagffwr.c,v 1.19 2004/03/05 03:22:05 oster Exp $");
#include <dev/raidframe/raidframevar.h>
@@ -180,9 +180,11 @@ rf_CommonCreateLargeWriteDAG(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
asmap->raidAddress,
&which_ru);
+#if RF_DEBUG_DAG
if (rf_dagDebug) {
printf("[Creating large-write DAG]\n");
}
+#endif
dag_h->creator = "LargeWriteDAG";
dag_h->numCommitNodes = 1;
@@ -497,9 +499,11 @@ rf_CommonCreateSmallWriteDAG(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
numDataNodes = asmap->numStripeUnitsAccessed;
numParityNodes = (asmap->parityInfo->next) ? 2 : 1;
+#if RF_DEBUG_DAG
if (rf_dagDebug) {
printf("[Creating small-write DAG]\n");
}
+#endif
RF_ASSERT(numDataNodes > 0);
dag_h->creator = "SmallWriteDAG";
@@ -1005,9 +1009,11 @@ rf_CreateRaidOneWriteDAG(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
parityStripeID = rf_RaidAddressToParityStripeID(&(raidPtr->Layout),
asmap->raidAddress, &which_ru);
+#if RF_DEBUG_DAG
if (rf_dagDebug) {
printf("[Creating RAID level 1 write DAG]\n");
}
+#endif
dag_h->creator = "RaidOneWriteDAG";
/* 2 implies access not SU aligned */
diff --git a/sys/dev/raidframe/rf_dagutils.c b/sys/dev/raidframe/rf_dagutils.c
index 0935f55c74f..e6e822cee36 100644
--- a/sys/dev/raidframe/rf_dagutils.c
+++ b/sys/dev/raidframe/rf_dagutils.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_dagutils.c,v 1.30 2004/03/05 02:53:55 oster Exp $ */
+/* $NetBSD: rf_dagutils.c,v 1.31 2004/03/05 03:22:05 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -33,7 +33,7 @@
*****************************************************************************/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_dagutils.c,v 1.30 2004/03/05 02:53:55 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_dagutils.c,v 1.31 2004/03/05 03:22:05 oster Exp $");
#include <dev/raidframe/raidframevar.h>
@@ -739,12 +739,14 @@ rf_redirect_asm(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap)
RF_ASSERT(raidPtr->status == rf_rs_reconstructing);
for (pda = asmap->physInfo; pda; pda = pda->next) {
if (pda->col == fcol) {
+#if RF_DEBUG_DAG
if (rf_dagDebug) {
if (!rf_CheckRUReconstructed(raidPtr->reconControl->reconMap,
pda->startSector)) {
RF_PANIC();
}
}
+#endif
/* printf("Remapped data for large write\n"); */
if (ds) {
raidPtr->Layout.map->MapSector(raidPtr, pda->raidAddress,
@@ -756,11 +758,13 @@ rf_redirect_asm(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap)
}
for (pda = asmap->parityInfo; pda; pda = pda->next) {
if (pda->col == fcol) {
+#if RF_DEBUG_DAG
if (rf_dagDebug) {
if (!rf_CheckRUReconstructed(raidPtr->reconControl->reconMap, pda->startSector)) {
RF_PANIC();
}
}
+#endif
}
if (ds) {
(raidPtr->Layout.map->MapParity) (raidPtr, pda->raidAddress, &pda->col, &pda->startSector, RF_REMAP);
@@ -946,9 +950,11 @@ rf_GenerateFailedAccessASMs(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
* buf if not needed */
RF_MallocAndAdd(rdBuf, rf_RaidAddressToByte(raidPtr, numSect[0] + numSect[1] + numParitySect), (char *), allocList);
bufP = rdBuf;
+#if RF_DEBUG_DAG
if (rf_degDagDebug)
printf("Newly allocated buffer (%d bytes) is 0x%lx\n",
(int) rf_RaidAddressToByte(raidPtr, numSect[0] + numSect[1] + numParitySect), (unsigned long) bufP);
+#endif
}
/* now walk through the pdas one last time and assign buffer pointers
* (ugh!). Again, ignore the parity. also, count nodes to find out
@@ -993,6 +999,7 @@ rf_GenerateFailedAccessASMs(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
RF_ERRORMSG("GenerateFailedAccessASMs: did not find failedPDA in asm list\n");
RF_ASSERT(0);
}
+#if RF_DEBUG_DAG
if (rf_degDagDebug) {
if (new_asm_h[0]) {
printf("First asm:\n");
@@ -1003,6 +1010,7 @@ rf_GenerateFailedAccessASMs(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
rf_PrintFullAccessStripeMap(new_asm_h[1], 1);
}
}
+#endif
}
diff --git a/sys/dev/raidframe/rf_raid1.c b/sys/dev/raidframe/rf_raid1.c
index 67718722448..363a0a07140 100644
--- a/sys/dev/raidframe/rf_raid1.c
+++ b/sys/dev/raidframe/rf_raid1.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_raid1.c,v 1.22 2004/03/03 13:29:00 oster Exp $ */
+/* $NetBSD: rf_raid1.c,v 1.23 2004/03/05 03:22:05 oster 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.22 2004/03/03 13:29:00 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_raid1.c,v 1.23 2004/03/05 03:22:05 oster Exp $");
#include "rf_raid.h"
#include "rf_raid1.h"
@@ -178,8 +178,10 @@ rf_RAID1DagSelect(RF_Raid_t *raidPtr, RF_IoType_t type,
RF_ASSERT(RF_IO_IS_R_OR_W(type));
if (asmap->numDataFailed + asmap->numParityFailed > 1) {
+#if RF_DEBUG_DAG
if (rf_dagDebug)
RF_ERRORMSG("Multiple disks failed in a single group! Aborting I/O operation.\n");
+#endif
*createFunc = NULL;
return;
}
@@ -221,6 +223,7 @@ rf_RAID1DagSelect(RF_Raid_t *raidPtr, RF_IoType_t type,
}
}
}
+#if RF_DEBUG_DAG > 0 || RF_DEBUG_MAP > 0
if (rf_dagDebug || rf_mapDebug) {
printf("raid%d: Redirected type '%c' c %d o %ld -> c %d o %ld\n",
raidPtr->raidid, type, oc,
@@ -228,6 +231,7 @@ rf_RAID1DagSelect(RF_Raid_t *raidPtr, RF_IoType_t type,
failedPDA->col,
(long) failedPDA->startSector);
}
+#endif
asmap->numDataFailed = asmap->numParityFailed = 0;
}
}
diff --git a/sys/dev/raidframe/rf_raid5.c b/sys/dev/raidframe/rf_raid5.c
index f147b24595a..09f159961c6 100644
--- a/sys/dev/raidframe/rf_raid5.c
+++ b/sys/dev/raidframe/rf_raid5.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_raid5.c,v 1.12 2004/02/29 20:11:26 oster Exp $ */
+/* $NetBSD: rf_raid5.c,v 1.13 2004/03/05 03:22:05 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -33,7 +33,7 @@
*****************************************************************************/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_raid5.c,v 1.12 2004/02/29 20:11:26 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_raid5.c,v 1.13 2004/03/05 03:22:05 oster Exp $");
#include <dev/raidframe/raidframevar.h>
@@ -171,8 +171,10 @@ rf_RaidFiveDagSelect(RF_Raid_t *raidPtr, RF_IoType_t type,
if ((asmap->numDataFailed + asmap->numParityFailed > 1) ||
(raidPtr->numFailures > 1)){
+#if RF_DEBUG_DAG
if (rf_dagDebug)
RF_ERRORMSG("Multiple disks failed in a single group! Aborting I/O operation.\n");
+#endif
*createFunc = NULL;
return;
}
@@ -190,9 +192,11 @@ rf_RaidFiveDagSelect(RF_Raid_t *raidPtr, RF_IoType_t type,
rf_CheckRUReconstructed(raidPtr->reconControl->reconMap, failedPDA->startSector) : 0
);
if (prior_recon) {
+#if RF_DEBUG_DAG > 0 || RF_DEBUG_MAP > 0
RF_RowCol_t oc = failedPDA->col;
RF_SectorNum_t oo = failedPDA->startSector;
-
+#endif
+
if (layoutPtr->map->flags & RF_DISTRIBUTE_SPARE) { /* redirect to dist
* spare space */
@@ -245,12 +249,14 @@ rf_RaidFiveDagSelect(RF_Raid_t *raidPtr, RF_IoType_t type,
RF_ASSERT(failedPDA->col != -1);
+#if RF_DEBUG_DAG > 0 || RF_DEBUG_MAP > 0
if (rf_dagDebug || rf_mapDebug) {
printf("raid%d: Redirected type '%c' c %d o %ld -> c %d o %ld\n",
raidPtr->raidid, type, oc,
(long) oo, failedPDA->col,
(long) failedPDA->startSector);
}
+#endif
asmap->numDataFailed = asmap->numParityFailed = 0;
}
}