Home | History | Annotate | Download | only in dev
History log of /src/sys/dev/ccdvar.h
RevisionDateAuthorComments
 1.37  18-Mar-2018  christos factor out the ccd COMPAT_60 code.
 1.36  08-Jun-2017  chs branches: 1.36.4;
do not expose kernel-internal structure definitions to userland.
needed due to upcoming sys/disk.h changes needed for ZFS.
 1.35  06-Sep-2015  dholland More on PR 41200: headers that declare ioctls should include sys/ioccom.h.
This covers (I think) all the MI headers outside of external/ (and dist/).
 1.34  16-Aug-2014  sborrill branches: 1.34.2;
Switch size_t to uint64_t in appropriate places to ensure that ccd(4) works
with component and total sizes of > 2TB.
Add COMPAT_60 code for platforms where this alters userland-accessible
structures.
Make kernel print device information when a ccd configured.
Fix some typos in comments.
 1.33  27-Apr-2013  christos branches: 1.33.10;
- no limit on the number of ccd devices.
- provide sysctl for getting information.
 1.32  08-Feb-2011  rmind branches: 1.32.4; 1.32.10; 1.32.14;
Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.31  04-Apr-2009  ad branches: 1.31.4; 1.31.6; 1.31.8;
Fix problems with ccd:

- Pending async I/O was tossed on unconfigure (should not happen, but..)
- It could exhaust memory under heavy I/O load.
- If memory allocation failed, disk transfers could stall.
- v_numoutput was updated without v_interlock held.

Additionally:

- Make it MPSAFE.
- Use kmem_alloc().
 1.30  28-Apr-2008  martin branches: 1.30.8; 1.30.10; 1.30.14;
Remove clause 3 and 4 from TNF licenses
 1.29  15-Feb-2007  ad branches: 1.29.40; 1.29.42; 1.29.44;
Replace some uses of lockmgr() / simplelocks.
 1.28  11-Dec-2005  christos merge ktrace-lwp.
 1.27  15-Oct-2005  yamt - change the way to specify a bufq strategy. (by string rather than by number)
- rather than embedding bufq_state in driver softc,
have a pointer to the former.
- move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c.
- rename method to strategy for consistency.
- move some definitions which don't need to be exposed to the rest of kernel
from sys/bufq.h to sys/bufq_impl.h.
(is it better to move it to kern/ or somewhere?)
- fix some obvious breakage in dev/qbus/ts.c. (not tested)
 1.26  28-Oct-2004  yamt branches: 1.26.12;
hide bufq_state from userland.
 1.25  23-Aug-2004  thorpej Protect against multiple inclusion.
 1.24  17-Oct-2003  lukem Add user flag CCDF_NOLABEL to prevent the on-disk label from being read
during CCDIOCSET.
Use this when creating a new ccd to ignore any existing disklabel
which is probably wrong.
 1.23  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.22  17-May-2003  thorpej branches: 1.22.2;
Use a buffer queue. Primary advantage here is robustness in the face
of temporary resource shortages.
 1.21  17-May-2003  thorpej Add DIOCKLABEL support. Fixes PR kern/21605 (Luke Mewburn).
 1.20  05-Aug-2001  jdolecek branches: 1.20.2;
change ccio_ndisks and sc_nccdisks of struct ccd_ioctl from int to u_int
introduce hard limit on number of disks which can be contcatenated togetger,
CCD_MAXNDISKS
 1.19  11-Aug-1999  thorpej branches: 1.19.12; 1.19.14; 1.19.16;
Garbage-collect CCDF_SWAP; no longer used, and doesn't make any sense
with the UVM swap code.
 1.18  11-Aug-1999  thorpej We really only need *one* componenet buffer pool...
 1.17  21-Jan-1999  thorpej Fix a st00p1d bug I introduced in rev 1.57, which would cause any activity
on non-0 CCD units to crash the system.
 1.16  12-Jan-1999  thorpej Whole lotta cleanup wrt. how configuration data is stored internally, and
just lockmgr(), not our home-grown locking functions.
 1.15  13-Nov-1998  thorpej Nuke the mirroring code. RAIDframe is about to go in, and is a much
