Commit Graph

70 Commits

Author SHA1 Message Date
oster 6ac4a184c4 For reconstructs, move checks for failed components to before the
kernel threads are created.
2002-11-19 01:45:28 +00:00
oster 0cfd5a5b13 Cleanup more printfs. 2002-11-16 16:59:58 +00:00
oster f03dc09c94 Don't allow failing more than one component of a set, or
failing a component that has been spared, or "double-failing"
an already failed component.  XXX This isn't the right place to fix
this, but better here than no-where (and I'm hoping to move it sometime
soon).
2002-11-14 03:04:20 +00:00
oster 1ac4be5d3e Nuke a printf() from rf_FailDisk(). 2002-11-09 19:50:03 +00:00
oster 08933e5968 Better protect hot-spare adding, and make it LOCKDEBUG friendly. 2002-10-22 03:15:28 +00:00
oster 2eecfbf479 Improve and/or re-arrange a number of locks. While much of the locking is
still a mess, and there are a number of unresolved issues here, this
gets us closer to being happier in LOCKDEBUG land.
2002-10-18 02:46:36 +00:00
oster 8bdc70d040 As part of the effort to get RAIDframe playing nicely with LOCKDEBUG,
rework how completed requests are handled.  In particular, instead of
doing all sorts of work and locking in interrupt context, completed
requests are now queued.  A new kernel thread (rf_RaidIOThread) now
handles calling rf_DiskIOComplete() and (req->CompleteFunc)() for each
completed request.  There is still work to be done to make RAIDframe
LOCKDEBUG friendly, but this change is a huge step forward.

