diff options
author | 2000-08-08 16:07:38 +0000 | |
---|---|---|
committer | 2000-08-08 16:07:38 +0000 | |
commit | 79c64fbc70fd8fb549e6742422e91076c11b6e8a (patch) | |
tree | 9e2f8c3b90efd55b40d7832af7dfeb9f3b60e80d /sys/dev/raidframe/rf_paritylogging.c | |
parent | add a 'RAID' filesystem type for RAIDframe updates - coming next (diff) | |
download | wireguard-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.c | 26 |
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)), |