Home | History | Annotate | Download | only in raidframe
History log of /src/sys/dev/raidframe/rf_reconmap.h
RevisionDateAuthorComments
 1.12  10-May-2011  mrg convert RF_CommonLogData_s/RF_ReconMap_s mutex to a kmutex/cv.
 1.11  19-May-2008  oster branches: 1.11.20; 1.11.26;
Re-work some of the guts of the reconstruction code.

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.
 1.10  11-Dec-2005  christos branches: 1.10.24; 1.10.38; 1.10.70; 1.10.72; 1.10.74; 1.10.76;
merge ktrace-lwp.
 1.9  18-Mar-2004  oster branches: 1.9.14;
Re-work the locking mechanisms for reconstruct and PSS structures
such that we don't actually hold a simplelock while we are doing
a pool_get(), but that we still effectively protecting critical code.

This should fix all of the outstanding LOCKDEBUG warnings related to
rebuilding RAID sets.
 1.8  04-Mar-2004  oster Cleanup function prototypes.
 1.7  29-Dec-2003  oster [Having received a definite lack of strenuous objection, a small amount
of strenuous agreement, and some general agreement, this commit is
going ahead because it's now starting to block some other changes I
wish to make.]

Remove most of the support for the concept of "rows" from RAIDframe.
While the "row" interface has been exported to the world, RAIDframe
internals have really only supported a single row, even though they
have feigned support of multiple rows.

Nothing changes in configuration land -- config files still need to
specify a single row, etc. All auto-config structures remain fully
forward/backwards compatible.

The only visible difference to the average user should be a
reduction in the size of a GENERIC kernel (i386) by 4.5K. For those
of us trolling through RAIDframe kernel code, a lot of the driver
configuration code has become a LOT easier to read.
 1.6  06-Oct-2002  oster branches: 1.6.6;
poolify the RF_ReconMapListElem_t's used by rf_ReconMapUpdate().
Gives LOCKDEBUG kernels one less thing to complain about.
 1.5  05-Oct-2002  oster update_size() does some bookkeeping, but nothing ever reads the data
it gathers. Nuke it. Without update_size, FreeReconMapListElem() can
do without mapPtr. That, in turn, means crunch_list() doesn't need a
mapPtr either.
 1.4  04-Oct-2001  oster Step 2 of the disentanglement. We now look to <dev/raidframe/*> for
the stuff that used to live in rf_types.h, rf_raidframe.h, rf_layout.h,
rf_netbsd.h, rf_raid.h, rf_decluster,h, and a few other places.
Believe it or not, when this is all done, things will be cleaner.

No functional changes to RAIDframe.
 1.3  05-Feb-1999  oster branches: 1.3.20; 1.3.22; 1.3.24;
Phase 2 of the RAIDframe cleanup. The source is now closer to KNF
and is much easier to read. No functionality changes.
 1.2  26-Jan-1999  oster RAIDframe cleanup, phase 1. Nuke simulator support, user-land driver,
out-dated comments, and other unneeded stuff. This helps prepare
for cleaning up the rest of the code, and adding new functionality.

No functional changes to the kernel code in this commit.
 1.1  13-Nov-1998  oster RAIDframe, version 1.1, from the Parallel Data Laboratory at
Carnegie Mellon University. Full RAID implementation, including
levels 0, 1, 4, 5, 6, parity logging, and a few other goodies.
Ported to NetBSD by Greg Oster.
 1.3.24.1  11-Oct-2001  fvdl Catch up with -current. Fix some bogons in the sparc64 kbd/ms
attach code. cd18xx conversion provided by mrg.
 1.3.22.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.20.2  18-Oct-2002  nathanw Catch up to -current.
 1.3.20.1  22-Oct-2001  nathanw Catch up to -current.
 1.6.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.6.6.1  03-Aug-2004  skrll Sync with HEAD
 1.9.14.1  25-May-2008  bouyer Pull up following revision(s) (requested by oster in ticket #1933):
sys/dev/raidframe/rf_reconmap.h: revision 1.11
sys/dev/raidframe/rf_reconmap.c: revision 1.31
sys/dev/raidframe/rf_reconstruct.h: revision 1.24
sys/dev/raidframe/rf_reconstruct.c: revision 1.104
sys/dev/raidframe/rf_revent.c: revision 1.25
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. May fix bin/38471.
 1.10.76.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.10.74.1  04-May-2009  yamt sync with head.
 1.10.72.1  04-Jun-2008  yamt sync with head
 1.10.70.1  02-Jun-2008  mjf Sync with HEAD.
 1.10.38.1  03-Jun-2008  skrll Sync with netbsd-4.
 1.10.24.1  25-May-2008  bouyer Pull up following revision(s) (requested by oster in ticket #1153):
sys/dev/raidframe/rf_reconmap.h: revision 1.11
sys/dev/raidframe/rf_reconmap.c: revision 1.31
sys/dev/raidframe/rf_reconstruct.h: revision 1.24
sys/dev/raidframe/rf_reconstruct.c: revision 1.104
sys/dev/raidframe/rf_revent.c: revision 1.25
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. May fix bin/38471.
 1.11.26.1  06-Jun-2011  jruoho Sync with HEAD.
 1.11.20.1  31-May-2011  rmind sync with head

RSS XML Feed