summaryrefslogtreecommitdiffstats
path: root/sys/dev/raidframe/rf_paritylogging.c
diff options
context:
space:
mode:
authorpeter <peter@openbsd.org>2000-08-08 16:07:38 +0000
committerpeter <peter@openbsd.org>2000-08-08 16:07:38 +0000
commit79c64fbc70fd8fb549e6742422e91076c11b6e8a (patch)
tree9e2f8c3b90efd55b40d7832af7dfeb9f3b60e80d /sys/dev/raidframe/rf_paritylogging.c
parentadd a 'RAID' filesystem type for RAIDframe updates - coming next (diff)
downloadwireguard-openbsd-79c64fbc70fd8fb549e6742422e91076c11b6e8a.tar.xz
wireguard-openbsd-79c64fbc70fd8fb549e6742422e91076c11b6e8a.zip
sync RAIDframe with Gre Oster's work for NetBSD.
This update incorporates changes since January 2000. RAID1 and RAID5 tested for functionality matching the 2.7 code. A number of bug fixes (including stopping a parity rebuild when unconfiguring) have been included. See Greg's RAIDframe info page: http://www.cs.usask.ca/staff/oster/raid.html The RAID_AUTOCONFIG feature set does *NOT* yet work. These features require more work throughout the boot system and as such are a big task. IMPORTANT: As with anything that is this near live data on your systems, please test carefully with existing configurations before deploying in a live system. Feedback via sendbug or mail direct to peter@wonderland.org is appreciated.
Diffstat (limited to 'sys/dev/raidframe/rf_paritylogging.c')
-rw-r--r--sys/dev/raidframe/rf_paritylogging.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/sys/dev/raidframe/rf_paritylogging.c b/sys/dev/raidframe/rf_paritylogging.c
index 65877664637..c0a04bbd062 100644
--- a/sys/dev/raidframe/rf_paritylogging.c
+++ b/sys/dev/raidframe/rf_paritylogging.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: rf_paritylogging.c,v 1.4 2000/01/11 18:02:22 peter Exp $ */
-/* $NetBSD: rf_paritylogging.c,v 1.8 2000/01/09 04:35:13 oster Exp $ */
+/* $OpenBSD: rf_paritylogging.c,v 1.5 2000/08/08 16:07:44 peter Exp $ */
+/* $NetBSD: rf_paritylogging.c,v 1.10 2000/02/12 16:06:27 oster Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -201,6 +201,8 @@ rf_ConfigureParityLogging(
raidPtr->numParityLogs = rf_numParityRegions;
/* create region information structs */
+ printf("Allocating %d bytes for in-core parity region info\n",
+ (int) (rf_numParityRegions * sizeof(RF_RegionInfo_t)));
RF_Malloc(raidPtr->regionInfo,
(rf_numParityRegions * sizeof(RF_RegionInfo_t)),
(RF_RegionInfo_t *));
@@ -223,6 +225,10 @@ rf_ConfigureParityLogging(
regionParityRange++; */
/* build pool of unused parity logs */
+ printf("Allocating %d bytes for %d parity logs\n",
+ raidPtr->numParityLogs * raidPtr->numSectorsPerLog *
+ raidPtr->bytesPerSector,
+ raidPtr->numParityLogs);
RF_Malloc(raidPtr->parityLogBufferHeap, raidPtr->numParityLogs *
raidPtr->numSectorsPerLog * raidPtr->bytesPerSector,
(caddr_t));
@@ -326,6 +332,9 @@ rf_ConfigureParityLogging(
raidPtr->regionBufferPool.totalBuffers;
raidPtr->regionBufferPool.availBuffersIndex = 0;
raidPtr->regionBufferPool.emptyBuffersIndex = 0;
+ printf("Allocating %d bytes for regionBufferPool\n",
+ (int) (raidPtr->regionBufferPool.totalBuffers *
+ sizeof(caddr_t)));
RF_Malloc(raidPtr->regionBufferPool.buffers,
raidPtr->regionBufferPool.totalBuffers * sizeof(caddr_t),
(caddr_t *));
@@ -335,6 +344,9 @@ rf_ConfigureParityLogging(
return (ENOMEM);
}
for (i = 0; i < raidPtr->regionBufferPool.totalBuffers; i++) {
+ printf("Allocating %d bytes for regionBufferPool#%d\n",
+ (int) (raidPtr->regionBufferPool.bufferSize *
+ sizeof(char)), i);
RF_Malloc(raidPtr->regionBufferPool.buffers[i],
raidPtr->regionBufferPool.bufferSize * sizeof(char),
(caddr_t));
@@ -390,6 +402,10 @@ rf_ConfigureParityLogging(
raidPtr->parityBufferPool.totalBuffers;
raidPtr->parityBufferPool.availBuffersIndex = 0;
raidPtr->parityBufferPool.emptyBuffersIndex = 0;
+ printf("Allocating %d bytes for parityBufferPool of %d units\n",
+ (int) (raidPtr->parityBufferPool.totalBuffers *
+ sizeof(caddr_t)),
+ raidPtr->parityBufferPool.totalBuffers );
RF_Malloc(raidPtr->parityBufferPool.buffers,
raidPtr->parityBufferPool.totalBuffers * sizeof(caddr_t),
(caddr_t *));
@@ -399,6 +415,9 @@ rf_ConfigureParityLogging(
return (ENOMEM);
}
for (i = 0; i < raidPtr->parityBufferPool.totalBuffers; i++) {
+ printf("Allocating %d bytes for parityBufferPool#%d\n",
+ (int) (raidPtr->parityBufferPool.bufferSize *
+ sizeof(char)),i);
RF_Malloc(raidPtr->parityBufferPool.buffers[i],
raidPtr->parityBufferPool.bufferSize * sizeof(char),
(caddr_t));
@@ -514,6 +533,9 @@ rf_ConfigureParityLogging(
RF_ASSERT(raidPtr->regionInfo[i].parityStartAddr +
raidPtr->regionInfo[i].numSectorsParity <=
raidPtr->sectorsPerDisk);
+ printf("Allocating %d bytes for region %d\n",
+ (int) (raidPtr->regionInfo[i].capacity *
+ sizeof(RF_DiskMap_t)), i);
RF_Malloc(raidPtr->regionInfo[i].diskMap,
(raidPtr->regionInfo[i].capacity *
sizeof(RF_DiskMap_t)),