| #
b67baf4c |
| 10-Oct-2019 |
christos <christos@NetBSD.org> |
fix the function pointer and callback mess: - callback functions return 0 and their result is not checked; make them void. - there are two types of callbacks and they used to overload their parameter
fix the function pointer and callback mess: - callback functions return 0 and their result is not checked; make them void. - there are two types of callbacks and they used to overload their parameters and the callback structure; separate them into "function" and "value" callbacks. - make the wait function signature consistent.
show more ...
|
| #
daf039cf |
| 11-Dec-2016 |
nat <nat@NetBSD.org> |
Ensure variables are initialized. Fixes error due to -Wmaybe-unitialized.
|
| #
f86f7c2a |
| 03-Jan-2016 |
mlelstv <mlelstv@NetBSD.org> |
refactor driver to use common code in dksubr.
|
| #
f0a7346d |
| 18-Oct-2014 |
snj <snj@NetBSD.org> |
src is too big these days to tolerate superfluous apostrophes. It's "its", people!
|
| #
ea052e4f |
| 15-Sep-2013 |
martin <martin@NetBSD.org> |
ifdef variables like their use
|
| #
5f4b9709 |
| 27-Apr-2013 |
christos <christos@NetBSD.org> |
allocate devices dynamically.
|
| #
5ff9b946 |
| 07-Sep-2011 |
mbalmer <mbalmer@NetBSD.org> |
Newline is \n, not /n.
|
| #
8c36bb4b |
| 11-May-2011 |
mrg <mrg@NetBSD.org> |
convert the main raidPtr mutex to a kmutex, and add a couple of cv's to cover the old sleep/wakeup points for adding_hot_spare and waitForReconCond. convert all remaining simple_lock's to kmutexes (t
convert the main raidPtr mutex to a kmutex, and add a couple of cv's to cover the old sleep/wakeup points for adding_hot_spare and waitForReconCond. convert all remaining simple_lock's to kmutexes (they're not used or compiled right now... even with all options enabled) and remove the support for them.
this leaves just a pair of tsleep()/wakeup() calls using old scheduling APIs.
show more ...
|
| #
05ec7078 |
| 02-May-2011 |
mrg <mrg@NetBSD.org> |
use a unique wchan identifier for node_queue_cv than the old default.
|
| #
4f6a431a |
| 27-Apr-2011 |
mrg <mrg@NetBSD.org> |
prepare to convert more raidframe old lock/sleep APIs to mutex/condvar:
- remove RF_DECLARE_EXTERN_MUTEX and RF_DECLARE_STATIC_MUTEX, the qualifier can be provided at the use point with the normal
prepare to convert more raidframe old lock/sleep APIs to mutex/condvar:
- remove RF_DECLARE_EXTERN_MUTEX and RF_DECLARE_STATIC_MUTEX, the qualifier can be provided at the use point with the normal define - rename the *LGMGR_MUTEX() macros to *mutex2() names, and add some more defines for use: rf_declare_mutex2() rf_declare_cond2() rf_lock_mutex2() rf_unlock_mutex2() rf_init_mutex2() rf_destroy_mutex2() rf_init_cond2() rf_destroy_cond2() rf_wait_cond2() rf_signal_cond2() rf_broadcast_cond2() - use the new names for the configureMutex(), which previous used some combo of direct mutex* calls and macros - convert the node_queue to use a mutex/cv combo - in rf_ShutdownEngine() and DAGExecutionThread(), also signal the former from the latter when it is done and about to exit - convert iodone_lock to use the new macros
show more ...
|
| #
d9a6814d |
| 23-Apr-2011 |
mrg <mrg@NetBSD.org> |
move the iodone setup and tear down into rf_engine.c. this fixes "raidctl -u" and should also help the case where we fail to setup a device part of the way through.
|
| #
b19ce407 |
| 23-Apr-2011 |
mrg <mrg@NetBSD.org> |
convert the iodone_lock to a mutex, and use a condvar for signalling.
this only handles the smallest use of old simple_lock/tsleep/wakeup APIs inside raidframe, and it points out that cv(9)'s have o
convert the iodone_lock to a mutex, and use a condvar for signalling.
this only handles the smallest use of old simple_lock/tsleep/wakeup APIs inside raidframe, and it points out that cv(9)'s have only one wait channel per cv, whereas each tsleep() caller can specify a different wait channel. this change removes the difference between normal raidio and waiting for IO during shutdown.
i've tested this one 3 systems, ran atf, and had mlelstv and rmind review the change.
show more ...
|
| #
11eacabe |
| 13-Sep-2010 |
drochner <drochner@NetBSD.org> |
comment out an unused static function
|
| #
f1a1ad33 |
| 17-Nov-2009 |
jld <jld@NetBSD.org> |
Finally commit the RAIDframe parity map Summer Of Code project.
Drastically reduces the amount of time spent rewriting parity after an unclean shutdown by keeping better track of which regions might
Finally commit the RAIDframe parity map Summer Of Code project.
Drastically reduces the amount of time spent rewriting parity after an unclean shutdown by keeping better track of which regions might have had outstanding writes. Enabled by default; can be disabled on a per-set basis, or tuned, with the new raidctl(8) commands.
Discussed on tech-kern@ to a general air of approval; exhortations to commit from mrg@, christos@, and others.
Thanks to Google for their sponsorship, oster@ for mentoring the project, assorted developers for trying very hard to break it, and probably more I'm forgetting.
show more ...
|
| #
168cd830 |
| 16-Nov-2006 |
christos <christos@NetBSD.org> |
__unused removal on arguments; approved by core.
|
| #
4d595fd7 |
| 12-Oct-2006 |
christos <christos@NetBSD.org> |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
| #
95e1ffb1 |
| 11-Dec-2005 |
christos <christos@NetBSD.org> |
merge ktrace-lwp.
|
| #
96ba5552 |
| 25-Sep-2005 |
oster <oster@NetBSD.org> |
Re-work the handling of incoming I/O in RAIDframe: - introduce rf_buf_queue_check() which checks to see if there is work to do in the incoming buffer queue - rf_RaidIOThread() is now responsible for
Re-work the handling of incoming I/O in RAIDframe: - introduce rf_buf_queue_check() which checks to see if there is work to do in the incoming buffer queue - rf_RaidIOThread() is now responsible for calling raidstart(), and is also now the only place that calls raidstart() - raidstrategy() now just queues requests in buf_queue and signals rf_RaidIOThread() that work has arrived
Hopefully addresses PR#30233
show more ...
|
| #
f31bd063 |
| 27-Feb-2005 |
perry <perry@NetBSD.org> |
nuke trailing whitespace
|
| #
37533dd2 |
| 09-Mar-2004 |
oster <oster@NetBSD.org> |
Introduce RF_DEBUG_ENGINE and use it to disable a number of debugging bits in rf_engine.c
|
| #
c7eaad6a |
| 01-Mar-2004 |
oster <oster@NetBSD.org> |
Use RF_ACC_TRACE to #if out more chunks of code related only to access tracing. (not turned on yet)
|
| #
5a02af5b |
| 29-Feb-2004 |
oster <oster@NetBSD.org> |
Adjust _rf_ShutdownCreate() so that it is willing to wait for more memory. Since we only now ever "return(0)", just return (void) instead.
Cleanup all uses of rf_ShutdownCreate() to not worry about
Adjust _rf_ShutdownCreate() so that it is willing to wait for more memory. Since we only now ever "return(0)", just return (void) instead.
Cleanup all uses of rf_ShutdownCreate() to not worry about it ever failing. Shaves another 600 bytes off of an i386 GENERIC kernel.
show more ...
|
| #
24b034a6 |
| 02-Jan-2004 |
oster <oster@NetBSD.org> |
Fix the "We panic if we can't create a DAG" problem that's existed ~forever. This requires a number of things:
1) If we can't create a DAG, set desc->numStripes to 0 in rf_SelectAlgorithm. This wi
Fix the "We panic if we can't create a DAG" problem that's existed ~forever. This requires a number of things:
1) If we can't create a DAG, set desc->numStripes to 0 in rf_SelectAlgorithm. This will ensure that we don't attempt to free any dagArray[] elements in rf_StateCleanup.
2) Modify rf_State_CreateDAG() to not panic in the event of a DAG failure. Instead, set the bp->b_flags and bp->b_error, and set things up to skip to rf_State_Cleanup().
3) Need to mark desc->status as "bad" so that we actually stop looking for a different DAG. (which we won't find... no matter how many times we try).
4) rf_State_LastState() will then do the biodone(), and return EIO for the IO in question.
5) Remove some " || 1 "'s from ProcessNode(). These were for debugging, and we don't need the failure notices spewing over and over again as the failing DAGs are processed.
6) Needed to change
if (asmap->numDataFailed + asmap->numParityFailed > 1)
to
if ((asmap->numDataFailed + asmap->numParityFailed > 1) || (raidPtr->numFailures > 1)){
in rf_raid5.c so that it doesn't try to return rf_CreateNonRedundantWriteDAG as the creation function.
7) Note that we can't apply the above change to the RAID 1 code as with the silly "fake 2-D" RAID 1 sets, it is possible to have 2 failed components in the RAID 1 set, and that would stop them from working. (I really don't know why/how those "fake 2-D" RAID 1 sets even work with all the "single-fault" assumptions present in the rest of the code.)
8) Needed to protect rf_RAID0DagSelect() in a similar way -- it should return NULL as the createFunc.
9) No point printing out "Multiple disks failed..." a zillion times.
show more ...
|
| #
d3aa0642 |
| 01-Jan-2004 |
oster <oster@NetBSD.org> |
Nuke a bunch of unused variables: - node_queue_cond - quiescent_cond - eq_cond - desc->cond - desc->head - diskqueue->numWaiting
Nuke rf_print_unable_to_init_cond(). Nuke rf_TerminateDiskQueue
Nuke a bunch of unused variables: - node_queue_cond - quiescent_cond - eq_cond - desc->cond - desc->head - diskqueue->numWaiting
Nuke rf_print_unable_to_init_cond(). Nuke rf_TerminateDiskQueues prototype from rf_diskqueue.h.
show more ...
|
| #
c43fc67d |
| 30-Dec-2003 |
oster <oster@NetBSD.org> |
Some days you wonder if some of the function declaration consistency was just an accident in the first place. Cleanup function decls and a few comments. [ok.. so I wasn't going to fix this many.. b
Some days you wonder if some of the function declaration consistency was just an accident in the first place. Cleanup function decls and a few comments. [ok.. so I wasn't going to fix this many.. but once you're on a roll....]
show more ...
|