Commit Graph

36 Commits

Author SHA1 Message Date
oster 28c2380f21 Nuke a bunch of debugging cruft. No functional changes. 1999-12-15 02:02:16 +00:00
oster fe0726b921 Whoops! Neglected to initialize the buffer queues for anything other
than raid0.  Fix that...
1999-12-14 15:27:00 +00:00
oster e8a639b1df Rototill the IO throttle code. Rename rf_DoAccessKernel() to raidstart()
and cleanup arguments.  While we're here, cleanup raidstrategy(), and nuke
a bunch of unused debugging stuff.

RAIDframe + softdeps now play very nicely together.
1999-12-12 20:51:41 +00:00
oster a038f90588 Kernel memory is not to be wasted. If we're bailing out because of an error,
give any allocated memory back to the kernel so someone else can use it.
1999-12-03 03:06:44 +00:00
oster 3888a71ad1 Move LIST_INIT() to a more appropriate place. 1999-12-03 02:43:22 +00:00
oster 5fd68b5d02 We must initialize bp->b_dep in InitBP(). 1999-11-18 13:28:06 +00:00
oster e589155692 Remove some minor stuff that wasn't right, and wasn't even really used. 1999-11-17 01:16:37 +00:00
oster 07cc4855f1 Minor cleanup. No functional changes. 1999-08-14 23:34:18 +00:00
oster 740b9848cc Decrease the number of outstanding IO's threashold slightly.
The previous value may have been too high in some instances.
1999-08-14 03:47:07 +00:00
oster 6409e641a6 Remove a 'struct proc *'-passing abomination that's been bugging me
for quite some time.
1999-08-14 03:10:03 +00:00
oster 4a058e82c5 Correct and/or improve detection of bogus row/column values
passed in via ioctls.
1999-08-14 02:41:36 +00:00
oster 1aa6ce1041 Garbage collect rpcc(). 1999-08-13 03:27:46 +00:00
oster 620eda50c7 Don't allow reconstructs, copybacks, or forced failures of components if
using a RAID 0, since RAID 0 can't handle those sorts of things.
1999-08-10 22:46:59 +00:00
oster 49efd10006 Oops. Make minor change that I forgot when adding the parity check ioctl. 1999-08-10 21:41:37 +00:00
oster a3aefdaee3 Add support for easily checking the parity status from userland.
Also: spl protect rf_RewriteParity().
1999-08-10 18:18:30 +00:00
oster 5cef006d40 Need to splbio()/splx() protect some of the reconstruction stuff.
Without this, we have potentially bad interatctions with the pool
code.
1999-07-21 03:15:26 +00:00
oster 324c76b3d9 Once upon a time, long long ago, there was a "fix" added to the
RAIDframe driver to stop it from eating too much kernel memory when
writing data.  But that fix had a nasty side-affect of hurting write
performance (*much* more than I thought it would).  These changes nuke
that "fix", and instead put in a more reasonable mechanism for limiting
the number of simultaneous IO's which can be happening for each RAID device.
The result is a noticeable improvement in write throughput.  The End.
1999-07-08 00:45:23 +00:00
oster 86abd11d42 Remember to pass down the proc pointer when adding a hot spare.
(Thanks to Martin J. Laubach for helping track this one down.)
1999-06-13 20:36:17 +00:00
oster 4882ae464f Fix a couple of compiler warnings on the Alpha. Pointed out by Tim Rightnour. 1999-04-12 19:39:59 +00:00
oster 9f560505d4 Allow re-writing parity on a RAID 0 to trivially succeed, and to set the
clean bit.  This is somewhat bogus as RAID 0 does not have any parity,
but is a slightly cleaner than other solutions, and makes the handling
of clean bits for RAID 0 consistent with the handling of clean bits at
other RAID levels.
1999-04-07 14:17:10 +00:00
oster 14de6c2418 Cleanup shutdown code - garbage collect (now) unused shutdownhooks() stuff. 1999-03-27 01:26:37 +00:00
oster 414b788837 Disallow interrupting parity re-writes or copybacks by removing PCATCH
from the tsleep()'s (they probably shouldn't have been there in the
first place!).  Making parity re-writing and copybacks interruptable
will require re-designing how a few things are done (e.g. how memory
is freed for structures shipped off to routines that run asynchronously
relative to the calling routine).  Fix a few other tsleep's while we're at it.
1999-03-14 21:53:31 +00:00
oster cd0a696176 Cleanup raidattach: move rf_boot's functionality to raidattach, and
nuke rf_boot().  Cleanup raidopen().
1999-03-09 03:53:18 +00:00
oster 29daf0c77d rf_update_component_labels() now lives here. Re-work clean-bit
support a little: clean-bits now also get frobbed on partition
opening/closing, rather than just at device configuration and device
unconfiguration.  Schedule shutdownhooks() stuff for nukage at a later
date, since it isn't really necessary any more.
1999-03-09 02:59:25 +00:00
oster 98d8c12355 Update for recent changes including component label support, clean
bits, rebuilding components in-place, adding hot spares, shutdownhooks, etc.
1999-03-02 03:18:48 +00:00
oster be9eca67c8 Cleanup/remove unused cruft. First kick at component labels and clean bits.
Still work in progress.  New code is there, but not enabled yet.
1999-02-23 23:57:53 +00:00
oster 6d72c8f0e7 Minor cleanups that got missed last time through. 1999-02-11 01:23:32 +00:00
oster 0014588545 Phase 2 of the RAIDframe cleanup. The source is now closer to KNF
and is much easier to read.  No functionality changes.
1999-02-05 00:06:06 +00:00
oster 1eecf8e491 RAIDframe cleanup, phase 1. Nuke simulator support, user-land driver,
out-dated comments, and other unneeded stuff.  This helps prepare
for cleaning up the rest of the code, and adding new functionality.

No functional changes to the kernel code in this commit.
1999-01-26 02:33:49 +00:00
explorer edd259d12e Make it so raidframe will only perform synchronous writes, and async
reads.  This avoids a problem where many writes will cause the driver
to allocate way too much memory.

This needs to change to a queueing system later, which will provide a
way to limit the memory consumed by the driver.

Without these changes, raidframe would use 24M or more on my machine when
the buffer cache dumped all its dirty blocks.  Now it uses around 200k
or so.
1999-01-15 17:55:52 +00:00
thorpej d8f3aefec7 Use M_RAIDFRAME. 1999-01-14 22:49:05 +00:00
oster e392d933c8 Clean up some debugging stuff, and make it compile without warnings
with -DDEBUG on alphas.
1998-12-22 20:03:14 +00:00
oster 1b04131eff Try a bit harder to detect the physical failure of a component, and to
mark that component as dead.  Physical failures are handled much better now.
1998-12-03 15:14:40 +00:00
hubertf 3f1c86b59e compile with DEBUG=1 1998-11-15 00:01:24 +00:00
simonb a9c167b273 prototype un-prototyped functions 1998-11-13 11:51:55 +00:00
oster 38a3987b69 RAIDframe, version 1.1, from the Parallel Data Laboratory at
Carnegie Mellon University.  Full RAID implementation, including
levels 0, 1, 4, 5, 6, parity logging, and a few other goodies.
Ported to NetBSD by Greg Oster.
1998-11-13 04:20:26 +00:00