better mirroring solution.

The ccd driver will stay, even in the presence of RAIDframe, for applications
where just RAID-0 is needed (much smaller code footprint).
 1.14  31-Jul-1998  thorpej Use the pool allocator for component buffer headers.
 1.13  09-Oct-1997  jtc branches: 1.13.4;
Fix tipo inherited from old version of TNF copyright template.
 1.12  30-Jan-1997  thorpej branches: 1.12.8;
A performance optimization, inspired by a conversation with Thor Simon:

- Keep a freelist of component buffer headers, defaulting
to 8 headers per component (tunable with the CCDNBUF
kernel compile option).
- When allocating a component buffer, try to pull a header
off the freelist first, falling back on MALLOC() if the
freelist is empty. Use MALLOC() rather than malloc(),
because it will attempt to short-cut the allocation before
actually making a full-blown malloc() call.
- Keep statistics on how many component buffer headers have
been allocated and how many of those allocations have
resulted in freelist misses.

With these changes, I observed measurable decreases in system and
wall clock time on operations on an 8G ccd, as well as a measurable
drop in the time spent in ccdbuffer() (measured with kernel profiling).
 1.11  28-Feb-1996  thorpej Copyright assigned to The NetBSD Foundation.
 1.10  01-Feb-1996  thorpej Add experimental data mirroring support, derived from code written by
Satoshi Asami and Nisha Talagala. For details on using data mirroring,
see the ccd(4) manual page.
 1.9  07-Jan-1996  thorpej New generic disk framework. Highlights:

- New metrics handling. Metrics are now kept in the new
`struct disk'. Busy time is now stored as a timeval, and
transfer count in bytes.

- Storage for disklabels is now dynamically allocated, so that
the size of the disk structure is not machine-dependent.

- Several new functions for attaching and detaching disks, and
handling metrics calculation.

Old-style instrumentation is still supported in drivers that did it before.
However, old-style instrumentation is being deprecated, and will go away
once the userland utilities are updated for the new framework.

For usage and architectural details, see the forthcoming disk(9) manual
page.
 1.8  12-Oct-1995  thorpej Fix bad pointer deref, memory leak, and geometry calculation, pointed
out by Jochen Pohl in PR #1588. Change the interleave index to an
array of ints rather than an array of chars to avoid losing in the event
one has more than 127 components.
 1.7  09-Oct-1995  thorpej branches: 1.7.2;
Implement a simple locking mechanism and use it, for sanity's sake.
In ccdopen(), don't update the disklabel if any partition is already open.
Prevents race bewteen ccdstrategy() and ccdgetdisklabel().
 1.6  23-Aug-1995  thorpej Fix typo in comment, from Chris P. Ross.
 1.5  17-Aug-1995  thorpej New version of ccd. Allows dynamic run-time configuration and
unconfiguration and supports disklabels.
 1.4  26-Mar-1995  jtc KERNEL -> _KERNEL
 1.3  02-Jul-1994  hpeyerl These should have been the 4.4Lite versions. duh.
 1.2  29-Jun-1994  cgd New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
 1.1  24-Jun-1994  hpeyerl Concat disk driver moved from hp300/dev to here.
 1.7.2.1  12-Oct-1995  thorpej Update from trunk: Fix bad pointer deref, memory leak, and geometry
calculation, pointed out by Jochen Pohl in PR #1588. Change the interleave
index to an array of ints rather than an array of chars to avoid losing in
the event one has more than 127 components.
 1.12.8.1  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.13.4.1  08-Aug-1998  eeh Revert cdevsw mmap routines to return int.
 1.19.16.1  25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.19.14.1  24-Aug-2001  nathanw Catch up with -current.
 1.19.12.1  16-Aug-2001  tv Pullup [jdolecek]:

sys/dev/ccd.c 1.73
sys/dev/ccdvar.h 1.20

Provide hard limit on the number of concatenated disks, and bounds
check against that limit.
 1.20.2.1  07-Sep-2001  thorpej Commit my "devvp" changes to the thorpej-devvp branch. This
replaces the use of dev_t in most places with a struct vnode *.

This will form the basic infrastructure for real cloning device
support (besides being architecurally cleaner -- it'll be good
to get away from using numbers to represent objects).
 1.22.2.6  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.22.2.5  02-Nov-2004  skrll Sync with HEAD.
 1.22.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.22.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.22.2.2  25-Aug-2004  skrll Sync with HEAD.
 1.22.2.1  03-Aug-2004  skrll Sync with HEAD
 1.26.12.2  26-Feb-2007  yamt sync with head.
 1.26.12.1  21-Jun-2006  yamt sync with head.
 1.29.44.2  04-May-2009  yamt sync with head.
 1.29.44.1  16-May-2008  yamt sync with head.
 1.29.42.1  18-May-2008  yamt sync with head.
 1.29.40.1  02-Jun-2008  mjf Sync with HEAD.
 1.30.14.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.30.10.2  27-Aug-2014  msaitoh Pull up following revision(s) (requested by sborrill in ticket #1919):
sbin/ccdconfig/ccdconfig.c 1.54 via patch
sys/dev/ccd.c 1.152 via patch
sys/dev/ccdvar.h 1.34 via patch

Switch size_t to uint64_t in appropriate places to ensure that ccd(4)
works with component and total sizes of > 2TB.
Make kernel print device information when a ccd configured.
Fix some typos in comments.
 1.30.10.1  04-Apr-2009  snj Pull up following revision(s) (requested by ad in ticket #658):
sys/dev/ccd.c: revision 1.133 via patch
sys/dev/ccdvar.h: revision 1.31
Fix problems with ccd:
- Pending async I/O was tossed on unconfigure (should not happen, but..)
- It could exhaust memory under heavy I/O load.
- If memory allocation failed, disk transfers could stall.
- v_numoutput was updated without v_interlock held.
Additionally:
- Make it MPSAFE.
- Use kmem_alloc().
 1.30.8.1  28-Apr-2009  skrll Sync with HEAD.
 1.31.8.1  17-Feb-2011  bouyer Sync with HEAD
 1.31.6.1  06-Jun-2011  jruoho Sync with HEAD.
 1.31.4.1  05-Mar-2011  rmind sync with head
 1.32.14.3  03-Dec-2017  jdolecek update from HEAD
 1.32.14.2  23-Jun-2013  tls resync from head
 1.32.14.1  02-Dec-2012  tls Don't pass NULL struct dkdriver to disk_init. That's seriously bogus.
 1.32.10.1  27-Aug-2014  msaitoh Pull up following revision(s) (requested by sborrill in ticket #1113):
sbin/ccdconfig/ccdconfig.c 1.54 via patch
sys/dev/ccd.c 1.152 via patch
sys/dev/ccdvar.h 1.34 via patch

Switch size_t to uint64_t in appropriate places to ensure that ccd(4)
works with component and total sizes of > 2TB.
Make kernel print device information when a ccd configured.
Fix some typos in comments.
 1.32.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.33.10.1  18-Aug-2014  martin Pull up following revision(s) (requested by sborrill in ticket #38):
sys/dev/ccd.c: revision 1.152
sbin/ccdconfig/ccdconfig.c: revision 1.54
sbin/ccdconfig/ccdconfig.c: revision 1.55
sys/dev/ccdvar.h: revision 1.34
Switch size_t to uint64_t in appropriate places to ensure that ccd(4) works
with component and total sizes of > 2TB.
Add COMPAT_60 code for platforms where this alters userland-accessible
structures.
Make kernel print device information when a ccd configured.
Fix some typos in comments.
Don't print ccd_size with %zu; it no longer has type size_t.
Instead, cast to uintmax_t and print with %ju.
 1.34.2.2  28-Aug-2017  skrll Sync with HEAD
 1.34.2.1  22-Sep-2015  skrll Sync with HEAD
 1.36.4.2  22-Mar-2018  pgoyette Synch with HEAD, resolve conflicts
 1.36.4.1  18-Mar-2018  pgoyette Import compat_60 changes for dev/ccd

RSS XML Feed