History log of /netbsd-src/sys/dev/raidframe/rf_diskqueue.c (Results 1 – 25 of 64)
Revision Date Author Comments
# 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


123