summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe
AgeCommit message (Collapse)Author
2010-03-14For RAID sets which have no parity (i.e., RAID level 0) and therefore canjld
never have a parity map, make the parity map ioctls fail with EINVAL. This makes `raidctl -m` print a scary-looking error on such sets, which is an improvement over the previous behavior of falsely claiming that the parity map would be enabled on the next configuration.
2010-03-03Don't attempt to read or write component label stuff from/to 'dead disks'.oster
Update used spares with the correct parity map bits too. Addresses PR#42904 by Louis Guillaume. Fix confirmed by submitter. Thanks!
2010-03-01When setting up a non-autoconfigured RAID set, fail a component if thejld
attempt to read its label fails. OKed by oster@.
2010-03-01Don't merge a good parity map with random stuff in the event that theoster
first component is missing. (Since the merging just OR's the maps, this isn't that big of a deal, as it will just over-estimate the amount of checking that needs to be done.)
2009-12-01KNF: whitespace.dyoung
2009-11-26include sys/param.h first, as is the conventionpooka
2009-11-26On the ARM platform, sys/param.h needs to be before sys/mutex.h, otherwisekenh
sys/device.h will fail compilation (struct kmutex will not be defined completely).
2009-11-21whitespace policechristos
2009-11-17Finally commit the RAIDframe parity map Summer Of Code project.jld
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.
2009-11-05Use deviter(9) instead of accessing alldevs directly. Compile-tested,dyoung
only.
2009-10-13raidframe doesn't need sys/user.h (or at least one would hope so ;)pooka
2009-07-23Move the RAID shutdown to the raid(4) detachment routine, and usedyoung
config_detach(9) to shutdown a RAID. Detach raid(4) units at shutdown. Ok by oster@.
2009-06-10Attempt bailout if config_attach_pseudo() fails. Otherwise, a fewpooka
moments later, we'll take a fatal plunge because sc_dev is null.
2009-06-06Fix my previous commit.haad
2009-06-05Add support for DIOCGDISKINFO to disk like device drivers. Changehaad
partutil.c::getdiskinfo to use it to get disk geometry info. Use DIOCGWEDGEINFO ioctl to get information about partition size, if disk driver doesn't support it use old DIOCGDINFO. This patch adds support for wedge like devices(lvm logical volumes, ZFS zvol partitions) to newfs and other tools. No objections on tech-userlevel@.
2009-05-12struct cfdata * -> cfdata_t, no functional changes intended.cegger
2009-05-02Fix assignment of SUsPerPU and add SUsPerRU assignment. Reported byoster
and fix from Anthony Mallet in PR#41328. Thanks!
2009-05-01Use device_t, cfdata_t, device_private().dyoung
2009-04-03Switch various printfs from %ld and %d to PRIu64, etc. to be more consistentsborrill
about types (for instance uint32_t was being printed with %d).
2009-03-23Rework/simplify the disk queuing code. A bunch of this was stilloster
holdovers from the simulator and would never be seen/used in-kernel.
2009-03-18Ansify function definitions w/o arguments. Generated with sed.cegger
2009-03-15ansify function definitionscegger
2009-03-14ANSIfy another 1261 function definitions.dsl
The only ones left in sys are beyond by sed script! (or in sys/dist or sys/external) Mostly they have function pointer parameters.
2009-03-14Change about 4500 of the K&R function definitions to ANSI ones.dsl
There are still about 1600 left, but they have ',' or /* ... */ in the actual variable definitions - which my awk script doesn't handle. There are also many that need () -> (void). (The script does handle misordered arguments.)
2009-03-14'boot -z' bogonsad
2009-02-28Nuke a DIAGNOSTIC check that is no longer useful, even for DIAGNOSTIC.oster
2009-02-28It seems that some SCSI drivers can block while the spinlock on a givenoster
disk queue is being held. Work around this by dropping the lock before bdev_strategy(), and re-grabbing the lock afterwards. This is a temporary measure until I get to gutting this queue locking code. There has been some success with this in addressing PR#39993. This patch is from Antti Kantee. Thanks!
2009-02-11If we see a RF_RECON_WRITE_ERROR event we know a write has finished andoster
we need to account for that. Failure to do so means we can end up waiting forever for writes we think are outstanding, but which have already completed. Addresses the RAIDframe part of PR#40569. Thanks to Matthias Scheler for reporting the issue and verifying the fix.
2009-02-07Nuke #define MAXNSTRIPES which is no longer useful.oster
2009-02-07Be consistent with wd.c and don't complain loudly if the underlyingoster
device doesn't support flushing the cache. Fixes an issue (reported privately) where ST39120A drives are not capable of flushing the cache, and RAIDFrame was incessantly complaining.
2009-01-18add compat50 ioctls.christos
2009-01-13g/c BUFQ_FOO() macros and use bufq_foo() directly.yamt
2009-01-11Implement DIOCCACHESYNC for RAIDframe too.oster
2008-12-20When unconfiguring an array where a reconstruct is in progress, abortoster
the reconstruct and wait for IOs to drain before pulling the plug. Should fix the panic reported by der Mouse on tech-kern.
2008-12-17kill MALLOC and FREE macros.cegger
2008-11-18_KERNEL_OPTad
2008-09-28Undo previous change to an #if 0. The code does belong to theoster
distributed sparing bits, but no-one has compile-tested the code. Un-breaks the ALL build.
2008-09-27Cleanup some of the spare table stuff. It is not needed in the generaloster
case, and is only needed for parity declustering with distributed sparing.
2008-09-23Nuke unneeded printf(). Spotted by pooka@.oster
2008-06-17Mark a buffer `busy` in getnewbuf() when it came from the pool_cache sincereinoud
its not on a free list. Also change buf_init() to not automatically mark buffers `busy' since this only makes sense for bufcache buffers. Mark all buf_init'd buffers 'busy' on the places where they ought to be flagged as such to not confuse the buffer cache. Fixes PR 38923.
2008-06-16We don't care about md devices here. Fixes issue reported by Jukka Salmioster
on current-users. Thanks!
2008-06-10use new "defpseudodev" where appropriate, and remove dummy interfacedrochner
attribute definitions which were only to trick config(8)
2008-06-07- Use bdev_strategy() instead of VOP_STRATEGY().oster
- Don't bother taking the v_interlock or bumping b_vp->v_numoutput -- there won't be any other writers for this bp, and so there's no point doing this locking song'n'dance. Patch from Juergen Hannken-Illjes. Thanks!!! Addresses PR#38856. With this change I've been unable to replicate the hard hangs.
2008-05-20Add in a missing "bp->b_resid = bp->b_bcount" in the EIO case.oster
Spotted by Juergen Hannken-Illjes. Thanks!
2008-05-19Re-work some of the guts of the reconstruction code.oster
Reconmap used to have one pointer for every reconstruction unit. This does not scale well in the land of 1TB disks, where some 100MB+ of "status pointers" are required for typical configurations. Convert the reconstruction code to use a "sliding status window" which will scale nicely regardless of the number of stripes/reconstruction units in the RAID set. Convert the main reconstruction loop to rebuild the array in chunks rather than in one big lump. As part of these changes, introduce a function to kick any waiters on the head separation callback list, and use that in the main reconstruction event queue to wake up the waiters if things have stalled. (I believe this may fix a race condition that could occur at at least at the very end of a disk during reconstruction under heavy IO load.) Thanks to Brian Buhrow for all his help, support, and patience in testing these changes.
2008-05-04Both StripeUnitsPerParityUnit and StripeUnitsPerReconstructUnit needoster
to be positive integers.
2008-04-28Remove clause 3 and 4 from TNF licensesmartin
2008-04-20Cleanup function prototypes. No functional change.oster
2008-04-20Introduce a function to return the default head separation for RAID 1oster
sets. This helps ensure that the sliding status window (coming soon!) for reconstructs will always be correct.
2008-04-15A forced recon read should not default to indicating that the readsoster
for that disk have stopped, since this will bump us out of the normal reconstruction loop prematurely. Fixes the (mostly cosmetic) bug where the reconstruction status values stop updating, and from raidctl it appears that reconstruction has totally stalled (which it actually hasn't -- the reconstruction does complete properly, but not in the normal way).