Home | History | Annotate | Download | only in raidframe
History log of /src/sys/dev/raidframe/rf_driver.h
RevisionDateAuthorComments
 1.21  23-Jul-2021  oster All IO is async in the RAIDframe kernel driver, so desc->async_flag
isn't needed. Cleanup the flag from rf_DoAccess() and its caller as
well.
 1.20  26-Dec-2015  pgoyette branches: 1.20.36;
Modularize the raidframe driver, including rework of the unit attach
code to permit detaching (and possible module unloading). Also,
convert tsleep()/wakeup() locking to use cv_wait_sig()/cv_broadcast().

Tested in non-modular, modular-builtin, and modular-loaded-at-runtime
environments.
 1.19  30-Apr-2011  mrg branches: 1.19.14; 1.19.32;
- convert rf_printf_mutex to a kmutex
- convert rf_rad_lock and the per-raid "cv" to per-raid kmutex/and real cv
- use rf_mutex_init() in places, and move it with the similar definitions
 1.18  27-Apr-2011  mrg 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
 1.17  04-Mar-2007  christos branches: 1.17.64; 1.17.70;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.16  11-Dec-2005  christos branches: 1.16.26;
merge ktrace-lwp.
 1.15  27-Feb-2005  perry branches: 1.15.4;
nuke trailing whitespace
 1.14  13-Feb-2005  oster Convert a few "void *"'s to "struct buf *"'s. No functional changes.
 1.13  16-Nov-2004  oster branches: 1.13.4; 1.13.6;
On an idea from Thor (tls@), do not fail a component if doing so would
render the RAID set completely dead. Instead, we retry the IO a
maximum of RF_RETRY_THRESHOLD times (currently '5'), and then just
return an IO error if the IO fails. This should reduce the damage
caused by having multiple disks appear to fail when the culprit is
really something else (power, controllers, etc.)
 1.12  02-Jun-2004  drochner fix const'ificication, gcc-3.4 will notice it
 1.11  13-Mar-2004  oster branches: 1.11.2;
Cleanup function prototypes.
 1.10  13-Mar-2004  oster - don't use rf_PrintUserStats() for recon statistics.
rf_PrintUserStats() was mean for the simulator, and doesn't provide
any real info in kernel-space, especially for reconstructs.
Reconstructing actually renders the stats even more useless, since it
resets them all to zero before the reconstruct starts!

- since rf_PrintUserStats() is no longer used, nuke it along with the
routines that feed it. Nothing was using this code, and if we ever
need it again, we know where to find it.
 1.9  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.8  23-Sep-2002  oster branches: 1.8.6;
The 'reconDesc' argument to rf_SignalQuiescenceLock() is a holdover from
simulation code. *poof* Thanks to Simon B.
 1.7  07-Jan-2002  oster #if 0 rf_SetReconfiguredMode() since it is unused now, but may be
needed someday.
 1.6  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.5  27-Jul-2001  oster branches: 1.5.2;
Nuke the 5 NULL parameters from rf_DoAccess(). Observe that 4 of
the variables are passed directly to rf_AllocRaidAccDesc(), and the 5th
isn't even used. Hunt them down and nuke them too.
 1.4  13-Feb-2000  oster branches: 1.4.6; 1.4.8;
Get recent changes into the tree:
- make component_label variables more consistent (==> clabel)
- re-work incorrect component configuration code
- re-work disk configuration code
- cleanup initial configuration of raidPtr info
- add auto-detection of components and RAID sets (Disabled, for now)
- allow / on RAID sets (Disabled, for now)
- rename "config_disk_queue" to "rf_ConfigureDiskQueue" and properly prototype
in rf_diskqueue.h
- protect some headers with #if _KERNEL (XXX this needs to be fixed properly)
and cleanup header formatting.
- expand the component labels (yes, they should be backward/forward compatible)
- other bits and pieces (some function names are still bogus, and will get
changed soon)
 1.3  05-Feb-1999  oster branches: 1.3.8;
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.8.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.4.8.3  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.4.8.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4.8.1  03-Aug-2001  lukem update to -current
 1.4.6.5  18-Oct-2002  nathanw Catch up to -current.
 1.4.6.4  28-Feb-2002  nathanw Catch up to -current.
 1.4.6.3  11-Jan-2002  nathanw More catchup.
 1.4.6.2  22-Oct-2001  nathanw Catch up to -current.
 1.4.6.1  24-Aug-2001  nathanw Catch up with -current.
 1.5.2.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.8.6.6  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.8.6.5  15-Feb-2005  skrll Sync with HEAD.
 1.8.6.4  29-Nov-2004  skrll Sync with HEAD.
 1.8.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.8.6.1  03-Aug-2004  skrll Sync with HEAD
 1.11.2.1  28-Jun-2004  tron branches: 1.11.2.1.2;
Pull up revision 1.12 (requested by oster in ticket #563):
fix const'ificication, gcc-3.4 will notice it
 1.11.2.1.2.1  06-Apr-2005  tron Pull up revision 1.13 (requested by oster in ticket #1038):
On an idea from Thor (tls@), do not fail a component if doing so would
render the RAID set completely dead. Instead, we retry the IO a
maximum of RF_RETRY_THRESHOLD times (currently '5'), and then just
return an IO error if the IO fails. This should reduce the damage
caused by having multiple disks appear to fail when the culprit is
really something else (power, controllers, etc.)
 1.13.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.13.4.1  29-Apr-2005  kent sync with -current
 1.15.4.1  03-Sep-2007  yamt sync with head.
 1.16.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.17.70.1  06-Jun-2011  jruoho Sync with HEAD.
 1.17.64.1  31-May-2011  rmind sync with head
 1.19.32.1  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.19.14.1  03-Dec-2017  jdolecek update from HEAD
 1.20.36.1  01-Aug-2021  thorpej Sync with HEAD.

RSS XML Feed