The NetBSD Project

CVS log for src/sbin/raidctl/raidctl.c

[BACK] Up to [cvs.NetBSD.org] / src / sbin / raidctl

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.83 / (download) - annotate - [select for diffs], Sat Feb 10 09:21:52 2024 UTC (2 months, 1 week ago) by andvar
Branch: MAIN
CVS Tags: HEAD
Changes since 1.82: +3 -3 lines
Diff to previous 1.82 (colored)

fix various typos in comments and log messages.

Revision 1.82 / (download) - annotate - [select for diffs], Mon Sep 25 21:59:38 2023 UTC (6 months, 3 weeks ago) by oster
Branch: MAIN
Changes since 1.81: +2 -22 lines
Diff to previous 1.81 (colored)



We no longer need the deprecated copyback functionality now that
incorporating a used spare is automatic.

Copyback has always been an issue, as to do a copyback all IO to
the array had to be suspended, and so was very, very unlikely to
have been used in anything resembling a production system.

Revision 1.81 / (download) - annotate - [select for diffs], Thu Sep 21 01:48:41 2023 UTC (6 months, 4 weeks ago) by oster
Branch: MAIN
Changes since 1.80: +2 -4 lines
Diff to previous 1.80 (colored)



Remove a couple of unneeded comments.

Revision 1.80 / (download) - annotate - [select for diffs], Thu Sep 21 01:40:44 2023 UTC (6 months, 4 weeks ago) by oster
Branch: MAIN
Changes since 1.79: +161 -10 lines
Diff to previous 1.79 (colored)



Implement command-line configuration of simple RAID sets with raidctl
based on the usage pattern:

    raidctl <device> create <level> <component1> <component2> ...

For example,

    raidctl raid0 create mirror absent /dev/wd1e

will create a RAID level 1 (mirror) set with an absent first component
and /dev/wd1e as the second component.  The resulting RAID device will
be marked as auto-configurable, will have a serial number set (based
on the current time), and parity will be initialized.  Reasonable
performance values are automatically used by default for other parameters
normally specified in the configuration file.

Also: Only print out Autoconfig status if being verbose.

Revision 1.79 / (download) - annotate - [select for diffs], Sun Sep 17 20:07:39 2023 UTC (7 months ago) by oster
Branch: MAIN
Changes since 1.78: +18 -14 lines
Diff to previous 1.78 (colored)



Implement hot removal of spares and components.  From manu@.

Implement a long desired feature of automatically incorporating
a used spare into the array after a reconstruct.

Given the configuration:
Components:
           /dev/wd0e: failed
           /dev/wd1e: optimal
           /dev/wd2e: optimal
Spares:
           /dev/wd3e: spare

Running 'raidctl -F /dev/wd0e raid0' will now result in the
following configuration after a successful rebuild:
Components:
           /dev/wd3e: optimal
           /dev/wd1e: optimal
           /dev/wd2e: optimal
No spares.

Thanks to manu@ for the development of the initial set of changes
which allowed the changes to automatically incorporate a used spare
to come to fruition.  Thanks also to manu@ for useful discussions
about and additional testing of these changes.

Revision 1.78 / (download) - annotate - [select for diffs], Tue Jun 14 08:06:18 2022 UTC (22 months ago) by kre
Branch: MAIN
CVS Tags: netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10
Changes since 1.77: +26 -4 lines
Diff to previous 1.77 (colored)

Implement "raidctl -t config-file"

This does the same config file parse  that -c/-C do, but only
that (hence no raidframe device is needed, or accepted).

Any syntax errors in the config file will be reported, nothing
else happens.

Revision 1.77 / (download) - annotate - [select for diffs], Tue Jun 14 08:06:07 2022 UTC (22 months ago) by kre
Branch: MAIN
Changes since 1.76: +2 -7 lines
Diff to previous 1.76 (colored)

In the previous (and some earlier) version(s) of raidctl.c
the following comment appeared:

	/*
	 * After NetBSD 9, convert this to not output the numRow's value,
	 * which is no longer required or ever used.
	 */

We are after NetBSD 9 (well after).   The change requested in that
comment is made here, and the comment is thus removed.

A couple of places in rf_configure.c where a value for the "rows"
parameter was output in an error message (always simply as the
constant 0) have also been updated (those messages will no longer
include "row 0", which they always said previously).   One of them
was also slightly reworded to be clearer what problem it was
experiencing (when it said 'unable to get device file' it meant
it was unable to locate the name for the device in the config file,
not that it was found, and there was some other problem with it).

Revision 1.76 / (download) - annotate - [select for diffs], Tue Jun 14 08:06:01 2022 UTC (22 months ago) by kre
Branch: MAIN
Changes since 1.75: +10 -10 lines
Diff to previous 1.75 (colored)

