oster
661b040860
Poolify callback descriptor allocation. While some of the underlying
...
problems just get shuffled around a bit, we do play more nicely with
LOCKDEBUG now.
2002-10-25 03:14:37 +00:00
jdolecek
e0cc03a09b
merge kqueue branch into -current
...
kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals
kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)
based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
2002-10-23 09:10:23 +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
4eb16a0a4f
bye-bye to RF_FREELIST_GET_INIT_ARG and RF_FREELIST_FREE_CLEAN_ARG
...
whos services are no longer needed after poolification of PSS structures.
2002-10-11 02:15:57 +00:00
oster
9401ec32c0
poolify the allocation of Parity Stripe Status structures.
...
XXX: Current code may have problems if kernel memory is completely depleted.
This is, unfortunately, not the only chunk of RAIDframe code to have
this problem, and will have to be dealt with. :(
2002-10-11 02:10:08 +00:00
oster
16f8b30fa2
Minor comment and 80-column fixes. No functional changes.
2002-10-07 04:05:55 +00:00
oster
644e9151d0
poolify the RF_ReconMapListElem_t's used by rf_ReconMapUpdate().
...
Gives LOCKDEBUG kernels one less thing to complain about.
2002-10-06 18:49:12 +00:00
oster
eb9d6f5ffa
Add a missing RF_LOCK_MUTEX().
2002-10-06 05:32:59 +00:00
oster
0567afd1cf
Introduce a temp variable, and allocate the ReconCtrl structure before
...
we protect raidPtr. One less thing for LOCKDEBUG to complain about.
2002-10-06 05:23:55 +00:00
oster
6108856337
update_size() does some bookkeeping, but nothing ever reads the data
...
it gathers. Nuke it. Without update_size, FreeReconMapListElem() can
do without mapPtr. That, in turn, means crunch_list() doesn't need a
mapPtr either.
2002-10-05 22:45:46 +00:00
oster
e29eccb29a
RU_NIL is not used. Remove it.
2002-10-05 16:10:41 +00:00
oster
150a2e7941
Minor cleanup. No functional changes.
2002-10-04 23:49:35 +00:00
oster
40e0eab4fd
Clean up #includes. Group function prototypes. Fix more 80-column lossage
...
that was missed before. Cleanup a printf.
2002-10-04 22:56:54 +00:00
oster
ad11d11dc2
Undo the change from 1.16->1.17, and 1.19->1.20. The ltsleep and locking
...
that was there before before is just fine, and plays nicely with LOCKDEBUG
now that we've added the raidio thread.
2002-10-04 22:50:26 +00:00
oster
dfd9bc2a73
Tidy up comments and do some 80-column fixing. No functional changes.
2002-10-04 22:35:08 +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
9fbf5b5d27
Create a thread creation macro that make it easier to name the DAG process.
...
Use it to have the DAGExecutionThread have a better name for each RAID
process ('raid0', 'raid1', etc., vs. just 'raid', 'raid', etc.)
2002-10-02 21:48:00 +00:00
oster
1ebb206e58
We're going to need rf_lkmgr_mutex_destroy() sooner than I thought.
2002-10-02 15:18:12 +00:00
oster
0e45bff1d4
Since we are unlocking the lock before sleeping, there is no need
...
to use ltsleep() when a tsleep() will suffice. Makes RAIDframe+LOCKDEBUG
play together much better.
2002-10-02 14:38:53 +00:00
thorpej
2b99f7cc34
Add a generic config finalization hook, to be called once all real
...
devices have been discovered. All finalizer routines are iteratively
invoked until all of them report that they have done no work.
Use this hook to fix a latent bug in RAIDframe autoconfiguration of
RAID sets exposed by the rework of SCSI device discovery.
2002-10-01 18:11:57 +00:00
provos
0f09ed48a5
remove trailing \n in panic(). approved perry.
2002-09-27 15:35:29 +00:00
thorpej
d1ad2ac4f2
Rather than referencing the cfdriver directly in the cfdata entries,
...
instead use a string naming the driver. The cfdriver is then looked
up in a list which is built at run-time.
2002-09-27 02:24:06 +00:00
oster
6d1870476a
Nuke some ancient debugging code.
2002-09-24 00:53:58 +00:00
oster
8a5a36de43
Cleanup the comment formatting a bit.
2002-09-24 00:12:55 +00:00
oster
f0efca630a
Nuke a couple of unneeded #defines.
2002-09-23 23:53:54 +00:00
oster
3ea42f1599
lockTable is not needed for AddToWaitersQueue(). Thanks to Simon B.
...
(cleanup a couple comments while I'm here.)
2002-09-23 04:34:46 +00:00
oster
8f2c8387e2
Nuke a couple of unreached 'break's. Thanks (again) to Simon B.
2002-09-23 04:19:05 +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
7db6bcd2ed
CheckCvscanState never prints the file and line number. Thanks to Simon B.
2002-09-23 04:02:29 +00:00
oster
7370acda44
Nuke 'lockflag', a holdover from the simulation code. Thanks to Simon B.
2002-09-23 03:53:14 +00:00
oster
d1ef62f266
rf_lkmgr_mutex_destroy is currently unused. Thanks to Simon B.
2002-09-23 03:44:18 +00:00
oster
1c67e9d94b
Hide more stuff inside RF_DEBUG_SHUTDOWN. Add a prototype for
...
rf_FreeShutdownEnt() while we're here. Thanks to Simon B.
2002-09-23 03:42:50 +00:00
oster
e875ee2d89
Nuke "baddisk". Thanks to Simon B.
2002-09-23 03:40:28 +00:00
oster
3ac36660fa
Another 'unblockNode' goes *poof*. Also nuke an instance of an
...
(effectively) unused layoutPtr. Thanks to Simon B.
2002-09-23 03:38:51 +00:00
oster
9d518ec378
Clobber basically unused 'pda', and 'unblockNode' and 'wrUnBlock'.
...
Thanks to Simon B.
2002-09-23 03:36:08 +00:00
oster
a8c038ad35
struct proc *p was only assigned to. Thanks Simon B.
2002-09-23 03:31:51 +00:00
oster
f1529267b8
Make this build w/ DEBUG.
2002-09-23 03:28:41 +00:00
oster
4b1300c83f
The declaration for rf_GetSpareTableFromDaemon might be supplied in
...
a header file, but that doesn't help here if said header is not pulled in!
(Hi Simon :) )
2002-09-23 03:27:17 +00:00
itojun
393f467c67
make it compile with DIAGNOSTIC
2002-09-23 03:17:36 +00:00
simonb
daa3345504
Don't need declarations for rf_copyback_in_progress and
...
rf_GetSpareTableFromDaemon() - these are already supplied
in various header files.
2002-09-23 03:04:27 +00:00
oster
3e5db6c469
Ooops.. should have included this 'row' with the last change.
2002-09-23 02:55:03 +00:00
oster
d5e5932f5e
'row' was defined and set, but never used. *poof* Thanks to Simon B.
2002-09-23 02:53:58 +00:00
oster
b0da983806
Neither force nor retcode are used. *poof* Thanks to Simon B.
2002-09-23 02:51:43 +00:00
oster
d5e793770c
Remove unneeded variables and lame assignments. Thanks Simon B.!
2002-09-23 02:49:14 +00:00
oster
23b87a323a
bytesPerStripeUnit is set, but never used. Thanks to Simon B. for pointing
...
this out.
2002-09-23 02:40:07 +00:00
oster
35d3621d0c
dataBytesPerStripe is set, but never used. *poof*
2002-09-23 02:35:24 +00:00
oster
7264a7cc8c
RAIDGETBUF and RAIDPUTBUF were #defines that were only used in
...
one place. Simplify things by removing them, and clean up more
unneeded instances of 'unit' and 'rs'.
2002-09-22 03:56:08 +00:00
oster
fe654a583a
rf_flags wasn't being used. *poof*
2002-09-22 03:46:40 +00:00
oster
f99563a0ff
A little housecleaning to nuke stuff that was unused.
2002-09-22 03:44:42 +00:00
oster
86a6fcfe0a
Minor cleanup/reformatting.
2002-09-21 14:47:07 +00:00
oster
2a10c08e0a
#if 0 more stuff, per Krister's list. Thanks Krister!
...
(RAIDframe is now at a shade under 174K in GENERIC on i386)
2002-09-21 07:12:46 +00:00
oster
61da76cbbe
#if 0 out one other function, and shuffle DEBUG code. Actually
...
reclaims another 14K!?!?!! Thanks Krister!
2002-09-21 07:05:06 +00:00
oster
2876788c95
rf_RegisterReconDoneProc() isn't needed.
...
This is the last of the 'easy' ones that Krister made me aware of.
Total savings on i386 GENERIC kernel: 13151 bytes
RAIDframe in GENERIC is now at: 179033
Thanks again Krister!
2002-09-21 01:25:10 +00:00
oster
0efe63f46b
rf_ReleaseBufferWaiter(s) were not being used! Thanks Krister!
2002-09-21 01:21:19 +00:00
oster
580f8b6e1e
rf_FreePhysDiskAddr is only needed by paritylogging.
...
rf_NumFailedDataUnitsInStripe is only needed by PQ, RAID6 and EVENODD.
rf_PrintAccessStripeMap is only needed for RF_DEBUG_MAP.
Thanks Krister!
2002-09-21 01:18:45 +00:00
oster
ce38eb4f8c
rf_FreeAccessStripeMapComponent() goes too. Thanks Krister!
2002-09-21 01:14:22 +00:00
oster
ce8b221a5e
Nuke rf_AllocAccessStripeMapComponent(). Thanks Krister!
2002-09-21 01:12:49 +00:00
oster
22f5e1b6bb
Garbage collect some old mountroothook stuff. Thanks Krister!
2002-09-21 01:09:43 +00:00
oster
265379416b
#if 0 an unused stub. Thanks Krister!
2002-09-21 01:08:38 +00:00
oster
24b54af7fb
Protect more stuff that's only used by the declustering code.
...
Thanks Krister!
2002-09-21 01:07:37 +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
cbf5be6ee1
rf_MakePropListEntry isn't used anywhere, so nuke it. Thanks Krister!
2002-09-21 00:56:57 +00:00
oster
34fb146d27
Shuffle #ifdefs to include stuff only if we're doing parity logging
...
stuff. Thanks Krister!
2002-09-21 00:52:49 +00:00
oster
1b852f9959
Various "Fwd" versions of DAG creation functions arn't actually used anywhere!
...
Big thanks to Krister for noticing! (Saves another 10K on i386)
2002-09-21 00:50:10 +00:00
oster
5451819a68
rf_gcd, rf_free_2d_array, rf_make_1d_array, and rf_free_1d_array are
...
only used by the declustering bits. Thanks Krister!
2002-09-21 00:47:59 +00:00
oster
ec7171cd75
rf_CreateMirrorPartitionReadDAG is only used for chain declustering and
...
interdecluster. Thanks Krister!
2002-09-21 00:40:18 +00:00
oster
ea9e550f69
rf_CvscanConfigure() is a NOP. Nuke it. Thanks Krister!
2002-09-21 00:37:14 +00:00
oster
8a7eefa217
Another couple of functions that arn't used unless one is debugging RAIDframe.
2002-09-19 23:29:03 +00:00
oster
5faa29ac7d
Introduce RF_DEBUG_MAP, and use it to ignore more rarely used code.
2002-09-19 23:23:19 +00:00
oster
bc235cf75b
Introduce and use RF_DEBUG_PSS, and save a few more bytes.
2002-09-19 22:52:52 +00:00
oster
0c1690c441
One signal will do, thanks.
2002-09-19 22:41:51 +00:00
oster
c3bab92ad6
Nuke an obsolete comment.
2002-09-19 22:36:23 +00:00
oster
f6127d1018
Introduce and use RF_DEBUG_STATES to save a bit more kernel space.
2002-09-19 18:54:50 +00:00
oster
f1113b29c2
Nuke old (and now incorrect) comment.
2002-09-19 17:55:22 +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
1b0ab96194
Introduce and use RF_DEBUG_QUEUE (for debugging the various queueing
...
types available in RAIDframe).
2002-09-17 03:43:34 +00:00
oster
aad979b7eb
Cast the RF_DEBUG_RECON net a little wider.
2002-09-17 03:30:33 +00:00
oster
1b1653573f
Rename RF_DEBUG_RECONBUFFER to RF_DEBUG_RECON in order to facilitate
...
disabling other stuff without having to introduce another #define.
2002-09-17 03:21:40 +00:00
oster
fe703e624d
Were these functions actually called by anything, I might have considered
...
keeping them...
2002-09-17 03:11:41 +00:00
oster
5dced80d48
Use RF_DEBUG_DISKQUEUE to eliminate more debuggin printfs that the
...
vast majority of the world will never see much less care about.
2002-09-17 02:55:12 +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
763ac2f8fe
Assign a value to recon_buffer_size in a different way so that the
...
compiler doesn't complain when we change what RF_Free looks like.
2002-09-16 23:37:18 +00:00
oster
55b509f490
Cleanup some comments.
2002-09-16 02:48:34 +00:00
oster
969c6e9caf
'char *arrived' was such a nice variable. Too bad all we ever did
...
with it was malloc/free space for it. *poof*
2002-09-16 02:39:42 +00:00
oster
4511efdca0
rf_CheckFloatingRbufCount() is only really useful when debugging the
...
reconstruct buffer stuff. #if it out in the general case.
2002-09-16 02:35:17 +00:00
oster
549b1bde93
Cleanup some printf's, and disable some (debugging) output.
2002-09-16 02:25:08 +00:00
oster
8c2b691d7a
Release our hold on raidPtr if we're going to sleep.
2002-09-15 23:40:40 +00:00
oster
201928d9fa
Nuke unlockingOp -- it was only used for the userland version of the
...
code.
2002-09-15 21:34:03 +00:00
oster
7193ba8687
Remove a couple of unneeded structure members.
2002-09-15 21:31:11 +00:00
oster
207409a242
'buf2' is unused. Nuke it.
2002-09-15 21:19:50 +00:00
oster
be70d191af
General cleanup of a mess. No functional changes.
2002-09-15 21:04:35 +00:00
oster
b51d271e17
Nuke 'numPending' from the RF_RaidAccessDesc_s structure, and minor cleanup.
2002-09-15 19:25:07 +00:00
oster
7266276fb2
Add a local #define, and disable some debugging stuff.
2002-09-14 18:37:28 +00:00
oster
4499412f1a
Minor formatting cleanup, and nuke unused stuff.
2002-09-14 18:17:52 +00:00
oster
f41ac02382
rf_FlushAccessTraceBuf goes bye-bye.
2002-09-14 18:07:31 +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
954775e02c
Add two more debugging #defines: RF_DEBUG_RECONBUFFER and RF_DEBUG_VERIFYPARITY.
...
Use them to reduce kernel bloat by a little more.
2002-09-14 17:11:30 +00:00
oster
20185a3677
Amazingly enough, nothing is actually using the *_bxor3() functions.
...
#if 0 them.
2002-09-11 03:01:23 +00:00
oster
9dfe7eee91
Use the newly added RF_DEBUG_STRIPELOCK to effectively remove a bunch
...
of stuff that most of the world will never want to use.
2002-09-11 02:52:33 +00:00