History log of /freebsd-10.1-release/sys/geom/raid3/g_raid3_ctl.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 272461 02-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


# 245456 15-Jan-2013 mav

Allow to insert new component to geom_raid3 without specifying number.

PR: kern/160562
MFC after: 2 weeks


# 163888 01-Nov-2006 pjd

Now, that we have gjournal in the tree add possibility to configure
gmirror and graid3 in a way that it is not resynchronized after a
power failure or system crash.
It is safe when gjournal is running on top of gmirror/graid3.


# 163886 01-Nov-2006 pjd

Change spaces to tabs where needed.


# 162350 16-Sep-2006 pjd

Small fixes after adding __printflike() to gctl_error().

Approved by: phk
MFC after: 3 days


# 160330 13-Jul-2006 pjd

Always allow to specify components with /dev/ prefix.

MFC after: 3 days


# 160155 07-Jul-2006 pjd

Remove bogus assertion.

Reported by: Bradley W. Dutton <brad-fbsd-stable@duttonbros.com>
MFC after: 3 days


# 157630 10-Apr-2006 pjd

Introduce and use delayed-destruction functionality from a pre-sync hook,
which means that devices will be destroyed on last close.

This fixes destruction order problems when, eg. RAID3 array is build on
top of RAID1 arrays.

Requested, reviewed and tested by: ru
MFC after: 2 weeks


# 156878 19-Mar-2006 pjd

Update copyright for 2006.


# 156612 12-Mar-2006 pjd

- Reimplement I/O data allocation to prevent deadlocks.

Submitted by: green

- Speed up synchronization process by using configurable number of I/O
requests in parallel.
+ Add kern.geom.raid3.sync_requests tunable which defines how many parallel
I/O requests should be used.
+ Retire kern.geom.raid3.reqs_per_sync and kern.geom.raid3.syncs_per_sec
sysctls.
- Fix race between regular and synchronization requests.
- Reimplement raid3's data synchronization - do not use the topology lock
for this purpose, as it may case deadlocks.
- Stop synchronization from pre-sync hook.
- Fix some other minor issues.

Tested by: Mike Tancsa <mike@sentex.net>
MFC after: 3 days


# 156527 10-Mar-2006 pjd

When inserting a new component md_provsize metadata field wasn't set, which
means that old problem was triggered (when two providers end at the same
offset, eg. ad0 and ad0s1 and the wrong was is picked up by gmirror/graid3).

Reported by: Michal Suszko <dry@dry.pl>
MFC after: 3 days


# 155174 01-Feb-2006 pjd

Remove trailing spaces.


# 146118 11-May-2005 pjd

cp can't be NULL.

Noticed by: Coverity Prevent analysis tool


# 146117 11-May-2005 pjd

gp can't be NULL.

Noticed by: Coverity Prevent analysis tool


# 144142 26-Mar-2005 pjd

Check for return values.

Submitted by: sam
Found by: Coverity Prevent analysis tool


# 141994 16-Feb-2005 pjd

Update copyright in files changed this year.


# 139671 04-Jan-2005 pjd

- Fix 'rebuild' command - it can no longer relay on retaste event
(we ignore it).
- Remove code used for handling spoil events, as spoiling is not possible
anymore, because we keep consumers open for writing all the time.

MFC after: 4 days


# 139295 25-Dec-2004 pjd

- Add genid field to the metadata which will allow to improve reliability a bit.
After this change, when component is disconnected because of an I/O error,
it will not be connected and synchronized automatically, it will be logged
as broken and skipped. Autosynchronization can occur, when component is
disconnected (on orphan event) and connected again - there were no I/O
error, so there is no need to not connected the component, but when there were
writes while it wasn't connected, it will be synchronized.
This fix cases, when component is disconnected because of I/O error and can be
connected again and again.
- Bump version number.
- Implement backward compatibility mechanism. After this change when metadata in
old version is detected, it is automatically upgraded to the new (current)
version.


# 134420 28-Aug-2004 pjd

Warn the user if we are not going to use whole provider space.

Requested by: Michael Handler <handler@grendel.net>


# 134418 28-Aug-2004 pjd

Don't allow to insert providers, which are too small.

Reported by: Michael Handler <handler@grendel.net>


# 134168 22-Aug-2004 pjd

Implementation of 'verify reading' algorithm, which uses parity data for
verification of regular data when device is in complete state.
On verification error, EIO error is returned for the bio and sysctl
kern.geom.raid3.stat.parity_mismatch is increased.

Suggested by: phk


# 134124 21-Aug-2004 pjd

Implement new reading algorithm, which will use parity component for reading
as well, even if device is in complete state.
I observe 40% of speed-up with this option for random read operations,
but slowdown for sequential reads.
Basically, without this option reading from a RAID3 device built from 5
components (c0-c4) looks like this:

Request no. Used components
1 c0+c1+c2+c3
2 c0+c1+c2+c3
3 c0+c1+c2+c3

With the new feature:

Request no. Used components
1 c0+c1+c2+c3
2 (c1^c2^c3^c4)+c1+c2+c3
3 c0+(c0^c2^c3^c4)+c2+c3
4 c0+c1+(c0^c1^c3^c4)+c3
5 c0+c1+c2+(c0^c1^c2^c4)
6 c0+c1+c2+c3
[...]


# 133808 16-Aug-2004 pjd

Introduce GEOM RAID3 class, i.e. kernel module, which implements RAID3
transformation and graid3(8) userland utility, which can be used for
configuration. No manual page yet, sorry.

Hardware provided by: Daniel Seuffert