summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe
AgeCommit message (Collapse)Author
2003-02-25Add a new BUF_INIT() macro which initializes b_dep and b_interlock, andthorpej
use it. This fixes a few places where either b_dep or b_interlock were not properly initialized.
2003-02-09constify somejdolecek
2003-02-05Make the buffer cache code MP-safe.pk
2003-02-05"Utilize" has exactly the same meaning as "use," but it is moreperry
difficult to read and understand. Most manuals of English style therefore say that you should use "use".
2003-02-01Only use MALLOC_DECLARE() in kernel namespace.tron
2003-02-01Add extensible malloc types, adapted from FreeBSD. This turnsthorpej
malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
2003-01-20The Double-Semi-Colon Police.simonb
2003-01-19Merge the nathanw_sa branch.thorpej
2003-01-03Fix typo. PR#19619.junyoung
2002-11-23Nuke all (but one) of the remaining RF_UTILITY's.oster
2002-11-23Nuke some #if 0'ed code.oster
2002-11-23One less goto.oster
2002-11-23Bye-bye to the completely unused reconCtrlPtr->priorityList.oster
2002-11-22rf_SelectMirrorDiskPartition() is only needed in a few cases. #if itoster
out in the rest. Thanks to Krister!
2002-11-21Fix up locking on a call to rf_update_component_labels().oster
Noticed by Manuel. Thanks Manuel!
2002-11-19#if out some stuff that's only used for some distributed sparing stuff.oster
Shaves another 500 bytes from an i386 kernel.
2002-11-19For reconstructs, move checks for failed components to before theoster
kernel threads are created.
2002-11-18#if 0 an unused function. Noted by Krister. Thanks!oster
2002-11-18rf_DiskReadMirrorPartitionFunc() is only needed for some of the clusteringoster
stuff, or if we're doing DAG validation. Thanks to Krister!
2002-11-17When setting root or autoconfig status, be sure to update used_spares too!oster
2002-11-16Cleanup more printfs.oster
2002-11-16Clean up error reporting, and nuke some printf verbosity.oster
2002-11-15After a rebuild-in-place, a reconstruct, or a copyback, we shouldoster
really be updating the component labels.
2002-11-15These printf's have outlived their usefulness. *poof*oster
2002-11-14rf_markalldirty() needs to update the mod_counter for used_spares too!oster
This bug appears as "incorrect Mod Counters" in 'raidctl -s'. The reason it was seen only in 'raidctl -s' is because of the conditions needed to trigger the bug: a) a raid set is configured b) no partitions on that set are mounted or are otherwise in-use c) a component is failed, and subsequently rebuilt to a hot spare d) the machine is rebooted while something (e.g. 'raidctl -s') has the device open (and, therefore, rf_markalldirty() has been called) but before the final rf_update_component_labels() is done. Needless to say, the window for this happening is *very* small, and it was only because I was testing some obscure stuff that I even noticed it.
2002-11-14Don't allow failing more than one component of a set, oroster
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-12xorBufCount needs to be initialized too!oster
2002-11-09Nuke a printf() from rf_FailDisk().oster
2002-11-01implement separate read/write disk statistics:mrg
- disk_unbusy() gets a new parameter to tell the IO direction. - struct disk_sysctl gets 4 new members for read/write bytes/transfers. when processing hw.diskstats, add the read&write bytes/transfers for the old combined stats to attempt to keep backwards compatibility. unfortunately, due to multiple bugs, this will cause new kernels and old vmstat/iostat/systat programs to fail. however, the next time this is change it will not fail again. this is just the kernel portion.
2002-10-25Poolify callback descriptor allocation. While some of the underlyingoster
problems just get shuffled around a bit, we do play more nicely with LOCKDEBUG now.
2002-10-23merge kqueue branch into -currentjdolecek
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-22Better protect hot-spare adding, and make it LOCKDEBUG friendly.oster
2002-10-18Improve and/or re-arrange a number of locks. While much of the locking isoster
still a mess, and there are a number of unresolved issues here, this gets us closer to being happier in LOCKDEBUG land.
2002-10-11bye-bye to RF_FREELIST_GET_INIT_ARG and RF_FREELIST_FREE_CLEAN_ARGoster
whos services are no longer needed after poolification of PSS structures.
2002-10-11poolify the allocation of Parity Stripe Status structures.oster
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-07Minor comment and 80-column fixes. No functional changes.oster
2002-10-06poolify the RF_ReconMapListElem_t's used by rf_ReconMapUpdate().oster
Gives LOCKDEBUG kernels one less thing to complain about.
2002-10-06Add a missing RF_LOCK_MUTEX().oster
2002-10-06Introduce a temp variable, and allocate the ReconCtrl structure beforeoster
we protect raidPtr. One less thing for LOCKDEBUG to complain about.
2002-10-05update_size() does some bookkeeping, but nothing ever reads the dataoster
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-05RU_NIL is not used. Remove it.oster
2002-10-04Minor cleanup. No functional changes.oster
2002-10-04Clean up #includes. Group function prototypes. Fix more 80-column lossageoster
that was missed before. Cleanup a printf.
2002-10-04Undo the change from 1.16->1.17, and 1.19->1.20. The ltsleep and lockingoster
that was there before before is just fine, and plays nicely with LOCKDEBUG now that we've added the raidio thread.
2002-10-04Tidy up comments and do some 80-column fixing. No functional changes.oster
2002-10-04As part of the effort to get RAIDframe playing nicely with LOCKDEBUG,oster
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-02Create a thread creation macro that make it easier to name the DAG process.oster
Use it to have the DAGExecutionThread have a better name for each RAID process ('raid0', 'raid1', etc., vs. just 'raid', 'raid', etc.)
2002-10-02We're going to need rf_lkmgr_mutex_destroy() sooner than I thought.oster
2002-10-02Since we are unlocking the lock before sleeping, there is no needoster
to use ltsleep() when a tsleep() will suffice. Makes RAIDframe+LOCKDEBUG play together much better.
2002-10-01Add a generic config finalization hook, to be called once all realthorpej
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.