Home | History | Annotate | Download | only in raidframe
History log of /src/sys/dev/raidframe/rf_paritylogging.c
RevisionDateAuthorComments
 1.35  09-Feb-2019  christos - 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.
 1.34  11-May-2011  mrg branches: 1.34.56;
convert regionBufferPool.mutex/cond and parityBufferPool.mutex/cond
to kmutex/cv.
 1.33  11-May-2011  mrg convert parityLogPool.mutex to a kmutex.
 1.32  11-May-2011  mrg convert regionInfo[regionID].mutex to a kmutex.
 1.31  11-May-2011  mrg convert reintMutex to a kmutex.
 1.30  11-May-2011  mrg convert parityLogDiskQueue.mutex to a kmutex/cv.

XXX: some splbio() usage to clean up here
 1.29  10-May-2011  mrg convert RF_CommonLogData_s/RF_ReconMap_s mutex to a kmutex/cv.
 1.28  04-Mar-2007  christos branches: 1.28.64; 1.28.70;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.27  16-Nov-2006  christos branches: 1.27.4;
__unused removal on arguments; approved by core.
 1.26  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.25  26-Apr-2006  oster branches: 1.25.8; 1.25.10;
un-bitrot some of this code (which is not included by default in kernels),
and make it build again. XXX: Paritylogging bits still won't build.
 1.24  11-Dec-2005  christos branches: 1.24.4; 1.24.6; 1.24.8; 1.24.10; 1.24.12;
merge ktrace-lwp.
 1.23  27-Feb-2005  perry branches: 1.23.4;
nuke trailing whitespace
 1.22  29-Feb-2004  oster branches: 1.22.8; 1.22.10;
Adjust _rf_ShutdownCreate() so that it is willing to wait for more
memory. Since we only now ever "return(0)", just return (void)
instead.

Cleanup all uses of rf_ShutdownCreate() to not worry about
it ever failing. Shaves another 600 bytes off of an i386 GENERIC kernel.
 1.21  29-Dec-2003  oster _rf_create_managed_cond() is now left doing nothing. Convert callers.
Mash DO_RAID_COND in rf_driver.c out of existance.

