summaryrefslogtreecommitdiffstats
path: root/sbin/mdconfig/mdconfig.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix a long-standing deadlock issue with vnode backed md(4) devices:phk2004-03-101-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | On vnode backed md(4) devices over a certain, currently undetermined size relative to the buffer cache our "lemming-syncer" can provoke a buffer starvation which puts the md thread to sleep on wdrain. This generally tends to grind the entire system to a stop because the event that is supposed to wake up the thread will not happen until a fair bit of the piled up I/O requests in the system finish, and since a lot of those are on a md(4) vnode backed device which is currently waiting on wdrain until a fair amount of the piled up ... you get the picture. The cure is to issue all VOP_WRITES on the vnode backing the device with IO_SYNC. In addition to more closely emulating a real disk device with a non-lying write-cache, this makes the writes exempt from rate-limited (there to avoid starving the buffer cache) and consequently prevents the deadlock. Unfortunately performance takes a hit. Add "async" option to give people who know what they are doing the old behaviour.
* Do not compare unsigned int values with ULONG_MAX. The comparison iskan2003-07-111-1/+1
| | | | always false on 64bit platforms and GCC 3.3.1 issues warning there.
* Add "-n" argument, which causes mdconfig to simply print the unitrwatson2003-06-111-5/+11
| | | | | | number X, rather than mdX, making it easier to script tests that use md devices but don't want to make assumptions about any existing md use (such as in diskless environments).
* Add a couple of undocumented test options to MD(4) to aid in regressionphk2003-04-091-1/+11
| | | | testting of GEOM.
* Give clearer diagnostics on some cases of invalidyar2003-04-011-0/+6
| | | | | | | combinations of mdconfig(8) command-line arguments. Make mdconfig(8) accept "-a -f file -o options" equally with "-a -f file" (assuming "-t vnode".)
* Add a "-S sectorsize" option to enable Kirk to find a bug :-)phk2003-03-031-2/+7
|
* Don't use the kern.disks sysctl to find a list of md devices, use thephk2003-01-271-41/+7
| | | | | | MDIOCLIST ioctl instead. Spotted by: keramida
* Make sure strsep() gets a nul-terminated string.keramida2002-10-101-1/+2
| | | | Reviewed by: phk
* Don't use NULL where you really mean 0 to sysctlbyname.imp2002-08-211-1/+1
|
* Usage style sweep: spell "usage" with a small 'u'.des2002-04-221-1/+1
| | | | | Also change one case of blatant __progname abuse (several more remain) This commit does not touch anything in src/{contrib,crypto,gnu}/.
* Revert 1.20:mike2002-03-211-2/+0
| | | | | Memory disks may be used for other purposes besides newfs(8), so it isn't helpful to require the minimum size meet newfs(8)'s criteria.
* Provide a proper error message in mdconfig(8) when a filesystem is toomike2002-03-211-0/+2
| | | | small, instead of a less meaningful error in newfs(8).
* Actually make use of the md_version field of 'struct mdio'. In orderdd2001-12-201-0/+2
| | | | | | not to needlessly break compatibility, decrement MDIOVERSION to 0. Approved by: phk
* Move all the prototypes to one place.dd2001-08-071-3/+2
|
* Introduce a force option, MD_FORCE, that instructs the driver todd2001-08-071-0/+4
| | | | | | | | | | | | | | | | bypass some extra anti-foot-shooting measures. Currently, its only effect is to allow detaching a device while it's still open (e.g., mounted). This is useful for testing how the system reacts to a disk suddenly going away, which can happen with some removeable media. At this point, the force option is only checked on detach, so it would've been possible to allow the option to be passed with the MDIOCDETACH operation. This was not done to allow the possibility of having the force flag influence other tests in the future, which may not necessarily deal with detaching the device. Reviewed by: sobomax Approved by: phk
* Use MD_NAME and MDCTL_NAME constants where appropriate.dd2001-07-181-1/+2
|
* Constify mdmaybeload(), add a prototype for usage(), and get rid of add2001-06-211-3/+5
| | | | sizeof(int) == sizeof(long) assumption; clamp down with WARNS=2.
* Don't assume the length of MD_NAME is 2.dd2001-06-211-2/+2
|
* Fail if -s isn't specified for an MD_MALLOC or MD_SWAP disk; thedd2001-06-211-1/+7
| | | | | | | | | | driver itself obviously won't configure such a disk, but the error returned (EDOM) is more cryptic to the average user than it should be. Also assert that the argument to -u is in fact a valid unit; don't just accept any string to mean 0. Approved by: phk
* In the absence of explicit ``-t type'' option assume that ``-f file''sobomax2001-03-091-1/+6
| | | | | | implies ``-t vnode''. Approved by: phk
* 1) If mdconfig isn't given an action argument, it assumes detach.phk2001-03-091-4/+5
| | | | | | | | | 2) Running `mdconfig -l` without any attached devices results in mdconfig printing "md0" to standard output. Submitted by: dd [1] [1] no, not "dd(1)" but "Dima Dorfman"
* Remove "autounit" from settable options, it's the default unless youphk2001-02-261-5/+1
| | | | | | specify -u. Spotted by: dcs
* Forgot to remove unneeded "intcmp" function.phk2001-02-251-8/+0
|
* Make "md" and "mdctl" macroized parameters.phk2001-02-251-10/+124
| | | | | | Implement "-l" option to mdconfig which can list one or all md devices. Submitted by: Dima Dorfman <dima@unixfreak.org>
* Make md/mdconfig do kld.phk2001-02-241-0/+36
| | | | Submitted by: dcs
* Strip optional prefixes "/dev/" and "md" from the -u argument.phk2001-01-311-0/+5
|
* Duh, the version of mdconfig.c I committed came from the wrong machine.phk2001-01-281-1/+1
| | | | | | | Commit the right version, but without the -b option which is too evil for the present. Remove -b and preload from the manpage as well.
* Add padding space and a version number to the md_ioctl structre for futurephk2001-01-011-1/+1
| | | | | | | | | | | | extension. Add ability to create a preload disk giving an address and a length (suggested by imp) Fix bug relating to very small md(4) devices. Update md.c copyright to reflect the status of code copied from vn.c. (noticed by dillon)
* This is the first snapshot of the new all-singing-and-dancing md(4).phk2000-12-311-6/+13
| | | | | | Using the mdconfig(8) program you can now configure memory disks on malloc(9), swap or a file/vnode. preloaded md disks also work as usual.
* Improve cmdline parsing and messages.phk2000-12-311-19/+64
| | | | | Add a rudimentary man-page. (I'm no mdoc wizard, feel free to attack my mistakes and blunders)
* Preliminary scaffolding for the new integrated vn+md device driver.phk2000-12-281-0/+101
I decided to work on the md(4) driver and integrate the vn(4) functionality into it mainly based on the name being more suitable. Ideally 'vd' as in "virtual disk" would probably be the most logical but our sound-master pointed out that this would cause uncontrollable fits of giggles in the brits. Another complication would the needed changes to the ramdisk boot/root functionality. The vn driver will stay around for some time after I complete this merge for transition reasons, and I'll make it whine to people that they should migrate to the md(4) driver for some time before it dies. The kernel part of the new md(4) driver will be committed after more testing.
OpenPOWER on IntegriCloud