Reorder the getopts() switch () (slightly) to sort the options.   NFCI.

Revision 1.75 / (download) - annotate - [select for diffs], Tue Jun 14 08:05:55 2022 UTC (22 months ago) by kre
Branch: MAIN
Changes since 1.74: +17 -11 lines
Diff to previous 1.74 (colored)

KNF (whitespace & 80 column limits) - NFCI.

This is the first of a series of 5 commits in this
directory, all coming within minutes or now.

Revision 1.74 / (download) - annotate - [select for diffs], Mon Aug 2 20:31:15 2021 UTC (2 years, 8 months ago) by oster
Branch: MAIN
Changes since 1.73: +10 -3 lines
Diff to previous 1.73 (colored)


Support on-demand re-scanning all devices to look for
autoconfig RAID sets.  raidctl now supports looking
for autoconfig RAID sets with a new '-L' flag.

Revision 1.73 / (download) - annotate - [select for diffs], Sun Aug 1 20:26:53 2021 UTC (2 years, 8 months ago) by oster
Branch: MAIN
Changes since 1.72: +7 -7 lines
Diff to previous 1.72 (colored)


Move case 'l' to be in sorted order.  No functional change.

Revision 1.72 / (download) - annotate - [select for diffs], Sun Sep 13 06:04:53 2020 UTC (3 years, 7 months ago) by mlelstv
Branch: MAIN
CVS Tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Changes since 1.71: +16 -9 lines
Diff to previous 1.71 (colored)

Allow components to be specified by wedge name.

Revision 1.71 / (download) - annotate - [select for diffs], Thu Sep 26 10:47:30 2019 UTC (4 years, 6 months ago) by mlelstv
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, is-mlppp-base, is-mlppp
Changes since 1.70: +14 -8 lines
Diff to previous 1.70 (colored)

Need MIN in userland. Also some more signed/unsigned clashes.

Revision 1.70 / (download) - annotate - [select for diffs], Thu Sep 26 10:33:30 2019 UTC (4 years, 6 months ago) by mlelstv
Branch: MAIN
Changes since 1.69: +11 -7 lines
Diff to previous 1.69 (colored)

nspares is now unsigned. Validate and use as positive integer.

Revision 1.69 / (download) - annotate - [select for diffs], Wed Feb 6 22:38:10 2019 UTC (5 years, 2 months ago) by oster
Branch: MAIN
CVS Tags: phil-wifi-20190609, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9
Changes since 1.68: +3 -3 lines
Diff to previous 1.68 (colored)

Correct printed IOCTL name that was incorrect since rev 1.5.

Revision 1.68 / (download) - annotate - [select for diffs], Mon Feb 4 09:31:22 2019 UTC (5 years, 2 months ago) by mrg
Branch: MAIN
Changes since 1.67: +24 -14 lines
Diff to previous 1.67 (colored)

- add the string length as an explicit parameter to get_time_string()
- remove casts when the same type is used on both sides
- expand hours_buffer[] to fit the range of hours in an 'int'
- add a work around for the sprintf() truncation checker that fails
  to detect that 'minutes' and 'seconds' have a small range

Revision 1.67 / (download) - annotate - [select for diffs], Sat Mar 24 19:41:35 2018 UTC (6 years ago) by nakayama
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330
Branch point for: phil-wifi
Changes since 1.66: +6 -6 lines
Diff to previous 1.66 (colored)

Follow the ioctl arg changes of RAIDFRAME_GET_COMPONENT_LABEL and
RAIDFRAME_CHECK_*_STATUS_EXT.

This should fix strange raidctl -s outputs reported in
current-users ML.

Revision 1.66 / (download) - annotate - [select for diffs], Thu Jan 18 00:32:49 2018 UTC (6 years, 3 months ago) by mrg
Branch: MAIN
CVS Tags: pgoyette-compat-base, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: pgoyette-compat
Changes since 1.65: +7 -4 lines
Diff to previous 1.65 (colored)

implement 32-bit compat support for raidframe.

convert several raidframe ioctls to be bitsize idempotent so that
they work the same in 32 and 64 bit worlds, allowing netbsd32 to
configure and query raid properly.  remove useless 'row' in a few
places.  add COMPAT_80 and put the old ioctls there.

raidframeio.h:
  RAIDFRAME_TEST_ACC
  - remove, unused
  RAIDFRAME_GET_COMPONENT_LABEL
  - convert to label not pointer to label
  RAIDFRAME_CHECK_RECON_STATUS_EXT
  RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT
  RAIDFRAME_CHECK_COPYBACK_STATUS_EXT
  - convert to progress info not pointer to info
  RAIDFRAME_GET_INFO
  - version entirely.
raidframevar.h:
  - rf_recon_req{} has row, flags and raidPtr removed (they're
    not a useful part of this interface.)
  - RF_Config_s{} and RF_DeviceConfig_s{} have numRow/rows removed.
  - RF_RaidDisk_s{} is re-ordered slightly to fix alignment
    padding - the actual data was already OK.
  - InstallSpareTable() loses row argument

rf_compat32.c has code for RF_Config_s{} in 32 bit mode, used
by RAIDFRAME_CONFIGURE and RAIDFRAME_GET_INFO32.

rf_compat80.c has code for rf_recon_req{}, RF_RaidDisk_s{} and
RF_DeviceConfig_s{} to handle RAIDFRAME_FAIL_DISK,
RAIDFRAME_GET_COMPONENT_LABEL, RAIDFRAME_CHECK_RECON_STATUS_EXT,
RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT,
RAIDFRAME_CHECK_COPYBACK_STATUS_EXT, RAIDFRAME_GET_INFO.

move several of the per-ioctl code blocks into separate functions.

add rf_recon_req_internal{} to replace old usage of global
rf_recon_req{} that had unused void * in the structure, ruining
it's 32/64 bit ABI.

add missing case for RAIDFRAME_GET_INFO50.

adjust raid tests to use the new .conf format, and add a case to
test the old method as well.

raidctl:
deal with lack of 'row' members in a couple of places.
fail request no longer takes row.
handle "START array" sections with just "numCol numSpare", ie
no "numRow" specified.  for now, generate old-style configuration
but update raidctl.8 to specify the new style (keeping reference
to the old style.)

note that: RF_ComponentLabel_s::{row,num_rows} and
RF_SingleComponent_s::row are obsolete but not removed yet.

Revision 1.65 / (download) - annotate - [select for diffs], Wed Jan 6 22:57:44 2016 UTC (8 years, 3 months ago) by wiz
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Changes since 1.64: +13 -12 lines
Diff to previous 1.64 (colored)

Use standard sort order for options.

Add -U to usage.

Revision 1.64 / (download) - annotate - [select for diffs], Wed Jan 6 17:41:36 2016 UTC (8 years, 3 months ago) by christos
Branch: MAIN
Changes since 1.63: +16 -3 lines
Diff to previous 1.63 (colored)

Access to the SET_LAST_UNIT ioctl.

Revision 1.63 / (download) - annotate - [select for diffs], Tue Sep 8 08:59:09 2015 UTC (8 years, 7 months ago) by bad
Branch: MAIN
Changes since 1.62: +5 -5 lines
Diff to previous 1.62 (colored)

Rename argument of rf_output_devname() from devname to name to avoid a
warning about shadowing a global symbol when compiled by buildrump.sh.
Discussed with mrg.

Revision 1.62 / (download) - annotate - [select for diffs], Tue Jul 21 05:54:44 2015 UTC (8 years, 9 months ago) by mrg
Branch: MAIN
Changes since 1.61: +12 -3 lines
Diff to previous 1.61 (colored)

convert "component*" into "absent" for "START disks" part of the
output from "raidctl -G".  now this actually works when fed back
into raidctl -[cC].

Revision 1.61 / (download) - annotate - [select for diffs], Tue Jun 30 17:02:14 2015 UTC (8 years, 9 months ago) by sborrill
Branch: MAIN
Changes since 1.60: +3 -3 lines
Diff to previous 1.60 (colored)

Compare correct length string for force option to -A

Revision 1.60 / (download) - annotate - [select for diffs], Fri Jun 26 01:16:54 2015 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.59: +3 -3 lines
Diff to previous 1.59 (colored)

&stars[offset] -> stars+offset.  It's shorter!

Coincidentally, the change also works around a gcc 5.1 bug which causes
a segmentation fault when trying to compile the longer version (guess
the compiler got exhausted, or something).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66345

Revision 1.59 / (download) - annotate - [select for diffs], Wed May 27 17:55:23 2015 UTC (8 years, 10 months ago) by christos
Branch: MAIN
Changes since 1.58: +12 -24 lines
Diff to previous 1.58 (colored)

use strtou

Revision 1.58 / (download) - annotate - [select for diffs], Wed May 27 15:31:15 2015 UTC (8 years, 10 months ago) by manu
Branch: MAIN
Changes since 1.57: +29 -5 lines
Diff to previous 1.57 (colored)

Better sanity check numbers given to raidctl(8)

Replace atoi(3) by strtol(3), and check that numbers are valid,
positive, and in int32_t range. The previous lack of check could
silently lead to the same serial being set to all RAID volumes
for instance because given numbers were bigger than INT_MAX. The
consequence is in an awful mess when RAIDframe would mix volumes...