- Nuke (already #if 0'ed) _rf_create_managed_lkmgr_mutex() while we're
busy here.

simplify DO_INIT in rf_engine.c
 1.20  29-Dec-2003  oster cond_destroyer joins mutex_destroyer in the "nothing useful is done
here" department.

remove _rf_init_threadgroup() and rf_destroy_threadgroup() which were
already #if 0'ed.

rf_cond_destroy() does nothing. Nuke it, and all callers.

rf_cond_init() doesn't deserve to be a separate function any more.
Fix up the remaining 3 callers, and nuke rf_cond_init().

Another 0.4K goes "poof", but still no functionality lost!
 1.19  29-Dec-2003  oster _rf_create_managed_mutex() is doing just a simple:

rf_mutex_init(m)

now. The rest of the fluff is no longer needed.
It also cannot fail, so error checking on rf_create_managed_mutex()
is just wasting space.

Nuke the #define's associated with rf_create_managed_mutex().
Convert rf_create_managed_mutex(listp,m) to just rf_mutex_init(m).
Remove wasteful "error checking" and simplify all instances where this
is called. (another 0.3K saved in the binary, but the real savings
is in code readability!)
 1.18  29-Dec-2003  oster Since rf_mutex_destroy() is effectively a NOP now, nuke it.
 1.17  29-Dec-2003  oster - first kick at a major reworking of RAIDframe's memory allocation code:
- all freelists converted to pools
- initialization of structure members in certain cases where
code was relying on specific allocation and usage properties
to keep structures in a "known state" (that doesn't work with
pools!).
- make most pool_get() be "PR_WAITOK" until they can be analyzed
further, and/or have proper error handling added.
- all RF_Mallocs zero the space returned, so there is no difference
between RF_Calloc and RF_Malloc. In fact, all the RF_Calloc()'s
do is tend to do is get things horribly confused.
Make RF_Malloc() the "general memory allocator", with
RF_MallocAndAdd() the "general memory allocator with
allocation list".
- some of these RF_Malloc's et al. are destined to disappear.
- remove rf_rdp_freelist entirely (it's not used anywhere!)
- remove: #include "rf_freelist.h"
- to the files that were relying on the above, add: #include "rf_general.h"
- add: #include "rf_debugMem.h" to rf_shutdown.h to make it happy
about the loss of: #include "rf_freelist.h".

This shrinks an i386 GENERIC kernel by approx 5K. RAIDframe now
weighs in at about 162K on i386.
 1.16  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.15  16-Nov-2003  oster infoFunc doesn't exist any more. Nuke commented out bits refering
to infoFunc.
 1.14  23-Sep-2002  oster branches: 1.14.6;
bytesPerStripeUnit is set, but never used. Thanks to Simon B. for pointing
this out.
 1.13  14-Sep-2002  oster Everyone and their dog was using RF_ERRORMSG3 to print out the same
sort of error message, over and over again, in different files.
Rather than having the same text repeated in multiple .o files,
create a couple of little functions to do the printing, and save a
bundle of space. Also improves readability of code.
 1.12  13-Nov-2001  lukem add RCSIDs
 1.11  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.10  12-Feb-2000  oster branches: 1.10.6; 1.10.8; 1.10.10;
Make this compile without warnings on alphas.
(Problem noted by Aaron J. Grier)
 1.9  14-Jan-2000  oster Add some debugging printfs.
 1.8  09-Jan-2000  oster At (closer to) 80-columns, this may actually be readable code.
 1.7  09-Jan-2000  oster It's got to help to check the *right* value if you care what
RF_Malloc() is returning.
 1.6  08-Jan-2000  oster - nuke calls to rf_get_threadid() and associated #include
- change a bunch of debugging printfs from
"[%d] ...", tid (where tid is the "thread id")
to
"raid%d: ...", raidPtr->raidid
- other minor rototillage
 1.5  08-Jan-2000  oster Bail if rf_numParityRegions is not > 0. Cleanup a comment.
 1.4  05-Jan-2000  oster - update RF_CREATE_THREAD to handle a 'process name' argument.
- fire up a new thread for parity re-writes, copybacks, and reconstructs.
The ioctl's which trigger these actions now return immediately.
- add progress accounting for the above actions.
- minor rototillage of rf_netbsdkintf.c to deal with all of the above.
 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.10.10.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.10.8.2  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.10.8.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.10.6.4  18-Oct-2002  nathanw Catch up to -current.
 1.10.6.3  17-Sep-2002  nathanw Catch up to -current.
 1.10.6.2  14-Nov-2001  nathanw Catch up to -current.
 1.10.6.1  22-Oct-2001  nathanw Catch up to -current.
 1.14.6.4  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.14.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.14.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.14.6.1  03-Aug-2004  skrll Sync with HEAD
 1.22.10.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.22.8.1  29-Apr-2005  kent sync with -current
 1.23.4.2  03-Sep-2007  yamt sync with head.
 1.23.4.1  21-Jun-2006  yamt sync with head.
 1.24.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.24.10.1  11-May-2006  elad sync with head
 1.24.8.1  24-May-2006  yamt sync with head.
 1.24.6.1  01-Jun-2006  kardel Sync with head.
 1.24.4.1  09-Sep-2006  rpaulo sync with head
 1.25.10.2  10-Dec-2006  yamt sync with head.
 1.25.10.1  22-Oct-2006  yamt sync with head
 1.25.8.1  18-Nov-2006  ad Sync with head.
 1.27.4.1  12-Mar-2007  rmind Sync with HEAD.
 1.28.70.1  06-Jun-2011  jruoho Sync with HEAD.
 1.28.64.1  31-May-2011  rmind sync with head
 1.34.56.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed