Home | History | Annotate | Download | only in raidframe
History log of /src/sys/dev/raidframe/rf_evenodd.c
RevisionDateAuthorComments
 1.24  27-Jun-2025  andvar Grammar and spelling fixes, mainly in comments. A few in documentation,
logging, test description, and SCSI ASC/ASCQ assignment descriptions.
 1.23  23-Jul-2021  oster 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.
 1.22  09-Feb-2019  christos branches: 1.22.16;
- 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.21  23-Mar-2014  christos branches: 1.21.30;
fix unused
 1.20  05-May-2011  mrg branches: 1.20.4; 1.20.14; 1.20.18;
finish porting mcpair users to kmutex, and fix a couple of declarations
in rf_netbsdkintf.c. fixes i386/conf/ALL build.
 1.19  29-Jan-2007  hubertf branches: 1.19.68; 1.19.74;
Remove more duplicate headers.
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.
 1.18  16-Nov-2006  christos __unused removal on arguments; approved by core.
 1.17  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.16  26-Apr-2006  oster branches: 1.16.8; 1.16.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.15  11-Dec-2005  christos branches: 1.15.4; 1.15.6; 1.15.8; 1.15.10; 1.15.12;
merge ktrace-lwp.
 1.14  27-Feb-2005  perry branches: 1.14.4;
nuke trailing whitespace
 1.13  10-Jan-2004  oster branches: 1.13.8; 1.13.10;
iCleanup the RF_CREATE_PARAM3(). Middle two "arguments" were nothing
but 0 in all cases.
 1.12  30-Dec-2003  oster Some days you wonder if some of the function declaration consistency
was just an accident in the first place. Cleanup function decls and
a few comments. [ok.. so I wasn't going to fix this many.. but once
you're on a roll....]
 1.11  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.10  16-Nov-2003  oster infoFunc doesn't exist any more. Nuke commented out bits refering
to infoFunc.
 1.9  23-Sep-2002  oster branches: 1.9.6;
bytesPerStripeUnit is set, but never used. Thanks to Simon B. for pointing
this out.
 1.8  07-Sep-2002  oster Protect rf_PrintDAGList() in a few more places. Thanks to Monroe Williams
on current-users for the patch.
 1.7  13-Nov-2001  lukem add RCSIDs
 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  18-Jul-2001  thorpej branches: 1.5.2;
bzero -> memset
 1.4  07-Jan-2000  oster branches: 1.4.6; 1.4.8;
Nuke: #include "rf_threadid.h".
 1.3  13-Aug-1999  oster branches: 1.3.2;
rf_sys.h does not need to be #included in any of these files, and, actually,
is no longer needed at all.
 1.2  05-Feb-1999  oster Phase 2 of the RAIDframe cleanup. The source is now closer to KNF
and is much easier to read. No functionality changes.
 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.2.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  17-Sep-2002  nathanw Catch up to -current.
 1.4.6.3  14-Nov-2001  nathanw Catch up to -current.
 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.9.6.4  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.9.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.9.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.9.6.1  03-Aug-2004  skrll Sync with HEAD
 1.13.10.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.13.8.1  29-Apr-2005  kent sync with -current
 1.14.4.2  26-Feb-2007  yamt sync with head.
 1.14.4.1  21-Jun-2006  yamt sync with head.
 1.15.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.15.10.1  11-May-2006  elad sync with head
 1.15.8.1  24-May-2006  yamt sync with head.
 1.15.6.1  01-Jun-2006  kardel Sync with head.
 1.15.4.1  09-Sep-2006  rpaulo sync with head
 1.16.10.2  10-Dec-2006  yamt sync with head.
 1.16.10.1  22-Oct-2006  yamt sync with head
 1.16.8.2  01-Feb-2007  ad Sync with head.
 1.16.8.1  18-Nov-2006  ad Sync with head.
 1.19.74.1  06-Jun-2011  jruoho Sync with HEAD.
 1.19.68.1  31-May-2011  rmind sync with head
 1.20.18.1  18-May-2014  rmind sync with head
 1.20.14.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.20.4.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.21.30.1  10-Jun-2019  christos Sync with HEAD
 1.22.16.1  01-Aug-2021  thorpej Sync with HEAD.

RSS XML Feed