Commit Graph

73 Commits

Author SHA1 Message Date
oster b1615831d2 Nuke some unused code which, were it enabled, might be useful for
performance measurement, but which would cause data corruption.
1999-08-26 02:40:27 +00:00
oster 770de7bb5a Print a error message instead of panicing in rf_RecoveryPQFunc(). 1999-08-15 03:44:46 +00:00
oster d516e7b571 Make these compile with RF_INCLUDE_RAID6. 1999-08-15 02:36:40 +00:00
oster ff6d7dd494 Cleanup a bit. 1999-08-15 02:36:03 +00:00
oster 07cc4855f1 Minor cleanup. No functional changes. 1999-08-14 23:34:18 +00:00
oster 4ba14d22b0 Fix an 'off-by-one' error in a RF_ASSERT which meant that a reconstruct
would panic in the case where the stripe width was 1 block.
1999-08-14 21:44:24 +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 db2eaf18cf rf_sys.h does not need to be #included in any of these files, and, actually,
is no longer needed at all.
1999-08-13 03:41:52 +00:00
oster 1ec5208866 This file is no longer needed. 1999-08-13 03:31:20 +00:00
oster 1aa6ce1041 Garbage collect rpcc(). 1999-08-13 03:27:46 +00:00
oster 02acd1910a First kick at cleaning up the RF_ETIMER code. New timer handling code
provided by Peter Galbavy via OpenBSD.
1999-08-13 03:26:55 +00:00
oster eca431e87c Nuke configuration of ETimer stuff during main configuration. 1999-08-13 03:25:01 +00:00
oster 5cab826918 Clean up reconstruction accounting a bit. While it worked before, it was
slightly broken in the case where the RAID set did not support reconstruction.
1999-08-13 01:43:33 +00:00
oster 33e458640f Garbage collect unused struct rf_test_acc. 1999-08-11 02:20:35 +00:00
oster 31b98d3572 When reporting the status of a component during configuration,
provide more intuitive information about whether a component is clean
or not.
1999-08-10 22:56:20 +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 0b08c839eb Don't go ape if there is a problem verifying the parity. Note the condition
and inform the user (as opposed to panicing the system!).
1999-08-10 22:19:27 +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 a531d8c31e Trying to rebuild parity on a degraded set is bogus, so don't allow that.
Also, check sooner for a RAID 0 set, since rewriting parity makes no
sense there either.
1999-08-10 01:53:26 +00:00
oster e0c8203cb3 Nuke unused #define. 1999-08-03 22:07:39 +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 ce7cb7114d rf_UnconfigureVnodes() needs to be called in the DO_RAID_FAIL macro. 1999-07-19 01:36:07 +00:00
oster 0c7600ca4e sectorsPerStripeUnit should be larger than 0. If it isn't, simply fail.
(Thanks to Thor Lancelot Simon for noting the problem).
1999-07-19 01:35:19 +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
thorpej 5f1ede624f Make the kthread API a bit friendlier to loadable kernel modules. 1999-07-06 21:51:22 +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 8c39e1bf02 When adding a hot spare, remember to lock down the main raidPtr
structure before mucking with its contents.
1999-06-04 02:02:39 +00:00
oster 60769ea563 At config time, initialize a small amount of space for the disk queues
corresponding to the hot spares.  We'll need that space when a spare is
actually added.  Huge Thanks to Martin Laubach for helping track this down.
1999-06-04 01:51:00 +00:00
oster 3af0ce9e19 Don't count two problems with a single component as two
component failures!  Also: remember to configure the disk queues for
the spares -- failure to do that is Bad(tm).
Huge Thanks to Martin Laubach for helping track this down.
1999-06-04 01:50:01 +00:00
ad daf0e5b05c Replace two instances of TNF copyright with one (was replicated for two
separate contributers).
1999-05-13 21:46: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 efe288e520 Correct a component label problem where a RAID 1 set with a
failed component would not configure properly in certain situations.
1999-03-18 03:02:38 +00:00
oster 2ec2c2045f Cleanup rf_RewriteParity() and rf_VerifyParity(). Nuke unused stuff,
and make more readable.
1999-03-14 22:10:46 +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 e39fe5e2fe Cleanup unused cruft. 1999-03-09 03:52:41 +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 585c77594e Move rf_update_component_labels() from here to rf_netbsdkintf.c. 1999-03-09 02:57:29 +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 ee9187f136 After a vn_close(), set the vnode * to NULL so we don't try closing it
again later.
1999-02-27 03:43:20 +00:00
oster a76f56098c Do the VOP_UNLOCK() on an initialized vp, rather than random garbage. 1999-02-27 01:48:13 +00:00
oster 65be57243f Minor cleanups and code rearranging. Now knows a little about component
labels and how to deal with hot-adding spare components.  Still work in
progress -- component labels and hot-adding are not enabled (yet).
1999-02-24 00:00:03 +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 07b6b89dce Move vnode cleanup code into one place. Cleanup a bit. 1999-02-23 23:55:29 +00:00
oster 0d29172def Do a VOP_UNLOCK() before a vn_close(). 1999-02-23 23:53:37 +00:00