#
a6071800 |
| 17-Sep-2023 |
oster <oster@NetBSD.org> |
Implement hot removal of spares and components. From manu@.
Implement a long desired feature of automatically incorporating a used spare into the array after a reconstruct.
Given the configuration
Implement hot removal of spares and components. From manu@.
Implement a long desired feature of automatically incorporating a used spare into the array after a reconstruct.
Given the configuration: Components: /dev/wd0e: failed /dev/wd1e: optimal /dev/wd2e: optimal Spares: /dev/wd3e: spare
Running 'raidctl -F /dev/wd0e raid0' will now result in the following configuration after a successful rebuild: Components: /dev/wd3e: optimal /dev/wd1e: optimal /dev/wd2e: optimal No spares.
Thanks to manu@ for the development of the initial set of changes which allowed the changes to automatically incorporate a used spare to come to fruition. Thanks also to manu@ for useful discussions about and additional testing of these changes.
show more ...
|
#
bf665427 |
| 14-Dec-2021 |
mrg <mrg@NetBSD.org> |
call buf_destroy() after buf_init(). hopefully fixes the lockdebug problem shown here:
http://mail-index.netbsd.org/tech-kern/2021/12/10/msg027851.html
but seems unlikely to fix the original pr
call buf_destroy() after buf_init(). hopefully fixes the lockdebug problem shown here:
http://mail-index.netbsd.org/tech-kern/2021/12/10/msg027851.html
but seems unlikely to fix the original problem.
tested on i386/anita. ok oster@
XXX: pullup-9 (netbsd-8 uses old APIs.)
show more ...
|
#
d03fc4a7 |
| 27-Jul-2021 |
oster <oster@NetBSD.org> |
rf_CreateDiskQueueData() no longer uses waitflag, and will always succeed. Cleanup the error path for the (no longer needed) PR_NOWAIT cases.
|
#
33d61e14 |
| 23-Jul-2021 |
oster <oster@NetBSD.org> |
Various disk queue "peek" routines were only ever used in the simulator version of RAIDFrame. Remove them from here.
|
#
2cf3739a |
| 23-Jul-2021 |
oster <oster@NetBSD.org> |
Extensive mechanical changes to the pools used in RAIDframe.
Alloclist remains not per-RAID, so initialize that pool separately/differently than the rest.
The remainder of pools in RF_Pools_s are n
Extensive mechanical changes to the pools used in RAIDframe.
Alloclist remains not per-RAID, so initialize that pool separately/differently than the rest.
The remainder of pools in RF_Pools_s are now per-RAID pools. Mostly mechanical changes to functions to allocate/destroy per-RAID pools. Needed to make raidPtr available in certain cases to be able to find the per-RAID pools.
Extend rf_pool_init() to now populate a per-RAID wchan value that is unique to each pool for a given RAID device.
TODO: Complete the analysis of the minimum number of items that are required for each pool to allow IO to progress (i.e. so that a request for pool resources can always be satisfied), and dynamically scale minimum pool sizes based on RAID configuration.
show more ...
|
#
e6cb3148 |
| 23-Jul-2021 |
oster <oster@NetBSD.org> |
getiobuf() can return NULL if there are no IO buffers available. RAIDframe can't deal with that, so create a dedicated pool of buffers to use for IO. PR_WAITOK is fine here, as we pre-allocate more
getiobuf() can return NULL if there are no IO buffers available. RAIDframe can't deal with that, so create a dedicated pool of buffers to use for IO. PR_WAITOK is fine here, as we pre-allocate more than we need to guarantee IO can make progress. Tuning of pool still to come.
show more ...
|
#
97bf7eee |
| 19-Jun-2020 |
jdolecek <jdolecek@NetBSD.org> |
remove unnnecessary splbio() in rf_FreeDiskQueueData()
|
#
5cafb017 |
| 19-Jun-2020 |
jdolecek <jdolecek@NetBSD.org> |
pass down b_flags B_PHYS|B_RAW|B_MEDIA_FLAGS from bio subsystem to component I/O
fixes the xbd(4) KASSERT() triggered by raidframe, noted in PR kern/55397 by Frank Kardel
|
#
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 ...
|
#
9577643d |
| 10-Feb-2019 |
christos <christos@NetBSD.org> |
Introduce PR_ZERO to avoid open-coding memset()s everywhere. OK riastradh@.
|
#
95d8fbc8 |
| 09-Feb-2019 |
christos <christos@NetBSD.org> |
- Change the allocation macros to be more like function calls - Change sizeof(type) -> sizeof(*variable) - Use macros for the long buffer length allocations - Remove "bit polishing" memsets() -- do t
- Change the allocation macros to be more like function calls - Change sizeof(type) -> sizeof(*variable) - Use macros for the long buffer length allocations - Remove "bit polishing" memsets() -- do them only once - Remove unnecessary casts
Thanks to oster@ for finding bugs and testing.
show more ...
|
#
ec1c557b |
| 05-May-2011 |
mrg <mrg@NetBSD.org> |
convert the diskqueue mutex into a kmutex
|
#
e021b3e6 |
| 23-Mar-2009 |
oster <oster@NetBSD.org> |
Rework/simplify the disk queuing code. A bunch of this was still holdovers from the simulator and would never be seen/used in-kernel.
|
#
f6a70673 |
| 17-Jun-2008 |
reinoud <reinoud@NetBSD.org> |
Mark a buffer `busy` in getnewbuf() when it came from the pool_cache since its not on a free list.
Also change buf_init() to not automatically mark buffers `busy' since this only makes sense for buf
Mark a buffer `busy` in getnewbuf() when it came from the pool_cache since its not on a free list.
Also change buf_init() to not automatically mark buffers `busy' since this only makes sense for bufcache buffers.
Mark all buf_init'd buffers 'busy' on the places where they ought to be flagged as such to not confuse the buffer cache.
Fixes PR 38923.
show more ...
|
#
4a780c9a |
| 02-Jan-2008 |
ad <ad@NetBSD.org> |
Merge vmlocking2 to head.
|
#
53524e44 |
| 04-Mar-2007 |
christos <christos@NetBSD.org> |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
#
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
|
#
8cc016b4 |
| 05-Oct-2006 |
tls <tls@NetBSD.org> |
Protect calls to pool_put/pool_get that may occur in interrupt context with spl used to protect other allocations and frees, or datastructure element insertion and removal, in adjacent code.
It is a
Protect calls to pool_put/pool_get that may occur in interrupt context with spl used to protect other allocations and frees, or datastructure element insertion and removal, in adjacent code.
It is almost unquestionably the case that some of the spl()/splx() calls added here are superfluous, but it really seems wrong to see:
s=splfoo(); /* frob data structure */ splx(s); pool_put(x);
and if we think we need to protect the first operation, then it is hard to see why we should not think we need to protect the next. "Better safe than sorry".
It is also almost unquestionably the case that I missed some pool gets/puts from interrupt context with my strategy for finding these calls; use of PR_NOWAIT is a strong hint that a pool may be used from interrupt context but many callers in the kernel pass a "can wait/can't wait" flag down such that my searches might not have found them. One notable area that needs to be looked at is pf.
See also:
http://mail-index.netbsd.org/tech-kern/2006/07/19/0003.html http://mail-index.netbsd.org/tech-kern/2006/07/19/0009.html
show more ...
|
#
aad92944 |
| 08-Jan-2006 |
oster <oster@NetBSD.org> |
Cleanup the initialization of buffers a bit, and remove some old code that works around a bug that no longer exists. From yamt. Thanks! (a bit more cleanup to follow)
|
#
7b826aac |
| 06-Jan-2006 |
yamt <yamt@NetBSD.org> |
initialize necessary members of struct buf. PR/32462 from Reinoud Zandijk.
|
#
690d424f |
| 04-Jan-2006 |
yamt <yamt@NetBSD.org> |
- add simple functions to allocate/free a buffer for i/o. - make bufpool static.
|
#
95e1ffb1 |
| 11-Dec-2005 |
christos <christos@NetBSD.org> |
merge ktrace-lwp.
|
#
ba757432 |
| 29-May-2005 |
christos <christos@NetBSD.org> |
- avoid variable shadowing - add a lot of const - remove parameters from functin declarations
|
#
f31bd063 |
| 27-Feb-2005 |
perry <perry@NetBSD.org> |
nuke trailing whitespace
|