Reviewed by (and many thanks to): thorpej
2002-10-04 20:05:14 +00:00
oster eb144de792 The 'reconDesc' argument to rf_SignalQuiescenceLock() is a holdover from
simulation code. *poof*  Thanks to Simon B.
2002-09-23 04:14:20 +00:00
oster a16692eff6 rf_UnbootRaidframe isn't used. rf_print_assert_panic_message is
only needed if RAID_DIAGNOSTIC is defined.  Thanks Krister!
2002-09-21 01:00:43 +00:00
oster 8fd475e54a RF_DEBUG_ACCESS and RF_DEBUG_QUIESCE make things a little smaller. 2002-09-17 03:54:42 +00:00
oster e8ffb40a0e Those of us who might be interested in debugging internal memory usage
of RAIDframe can use RF_DEBUG_MEM.  I suspsect the rest of the world would
rather use that 14K of kernel memory for something else.
2002-09-16 23:40:57 +00:00
oster b51d271e17 Nuke 'numPending' from the RF_RaidAccessDesc_s structure, and minor cleanup. 2002-09-15 19:25:07 +00:00
oster a2b9142871 Everyone and their dog was using RF_ERRORMSG3 to print out the same
sort of error message, over and over again, in different files.
Rather than having the same text repeated in multiple .o files,
create a couple of little functions to do the printing, and save a
bundle of space.  Also improves readability of code.
2002-09-14 17:53:57 +00:00
oster cdb79dd4ae Nuke unneeded #include "rf_debugprint.h" 2002-09-11 02:22:49 +00:00
oster 23f63d631e On a 'raidctl -f' or 'raidctl -F', close the failed component.
Thanks to Grant and Matt (phone) for poking me about this.
2002-09-09 01:54:53 +00:00
oster 2a80a0fbe1 make 'configureMutex' be a lockmgr lock instead of a simple lock.
The result is MUCH fewer complaints with kernels compiled with LOCKDEBUG.
2002-08-08 02:55:36 +00:00
oster 6ad082845f Let's just say that the way things were stored in the array for the
debugging buffer made it much less useful than it appears.  More memory
for other things now.
2002-08-04 03:22:07 +00:00
oster 354a8ea84b Improve error messages. 2002-08-03 01:24:03 +00:00
oster 35940367a4 Cleanup configuration and auto-configuration information printing.
Thanks to mrg for the suggestions.
2002-08-03 00:55:54 +00:00
oster 61015077a7 Backout some "new stuff" that accidentally got included on the last commit. 2002-08-03 00:38:42 +00:00
oster 752e8eb5c8 - remove "#include "rf_memchunk.h"
- nuke the call to rf_ConfigureMemChunk() from rf_driver.c
2002-08-02 03:42:33 +00:00
oster 4c591ca7bc Don't print the value of protectedSectors all the time. 2002-07-24 02:17:14 +00:00
oster ef989419d9 Nuke a redundant check. 2002-07-13 20:51:54 +00:00
oster 69fb0af058 Nuke a redundant check that raidPtr->valid is true. 2002-07-13 19:35:34 +00:00
oster af9b7112ab #if 0 rf_SetReconfiguredMode() since it is unused now, but may be
needed someday.
2002-01-07 01:58:03 +00:00
lukem 2565646230 don't need <sys/types.h> when including <sys/param.h> 2001-11-15 09:47:59 +00:00
lukem a3746e00b7 add RCSIDs 2001-11-13 07:11:12 +00:00
oster dad0d4578c Nuke a couple of unused extern variable declarations. 2001-10-04 17:31:01 +00:00
oster 765e00d3de Step 2 of the disentanglement. We now look to <dev/raidframe/*> for
the stuff that used to live in rf_types.h, rf_raidframe.h, rf_layout.h,
rf_netbsd.h, rf_raid.h, rf_decluster,h, and a few other places.
Believe it or not, when this is all done, things will be cleaner.

No functional changes to RAIDframe.
2001-10-04 15:58:51 +00:00
oster 99020323e6 Nuke the 5 NULL parameters from rf_DoAccess(). Observe that 4 of
the variables are passed directly to rf_AllocRaidAccDesc(), and the 5th
isn't even used.  Hunt them down and nuke them too.
2001-07-27 03:30:07 +00:00
thorpej cf56c44a86 bzero -> memset 2001-07-18 06:45:33 +00:00
oster b36a1a085e For the RF_ASSERT() and RF_PANIC() macros, call a function to do the
sprintf, instead of doing the sprintf in the macros.  This means just
1 copy of each of the error messages, chopping about about 16K off the
size of an i386 kernel.  Thanks to Simon Burge and Enami Tsugutomo
for providing the inspiration to do this.
2000-12-15 02:12:58 +00:00
oster 3ee0550572 convert tsleep()->ltsleep(), which makes the kernel complain less
when compiled with LOCKDEBUG.
2000-09-21 01:45:46 +00:00
oster 0b63accce0 Merge rf_update_component_labels() and rf_final_update_component_labels(). 2000-06-04 02:05:13 +00:00
oster f1f5c4d00e Fix a couple of typos. (Thanks Wiz! :) ) 2000-05-29 01:43:04 +00:00
oster e38b4355e2 Abort any parity re-writes before unconfiguring a RAID set.
Partially addresses PR#10182.
2000-05-28 03:00:31 +00:00
oster ddebc1cad0 Move rf_UnconfigureVnodes to rf_netbsdkintf.c where it will be more at home.
Add prototype to rf_kintf.h, and nuke old prototypes from rf_disks.c and
rf_driver.c .
2000-03-07 02:28:05 +00:00
oster 8cde772948 Oops.. Need to note the parity status when we unconfigure.
Noted by Aaron J. Grier. (Thanks!)
2000-02-29 16:54:29 +00:00
oster 8d63540a8c When we close autoconfigured components, we need to note that they
are no longer in 'autoconfigured' status.
2000-02-25 17:14:18 +00:00
oster bdd659fc7f Deal with unconfiguring components in the autoconfigure case. 2000-02-24 23:39:21 +00:00
oster d91ecfbcfd Be more aggressive about updating component labels in the event
of a real component failure (or a simulated failure):
- add 'numNewFailures' to keep track of the number of disk failures
since mod_counter was last updated for each component label.
- make sure we call rf_update_component_labels() upon any component failure,
real or simulated.
2000-02-23 03:44:02 +00:00
oster 0c43bf18f0 - cleanup of more component label code
- make current default label values available everywhere
- make sure numBlocks and blockSize in component labels get initialized
for all component labels
- check for component size to be smaller than or equal to the partition size
when autoconfiguring
2000-02-23 02:04:21 +00:00
oster 445591e874 Get recent changes into the tree:
- make component_label variables more consistent (==> clabel)
- re-work incorrect component configuration code
- re-work disk configuration code
- cleanup initial configuration of raidPtr info
- add auto-detection of components and RAID sets (Disabled, for now)
- allow / on RAID sets (Disabled, for now)
- rename "config_disk_queue" to "rf_ConfigureDiskQueue" and properly prototype
in rf_diskqueue.h
- protect some headers with #if _KERNEL  (XXX this needs to be fixed properly)
  and cleanup header formatting.
- expand the component labels (yes, they should be backward/forward compatible)
- other bits and pieces (some function names are still bogus, and will get
changed soon)
2000-02-13 04:53:57 +00:00
oster f2a8aaee02 Garbage collect unused code. 2000-01-09 03:44:33 +00:00
oster 87ec1ad21b Nuke dependency on rf_diskthreads.h 2000-01-09 03:15:59 +00:00
oster 4a54cff7d7 Nuke dependencies on rf_cpuutils.h. 2000-01-09 03:14:32 +00:00
oster c8730b35e6 - move a bunch of function prototypes to rf_kintf.h
- general cleanup of a number of prototypes that were scattered around.
2000-01-09 01:29:27 +00:00
oster cdb6add0f7 Nuke desc->tid. 2000-01-09 00:00:18 +00:00
oster 04719e3adc - nuke calls to rf_get_threadid() and associated #include
- change a bunch of debugging printfs from
  "[%d] ...", tid   (where tid is the "thread id")
to
  "raid%d: ...", raidPtr->raidid
- other minor rototillage
2000-01-08 22:57:30 +00:00
oster e5ce17d0eb Nuke RF_DECLARE_GLOBAL_THREADID, rf_setup_threadid(), rf_shutdown_threadid(),
and rf_assign_threadid().  rf_threadid.h, your days are numbered.
2000-01-07 03:25:34 +00:00