summaryrefslogtreecommitdiffstats
path: root/sys/geom/raid3
Commit message (Collapse)AuthorAgeFilesLines
...
* Improve reliability and clean up code a bit.pjd2004-12-211-189/+140
| | | | For more details check src/sys/geom/mirror/g_mirror.c rev.1.47,1.48,1.49,1.50.
* bioq_insert_head() function is already in subr_disk.c.pjd2004-12-131-10/+0
|
* When initializing device, set d_softc and d_no fields for all components,pjd2004-12-041-3/+4
| | | | | | | | because we know it then and we need it when inserting a component which wasn't destroyed while device was running. Reported by: Michael Handler <handler@grendel.net> MFC after: 1 week
* Before trying to update metadata (so open consumer for writing), be surepjd2004-11-091-11/+26
| | | | | | | | | | that the events queue is empty. In other case we're able to hit the race where for example da0s1 is tasted by some other class, which means that da0 is open with exclusive bit set, which means that we can't open da0 for writing if it is our component. Reported by: Attila Nagy <bra@fsn.hu> (and somebody else sometime ago, but I cannot find who it was)
* Don't rely on DIRTY flag to be sure that consumer if open, becausepjd2004-11-091-1/+1
| | | | | DIRTY flag can be removed in idle process. Use consumer's acw field instead to avoid opening consumer twice.
* For BIO_READ check if provider is open for reading and for BIO_WRITE,pjd2004-11-091-3/+11
| | | | | | check if provider is open for writing. This fixes panic when device is open only for writing and we send write request.
* Drop Giant lock before grabbing the topology lock.pjd2004-11-091-0/+2
|
* If device is marked as beeing destroyed, deny all access requests.pjd2004-11-081-1/+2
|
* Don't forget to make sure that there are no not-finished requests beforepjd2004-11-051-14/+33
| | | | | | marking components as clean. Pointed out by: scottl
* - Mark all raid3 components as clean after kern.geom.raid3.idletime seconds.pjd2004-11-052-2/+82
| | | | - Make kern.geom.raid3.timeout variable tunable.
* Mark raid3 devices as clean on shutdown (after all file systems arepjd2004-11-051-3/+52
| | | | | | unmounted). Suggested by: scottl
* - Use ->index consumer's field to track number of in-flight requests.pjd2004-11-051-2/+10
| | | | - Remove unused #include.
* Just use MAXPHYS as maximum I/O request size, instead of using my ownpjd2004-09-282-8/+4
| | | | | #define for this purpose. No functional change.
* Decrease kern.geom.raid3.timeout to 4, so it is smaller thanpjd2004-09-271-1/+1
| | | | vfs.root.mountdelay by default.
* Avoid race while synchronizing components. It is very hard to bump into,pjd2004-09-272-7/+37
| | | | | | | | | but it is possible: 1. Read data from good component for synchronization. 2. Write data to the same area. 3. Write synchronization data, which are now stale. Found by: tegge (for gmirror)
* This is not needed anymore, it is forced in GEOM now.pjd2004-09-201-3/+0
| | | | | | | | | Actually, it can even cause some problems, because GEOM requires sectorsize to be more than 0 on first access, not on provider creation, so we can skip valid providers by doing this check here. Reported by: Divacky Roman <xdivac02@stud.fit.vutbr.cz> Sven Willenberger <sven@dmv.com>
* Allow to configure debug level from /boot/loader.conf.pjd2004-08-301-0/+1
|
* GCC, ehh.pjd2004-08-291-0/+1
|
* Use sc->sc_mediasize instead of sc->sc_provider->mediasize which containspjd2004-08-281-4/+3
| | | | exactly the same value, but is shorter.
* Warn the user if we are not going to use whole provider space.pjd2004-08-281-4/+12
| | | | Requested by: Michael Handler <handler@grendel.net>
* Don't allow to insert providers, which are too small.pjd2004-08-281-0/+4
| | | | Reported by: Michael Handler <handler@grendel.net>
* Skip providers with not defined sector size.pjd2004-08-261-0/+3
| | | | Reported by: kuriyama
* Log verification errors at level 1.pjd2004-08-251-2/+6
|
* Implementation of 'verify reading' algorithm, which uses parity data forpjd2004-08-223-18/+163
| | | | | | | | 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
* Add version history.pjd2004-08-211-0/+5
|
* Implement new reading algorithm, which will use parity component for readingpjd2004-08-213-102/+143
| | | | | | | | | | | | | | | | | | | | | | | | 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 [...]
* We really don't want to receive spoil event for synchroniztion consumers.pjd2004-08-181-1/+0
|
* Dump device status on 'list' command.pjd2004-08-181-0/+2
|
* Minor style.9 cleanup.obrien2004-08-161-3/+4
|
* Decrease debug level to 0.pjd2004-08-161-1/+1
|
* Fix warning.pjd2004-08-161-1/+1
|
* Introduce GEOM RAID3 class, i.e. kernel module, which implements RAID3pjd2004-08-163-0/+3553
transformation and graid3(8) userland utility, which can be used for configuration. No manual page yet, sorry. Hardware provided by: Daniel Seuffert
OpenPOWER on IntegriCloud