| Age | Commit message (Collapse) | Author |
|
|
|
distributed sparing bits, but no-one has compile-tested the code.
Un-breaks the ALL build.
|
|
case, and is only needed for parity declustering with distributed
sparing.
|
|
|
|
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.
|
|
on current-users. Thanks!
|
|
attribute definitions which were only to trick config(8)
|
|
- Don't bother taking the v_interlock or bumping b_vp->v_numoutput --
there won't be any other writers for this bp, and so there's no point
doing this locking song'n'dance.
Patch from Juergen Hannken-Illjes. Thanks!!!
Addresses PR#38856. With this change I've been unable to
replicate the hard hangs.
|
|
Spotted by Juergen Hannken-Illjes. Thanks!
|
|
Reconmap used to have one pointer for every reconstruction unit. This
does not scale well in the land of 1TB disks, where some 100MB+ of
"status pointers" are required for typical configurations. Convert
the reconstruction code to use a "sliding status window" which will
scale nicely regardless of the number of stripes/reconstruction units
in the RAID set. Convert the main reconstruction loop to rebuild the
array in chunks rather than in one big lump.
As part of these changes, introduce a function to kick any waiters on
the head separation callback list, and use that in the main
reconstruction event queue to wake up the waiters if things have
stalled. (I believe this may fix a race condition that could occur at
at least at the very end of a disk during reconstruction under heavy
IO load.)
Thanks to Brian Buhrow for all his help, support, and patience in
testing these changes.
|
|
to be positive integers.
|
|
|
|
|
|
sets. This helps ensure that the sliding status window (coming soon!)
for reconstructs will always be correct.
|
|
for that disk have stopped, since this will bump us out of the normal
reconstruction loop prematurely.
Fixes the (mostly cosmetic) bug where the reconstruction
status values stop updating, and from raidctl it appears that
reconstruction has totally stalled (which it actually hasn't -- the
reconstruction does complete properly, but not in the normal way).
|
|
Don't print out write promotions during reconstruct unless
we are debugging reconstructs.
|
|
|
|
|
|
1.173 for details.
|
|
rf_driver.c: minor comment tweak. Improve debugging output in
RF_DEBUG_QUIESCE.
rf_states.c: fix argument to rf_PrintDAGList() in the
RF_DEBUG_VALIDATE_DAG case.
Changes from Olivier Cherrier. Thanks!!
|
|
needed to keep track of the kernel process that opened a device in
order to close it with the right credentials. Flash forward to today
where curlwp is now quite sufficient.
|
|
breakage, but the mess of dependencies has been regularly breaking the
build recently anyhow.
|
|
|
|
Problem reported and fix tested by Jeff Rizzo (Thanks!).
|
|
is that this will fix the config_devalloc panic.
|
|
|
|
|
|
The general trend is to remove it from all kernel interfaces and
this is a start. In case the calling lwp is desired, curlwp should
be used.
quick consensus on tech-kern
|
|
b) often just wrong. Thanks to wiz for catching this.
|
|
|
|
for reporting the problem and testing the fix.
|
|
initial patch.
|
|
|
|
destroy of 'struct disk' from attach / detach.
|
|
for the dump is selected in this order of preference:
1) the master
2) a used_spare of the master
3) the slave
4) a used_spare of the slave
|
|
(via private mail). Thanks!
|
|
when arrays have a large number of stripes. Remove unused variable
(recon_stripes_done). Thanks to Dieter Roelants for the report,
suggestions, and testing. Addresses PR#36878.
|
|
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
|
|
|
|
- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
|
|
that tells whether the given path is in user space or kernel space, so it
can tell NDINIT().
While the raidframe calls were ok, both ccd(4) and cgd(4) were passing
pointers to user space data, which leads to strange error on i386, as
reported by Jukka Salmi on current-users.
The issue has been there since last august, I'm actually a bit surprised
that no one in the meantime has used ccd(4) or cgd(4) on an arch where it
would have simply faulted.
|
|
|
|
|
|
the pool's lock.
|
|
use the RAID set that contains the component used for booting. Thanks
to manu@ for the main part of this.
|
|
|
|
Patch by Slava Semushin <slava.semushin@gmail.com>
Again, this was tested by comparing obj files from a pristine and a patched
source tree against an i386/ALL kernel, and also for src/sbin/fsck_ffs,
src/sbin/fsdb and src/usr.sbin/makefs. Only changes in assert() line numbers
were detected in 'objdump -d' output.
|
|
|
|
even if we've detected a 'root on raid' autoconfigure. This change is really
only cosmetic, since setroot() will still do the right thing and honor
the 'root on foo' setting.
|
|
|