Revision 1.57 / (download) - annotate - [select for diffs], Thu Apr 3 18:54:10 2014 UTC (10 years ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, netbsd-7-base
Branch point for: netbsd-7
Changes since 1.56: +14 -9 lines
Diff to previous 1.56 (colored)

Add the ability to "softroot" mount (i.e. mount root only when the raid
set contains the boot device), as opposed to "hardroot" (the previous
default which forces the raid to be root no matter what).

Revision 1.56 / (download) - annotate - [select for diffs], Sat Oct 19 01:09:59 2013 UTC (10 years, 6 months ago) by christos
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Changes since 1.55: +2 -4 lines
Diff to previous 1.55 (colored)

fix unused variable warnings.

Revision 1.55 / (download) - annotate - [select for diffs], Wed Oct 12 16:45:37 2011 UTC (12 years, 6 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-tag8, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, agc-symver-base, agc-symver
Branch point for: yamt-pagecache, tls-maxphys, netbsd-6
Changes since 1.54: +4 -7 lines
Diff to previous 1.54 (colored)

PR/45456: Tetsuya Isaki: Don't mix stdio and write.

Revision 1.54 / (download) - annotate - [select for diffs], Wed Sep 28 10:29:41 2011 UTC (12 years, 6 months ago) by mrg
Branch: MAIN
Changes since 1.53: +3 -3 lines
Diff to previous 1.53 (colored)

print the serial number as an unsigned number.

Revision 1.53 / (download) - annotate - [select for diffs], Mon Aug 29 14:35:03 2011 UTC (12 years, 7 months ago) by joerg
Branch: MAIN
Changes since 1.52: +3 -3 lines
Diff to previous 1.52 (colored)

Use __dead

Revision 1.52 / (download) - annotate - [select for diffs], Sat Feb 19 07:11:10 2011 UTC (13 years, 2 months ago) by enami
Branch: MAIN
CVS Tags: cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase
Changes since 1.51: +4 -4 lines
Diff to previous 1.51 (colored)

Define accessors for number of blocks and partition size in the
component label and use them where appropriate.  Disscussed on tech-kern.

Revision 1.51 / (download) - annotate - [select for diffs], Wed Feb 9 11:22:49 2011 UTC (13 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: bouyer-quota2-base
Changes since 1.50: +3 -3 lines
Diff to previous 1.50 (colored)

Exterminate a bug I created in 2009.

Revision 1.50 / (download) - annotate - [select for diffs], Wed Dec 15 18:37:55 2010 UTC (13 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231
Branch point for: bouyer-quota2
Changes since 1.49: +10 -21 lines
Diff to previous 1.49 (colored)

Use RUMPPRG.

ok Greg Oster

Revision 1.49 / (download) - annotate - [select for diffs], Mon Nov 8 12:42:35 2010 UTC (13 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.48: +7 -3 lines
Diff to previous 1.48 (colored)

Update RUMP_ACTION to use rumpclient.

The server must of course have some disks configured.  Let's say
we have this simple server with disks as a few sparse host files:

main()
{
        rump_init();
        rump_pub_etfs_register("/disk1", "./disk1.img", RUMP_ETFS_BLK);
        rump_pub_etfs_register("/disk2", "./disk2.img", RUMP_ETFS_BLK);
        rump_pub_etfs_register("/disk3", "./disk3.img", RUMP_ETFS_BLK);
        rump_pub_etfs_register("/disk4", "./disk4.img", RUMP_ETFS_BLK);
        pause();
}

And we run the server:

mainbus0 (root)
Kernelized RAIDframe activated
/disk1: hostpath ./disk1.img (97 GB)
/disk2: hostpath ./disk2.img (97 GB)
/disk3: hostpath ./disk3.img (97 GB)
/disk4: hostpath ./disk4.img (97 GB)

We can then configure the raid against the server:

> ./raidctl -c theraid.conf raid0

And lo, we have evidence of a level1 raid in the server dmesg:

raid0: RAID Level 1
raid0: Components: /disk1 /disk2 /disk3 /disk4
raid0: Total Sectors: 409599744 (199999 MB)

yea, i initialized it already in a previous run:

> ./raidctl -S raid0
Reconstruction is 100% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.

Revision 1.48 / (download) - annotate - [select for diffs], Tue Mar 16 03:23:47 2010 UTC (14 years, 1 month ago) by jld
Branch: MAIN
Changes since 1.47: +11 -4 lines
Diff to previous 1.47 (colored)

Give a more polite message for `raidctl -m` on a non-parity RAID set.

Revision 1.47 / (download) - annotate - [select for diffs], Sat Mar 13 13:45:05 2010 UTC (14 years, 1 month ago) by plunky
Branch: MAIN
Changes since 1.46: +4 -4 lines
Diff to previous 1.46 (colored)

fix sign-compare issue

Revision 1.46 / (download) - annotate - [select for diffs], Sat Mar 13 07:21:37 2010 UTC (14 years, 1 month ago) by jld
Branch: MAIN
Changes since 1.45: +3 -3 lines
Diff to previous 1.45 (colored)

Exclude parity map regions that don't actually exist from the dirty region count
in `raidctl -m`.  Makes for less confusing output during `raidctl -i`.

Revision 1.45 / (download) - annotate - [select for diffs], Wed Jan 27 18:34:02 2010 UTC (14 years, 2 months ago) by christos
Branch: MAIN
Changes since 1.44: +21 -46 lines
Diff to previous 1.44 (colored)

use warn/err appropriately.

Revision 1.44 / (download) - annotate - [select for diffs], Wed Jan 27 17:02:06 2010 UTC (14 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.43: +3 -3 lines
Diff to previous 1.43 (colored)

error message: \n\n -> \n

Revision 1.43 / (download) - annotate - [select for diffs], Thu Dec 10 20:20:59 2009 UTC (14 years, 4 months ago) by jld
Branch: MAIN
CVS Tags: matt-premerge-20091211
Changes since 1.42: +3 -3 lines
Diff to previous 1.42 (colored)

Slight change to the wording of the parity map info: the parity is
"marked clean" after however much inactivity; it is *actually* clean
as soon as the component disks all do their thing (on the order of ms,
usually), just the same as before.

The bikeshed is now less of a taupe and more of an ecru.

Revision 1.42 / (download) - annotate - [select for diffs], Tue Nov 17 18:54:26 2009 UTC (14 years, 5 months ago) by jld
Branch: MAIN
Changes since 1.41: +134 -5 lines
Diff to previous 1.41 (colored)

Finally commit the RAIDframe parity map Summer Of Code project.

Drastically reduces the amount of time spent rewriting parity after an
unclean shutdown by keeping better track of which regions might have had
outstanding writes.  Enabled by default; can be disabled on a per-set
basis, or tuned, with the new raidctl(8) commands.

Discussed on tech-kern@ to a general air of approval; exhortations to
commit from mrg@, christos@, and others.

Thanks to Google for their sponsorship, oster@ for mentoring the
project, assorted developers for trying very hard to break it, and
probably more I'm forgetting.

Revision 1.41 / (download) - annotate - [select for diffs], Sun Oct 11 12:14:05 2009 UTC (14 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.40: +14 -2 lines
Diff to previous 1.40 (colored)

Support RUMP_ACTION, i.e. compile-time switch to make this execute
rump syscalls to configure raidframe in a rump kernel.

Revision 1.40 / (download) - annotate - [select for diffs], Mon Jan 26 11:34:12 2009 UTC (15 years, 2 months ago) by tron
Branch: MAIN
CVS Tags: jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend
Changes since 1.39: +3 -3 lines
Diff to previous 1.39 (colored)

Use correct format to print the "numBlocks" element in a RAIDframe
component label. raidctl(8) should now print the correct number of
blocks for RAID sets larger than 1TB.

Patch supplied by Bernhard Moellemann in PR bin/40479.

Revision 1.39 / (download) - annotate - [select for diffs], Mon Apr 28 20:23:09 2008 UTC (15 years, 11 months ago) by martin
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, netbsd-5-base, netbsd-5-0-RC1, mjf-devfs2-base, matt-mips64-base2, hpcarm-cleanup-nbase
Branch point for: netbsd-5
Changes since 1.38: +2 -9 lines
Diff to previous 1.38 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.38 / (download) - annotate - [select for diffs], Thu Jun 2 00:06:14 2005 UTC (18 years, 10 months ago) by lukem
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, mjf-devfs-base, mjf-devfs, matt-mips64-base, matt-mips64, matt-armv6-prevmlocking, matt-armv6-nbase, matt-armv6-base, matt-armv6, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-base, hpcarm-cleanup, cube-autoconf-base, cube-autoconf, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-pf42, netbsd-4-0, netbsd-4, mjf-devfs2
Changes since 1.37: +5 -2 lines
Diff to previous 1.37 (colored)

appease gcc -Wuninitialized

Revision 1.37 / (download) - annotate - [select for diffs], Sun May 1 22:37:34 2005 UTC (18 years, 11 months ago) by oster
Branch: MAIN
Changes since 1.36: +5 -22 lines
Diff to previous 1.36 (colored)

Cleanup the meter code a bit -- a bunch of stuff wasn't even being used.
Fix a few overflow issues.  (Thanks to beefy and pooka, among others)

Revision 1.36 / (download) - annotate - [select for diffs], Wed Feb 9 14:21:37 2005 UTC (19 years, 2 months ago) by xtraeme
Branch: MAIN
CVS Tags: netbsd-3-base
Branch point for: netbsd-3
Changes since 1.35: +44 -91 lines
Diff to previous 1.35 (colored)

Kill __P(), use ANSI function declarations; WARNS=3.

Revision 1.35 / (download) - annotate - [select for diffs], Sun Feb 29 20:40:29 2004 UTC (20 years, 1 month ago) by oster
Branch: MAIN
CVS Tags: netbsd-2-base, netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1, netbsd-2-0-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2-0, netbsd-2
Changes since 1.34: +3 -3 lines
Diff to previous 1.34 (colored)

As suggested by Paul Ripke, have raidctl use raw devices by default.

Revision 1.34 / (download) - annotate - [select for diffs], Tue Oct 21 02:31:43 2003 UTC (20 years, 6 months ago) by fvdl
Branch: MAIN
Changes since 1.33: +3 -3 lines
Diff to previous 1.33 (colored)

Don't compare argc to NULL.

Revision 1.33 / (download) - annotate - [select for diffs], Mon Jun 23 11:53:40 2003 UTC (20 years, 10 months ago) by agc
Branch: MAIN
Changes since 1.32: +7 -1 lines
Diff to previous 1.32 (colored)

Add NetBSD RCS Ids.

Revision 1.32 / (download) - annotate - [select for diffs], Tue Apr 15 07:36:14 2003 UTC (21 years ago) by itojun
Branch: MAIN
Changes since 1.31: +14 -12 lines
Diff to previous 1.31 (colored)

correct questionable use of strncpy().

Revision 1.31 / (download) - annotate - [select for diffs], Sat Nov 16 17:22:36 2002 UTC (21 years, 5 months ago) by oster
Branch: MAIN
CVS Tags: fvdl_fs64_base
Changes since 1.30: +3 -8 lines
Diff to previous 1.30 (colored)

Cleanup and update usage().

Revision 1.30 / (download) - annotate - [select for diffs], Thu Mar 21 00:27:11 2002 UTC (22 years, 1 month ago) by simonb
Branch: MAIN
CVS Tags: netbsd-1-6-base, netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1, netbsd-1-6-PATCH002-RELEASE, netbsd-1-6-PATCH002-RC4, netbsd-1-6-PATCH002-RC3, netbsd-1-6-PATCH002-RC2, netbsd-1-6-PATCH002-RC1, netbsd-1-6-PATCH002, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001, netbsd-1-6
Changes since 1.29: +9 -2 lines
Diff to previous 1.29 (colored)

Open the raid device read-only for the commands that don't need
write access.  With the default set up this allows users in group
operator to query the status of the raid devices.

Fixes PR admin/15840.

Revision 1.29 / (download) - annotate - [select for diffs], Thu Oct 4 16:02:08 2001 UTC (22 years, 6 months ago) by oster
Branch: MAIN
Changes since 1.28: +4 -2 lines
Diff to previous 1.28 (colored)

rf_configure.c
 - remove dependence on stuff in sys/dev/raidframe
 - now rely on <dev/raidframe/*>
 - bring in some needed prototypes for local functions
 - nuke RF_ASSERT's.
 - drag in some needed RF_ERRORMSG's

raidctl.c
 - rely on <dev/raidframe/*>
 - welcome to the New Way of doing RAIDframe #includes.

(No functional changes.)

Revision 1.28 / (download) - annotate - [select for diffs], Wed Sep 26 02:59:40 2001 UTC (22 years, 6 months ago) by oster
Branch: MAIN
Changes since 1.27: +2 -2 lines
Diff to previous 1.27 (colored)

Since this is the only place it's used, nuke RF_DEV2RAIDID and
replace it with DISKUNIT.

Revision 1.27 / (download) - annotate - [select for diffs], Tue Jul 10 01:30:52 2001 UTC (22 years, 9 months ago) by lukem
Branch: MAIN
Changes since 1.26: +83 -3 lines
Diff to previous 1.26 (colored)

* add -G, which lists the configuration of the given raid set in the
  same configuration format that -c and -C use.
  this is useful if you're using autoconfig and you've misplaced the
  /etc/raidXXX.conf files
* "filesystem" -> "file system", and other man page cleanups.

Revision 1.26 / (download) - annotate - [select for diffs], Mon Feb 19 22:56:22 2001 UTC (23 years, 2 months ago) by cgd
Branch: MAIN
Changes since 1.25: +29 -29 lines
Diff to previous 1.25 (colored)

convert to use getprogname()

Revision 1.25 / (download) - annotate - [select for diffs], Tue Oct 31 14:18:39 2000 UTC (23 years, 5 months ago) by lukem
Branch: MAIN
Changes since 1.24: +23 -38 lines
Diff to previous 1.24 (colored)

- use opendisk(3) instead of homegrown solution
- separate items in -s output with commas; much easier to read
- add maxOutstanding (aka queue len) to -s output
- sort #includes (per knf)

Revision 1.24 / (download) - annotate - [select for diffs], Sat Aug 19 19:51:17 2000 UTC (23 years, 8 months ago) by oster
Branch: MAIN
Changes since 1.23: +2 -1 lines
Diff to previous 1.23 (colored)

It is impolite to poll in a tight loop.  (Thanks to Christos for noting
the problem.)

Revision 1.23 / (download) - annotate - [select for diffs], Sat Jun 3 16:59:36 2000 UTC (23 years, 10 months ago) by oster
Branch: MAIN
CVS Tags: netbsd-1-5-base, netbsd-1-5-ALPHA2
Branch point for: netbsd-1-5
Changes since 1.22: +7 -3 lines
Diff to previous 1.22 (colored)

In certain cases (e.g. where it makes sense) read/display the
component label for spare disks too.

Revision 1.22 / (download) - annotate - [select for diffs], Wed May 31 00:47:30 2000 UTC (23 years, 10 months ago) by oster
Branch: MAIN
Changes since 1.21: +5 -2 lines
Diff to previous 1.21 (colored)

Make sure we handle the 'no progress' case properly.
Thanks to Manuel Bouyer for noting the problem (and supplying a patch!).

Revision 1.21 / (download) - annotate - [select for diffs], Sun May 28 23:12:01 2000 UTC (23 years, 10 months ago) by oster
Branch: MAIN
Changes since 1.20: +29 -1 lines
Diff to previous 1.20 (colored)

Obtaining component labels from spares is not supported yet, but add
some code that makes some progress in that direction.

Revision 1.20 / (download) - annotate - [select for diffs], Sun May 28 22:22:11 2000 UTC (23 years, 10 months ago) by oster
Branch: MAIN
Changes since 1.19: +10 -33 lines
Diff to previous 1.19 (colored)

Cleanup ETA calculation stuff.

Revision 1.19 / (download) - annotate - [select for diffs], Sun May 28 00:49:35 2000 UTC (23 years, 10 months ago) by oster
Branch: MAIN
Changes since 1.18: +54 -26 lines
Diff to previous 1.18 (colored)

Have raidctl use the fine-grained progress info.  ETA calculation stuff
needs to be cleaned up.

Revision 1.18 / (download) - annotate - [select for diffs], Tue May 23 00:46:53 2000 UTC (23 years, 11 months ago) by thorpej
Branch: MAIN
CVS Tags: minoura-xpg4dl-base
Branch point for: minoura-xpg4dl
Changes since 1.17: +27 -33 lines
Diff to previous 1.17 (colored)

Build with WARNS=2.

Revision 1.17 / (download) - annotate - [select for diffs], Tue May 23 00:33:13 2000 UTC (23 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.16: +7 -7 lines
Diff to previous 1.16 (colored)

ioctl(2) commands are u_long, so do_meter() must take the same.

Revision 1.16 / (download) - annotate - [select for diffs], Fri Apr 14 06:03:40 2000 UTC (24 years ago) by simonb
Branch: MAIN
Changes since 1.15: +1 -3 lines
Diff to previous 1.15 (colored)

Don't declare 'extern opt*' getopt variables.

Revision 1.15 / (download) - annotate - [select for diffs], Thu Mar 23 14:50:36 2000 UTC (24 years, 1 month ago) by oster
Branch: MAIN
Changes since 1.14: +3 -1 lines
Diff to previous 1.14 (colored)

When displaying component labels, indicate whether or not the set is
marked as being the one that should be used for the root partition.

Revision 1.14 / (download) - annotate - [select for diffs], Fri Feb 25 22:24:11 2000 UTC (24 years, 1 month ago) by oster
Branch: MAIN
Changes since 1.13: +27 -30 lines
Diff to previous 1.13 (colored)

Reorganize a few things.  Make the general status ('-s') a bit more verbose
by including component labels, and less verbose by removing some other stuff.

Revision 1.13 / (download) - annotate - [select for diffs], Thu Feb 24 23:52:46 2000 UTC (24 years, 1 month ago) by oster
Branch: MAIN
Changes since 1.12: +4 -1 lines
Diff to previous 1.12 (colored)

Document the new autoconfiguration switches, and update the Usage: line.
More doc changes expected soon.

Revision 1.12 / (download) - annotate - [select for diffs], Sun Feb 13 04:55:30 2000 UTC (24 years, 2 months ago) by oster
Branch: MAIN
Changes since 1.11: +82 -12 lines
Diff to previous 1.11 (colored)

- support for autoconfig setup and / on RAID setup
- new parts are still work-in-progress (no docs yet either)

Revision 1.11 / (download) - annotate - [select for diffs], Sun Jan 9 03:06:35 2000 UTC (24 years, 3 months ago) by oster
Branch: MAIN
Changes since 1.10: +1 -2 lines
Diff to previous 1.10 (colored)

Nuke a debugging printf that I forgot to remove before last commit.

Revision 1.10 / (download) - annotate - [select for diffs], Wed Jan 5 03:02:41 2000 UTC (24 years, 3 months ago) by oster
Branch: MAIN
Changes since 1.9: +319 -42 lines
Diff to previous 1.9 (colored)

- add '-v' (Verbose) option, which, most notably, provides
a spiffy lukemftp-inspired progress bar for parity re-writing,
reconstructs, copybacks, et al.

- make 'raidctl -P' wait until the parity has been updated before exiting
(it waited previously, but only because the parity re-write ioctl wouldn't
exit until the parity was successfully re-written)

Revision 1.9 / (download) - annotate - [select for diffs], Sun Aug 15 03:18:19 1999 UTC (24 years, 8 months ago) by oster
Branch: MAIN
CVS Tags: wrstuden-devbsize-base, wrstuden-devbsize-19991221, wrstuden-devbsize, comdex-fall-1999-base, comdex-fall-1999
Changes since 1.8: +2 -2 lines
Diff to previous 1.8 (colored)

rf_MakeConfig succeeds only if it returns 0, not if it returns
values 0 or greater.

Revision 1.8 / (download) - annotate - [select for diffs], Sun Aug 15 03:15:00 1999 UTC (24 years, 8 months ago) by oster
Branch: MAIN
Changes since 1.7: +9 -1 lines
Diff to previous 1.7 (colored)

Display the parity status as part of the status ('-s') display.

Revision 1.7 / (download) - annotate - [select for diffs], Tue Aug 10 18:21:39 1999 UTC (24 years, 8 months ago) by oster
Branch: MAIN
Changes since 1.6: +34 -3 lines
Diff to previous 1.6 (colored)

Add two more options to raidctl:
  -p    check (and return) the status of the parity
  -P    check the status of the parity, and rebuild if necessary

Addresses PR#7494

Revision 1.6 / (download) - annotate - [select for diffs], Tue Mar 2 03:13:59 1999 UTC (25 years, 1 month ago) by oster
Branch: MAIN
CVS Tags: netbsd-1-4-base, netbsd-1-4-RELEASE, netbsd-1-4-PATCH003, netbsd-1-4-PATCH002, netbsd-1-4-PATCH001, netbsd-1-4
Changes since 1.5: +134 -101 lines
Diff to previous 1.5 (colored)

Update for recent changes: component labels, clean bits, adding hot
spares, and rebuilding components in-place.  Re-arrange the
letters/options to make more sense (and make better use of the alphabet).

Revision 1.5 / (download) - annotate - [select for diffs], Wed Feb 24 00:03:12 1999 UTC (25 years, 2 months ago) by oster
Branch: MAIN
Changes since 1.4: +207 -17 lines
Diff to previous 1.4 (colored)

Clean things up a bit.  Teach raidctl a little about component labels
and hot-adding of spares.  New code is there, but not enabled (yet).

Revision 1.4 / (download) - annotate - [select for diffs], Thu Feb 4 14:50:31 1999 UTC (25 years, 2 months ago) by oster
Branch: MAIN
Changes since 1.3: +1 -0 lines
Diff to previous 1.3 (colored)

Add missing NetBSD RCS ID's!  Thanks to SAITOH Masanobu (msaitoh@netbsd.org)
for pointing this out.

Revision 1.3 / (download) - annotate - [select for diffs], Tue Jan 26 02:40:02 1999 UTC (25 years, 2 months ago) by oster
Branch: MAIN
Changes since 1.2: +2 -0 lines
Diff to previous 1.2 (colored)

Take care of a few minor things due to the major RAIDframe cleanup.

Again, no functionality changes.

Revision 1.2 / (download) - annotate - [select for diffs], Tue Jan 12 22:58:10 1999 UTC (25 years, 3 months ago) by mjacob
Branch: MAIN
Changes since 1.1: +1 -0 lines
Diff to previous 1.1 (colored)

recover from errno.h changes

Revision 1.1 / (download) - annotate - [select for diffs], Fri Nov 13 04:34:02 1998 UTC (25 years, 5 months ago) by oster
Branch: MAIN

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.

raidctl is our userland configuration tool for RAIDframe.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>