summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe
AgeCommit message (Collapse)Author
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).
2008-04-14Print out the status value if a reconstruction read fails.oster
Don't print out write promotions during reconstruct unless we are debugging reconstructs.
2008-04-14Fix display of total number of sectors if > 2^32 on 32-bit machinessborrill
2008-04-05use aprint_*_dev and device_xnamecegger
2008-03-21Catch up with descriptor handling changes. See kern_descrip.c revisionad
1.173 for details.
2008-02-12rf_debugMem.c: remove unused 'rc' variable for RF_DEBUG_MEM.oster
rf_driver.c: minor comment tweak. Improve debugging output in RF_DEBUG_QUIESCE. rf_states.c: fix argument to rf_PrintDAGList() in the RF_DEBUG_VALIDATE_DAG case. Changes from Olivier Cherrier. Thanks!!
2008-01-26In a land before time, when kernel processes roamed the system, weoster
needed to keep track of the kernel process that opened a device in order to close it with the right credentials. Flash forward to today where curlwp is now quite sufficient.
2008-01-04Start detangling lock.h from intr.h. This is likely to cause short termad
breakage, but the mess of dependencies has been regularly breaking the build recently anyhow.
2008-01-02Merge vmlocking2 to head.ad
2007-12-18Fix a 'use after free' issue with wedges and RAIDframe.oster
Problem reported and fix tested by Jeff Rizzo (Thanks!).
2007-12-11Use CFATTACH_DECL_NEW instead of CFATTACH_DECL... ICB wisdomoster
is that this will fix the config_devalloc panic.
2007-12-05lockmgr -> mutexad
2007-12-01aprintifyjmcneill
2007-11-26Remove the "struct lwp *" argument from all VFS and VOP interfaces.pooka
The general trend is to remove it from all kernel interfaces and this is a start. In case the calling lwp is desired, curlwp should be used. quick consensus on tech-kern
2007-11-17Nuke debugging output that is a) misleading at best, andoster
b) often just wrong. Thanks to wiz for catching this.
2007-11-13don't include <sys/namei.h> unnecessarily.yamt
2007-11-08We need to initialize dk_driver as well. Thanks to Ronald Roskensoster
for reporting the problem and testing the fix.
2007-11-01Implement support for drvctl in RAIDframe. Thanks to jnemeth@ foroster
initial patch.
2007-10-08Merge brelse() changes from the vmlocking branch.ad
2007-10-08Merge disk init changes from the vmlocking branch. These seperate init /ad
destroy of 'struct disk' from attach / detach.
2007-10-05Implement dumping kernel cores to RAID 1 sets. The component usedoster
for the dump is selected in this order of preference: 1) the master 2) a used_spare of the master 3) the slave 4) a used_spare of the slave
2007-09-21Fix wording in a comment and correct a debug line. From Olivier Cherrieroster
(via private mail). Thanks!
2007-09-16Make a couple of variables 64-bit quantities to avoid overflow issuesoster
when arrays have a large number of stripes. Remove unused variable (recon_stripes_done). Thanks to Dieter Roelants for the report, suggestions, and testing. Addresses PR#36878.
2007-07-29It's not a good idea for device drivers to modify b_flags, as they don'tad
need to understand the locking around that field. Instead of setting B_ERROR, set b_error instead. b_error is 'owned' by whoever completes the I/O request.
2007-07-18Fix fallout from recent kthread changes.ad
2007-07-09Merge some of the less invasive changes from the vmlocking branch:ad
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
2007-06-26Change dk_lookup() to accept an additional argument of the type enum uio_segcube
that tells whether the given path is in user space or kernel space, so it can tell NDINIT(). While the raidframe calls were ok, both ccd(4) and cgd(4) were passing pointers to user space data, which leads to strange error on i386, as reported by Jukka Salmi on current-users. The issue has been there since last august, I'm actually a bit surprised that no one in the meantime has used ccd(4) or cgd(4) on an arch where it would have simply faulted.
2007-06-24don't leak a vnode in the wedge case.christos
2007-03-13Fix typo in print statement; from khorbenchristos
2007-03-12Pass an ipl argument to pool_init/POOL_INIT to be used when initializingad
the pool's lock.
2007-03-09In the case of multiple RAID sets that are marked as root, attempt tooster
use the RAID set that contains the component used for booting. Thanks to manu@ for the main part of this.
2007-03-04Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.christos
2007-01-29Remove more duplicate headers.hubertf
Patch by Slava Semushin <slava.semushin@gmail.com> Again, this was tested by comparing obj files from a pristine and a patched source tree against an i386/ALL kernel, and also for src/sbin/fsck_ffs, src/sbin/fsdb and src/usr.sbin/makefs. Only changes in assert() line numbers were detected in 'objdump -d' output.
2006-11-30Change a bunch of "#if DEBUG" to "#ifdef DEBUG".oster
2006-11-30If the user has specified 'root on foo', then skip changing the booted_deviceoster
even if we've detected a 'root on raid' autoconfigure. This change is really only cosmetic, since setroot() will still do the right thing and honor the 'root on foo' setting.
2006-11-16__unused removal on arguments; approved by core.christos