pjd
a2d5ae235d
Don't rely on DIRTY flag to be sure that consumer if open, because
...
DIRTY flag can be removed in idle process. Use consumer's acw field
instead to avoid opening consumer twice.
2004-11-09 23:15:40 +00:00
pjd
5cac522046
For BIO_READ check if provider is open for reading and for BIO_WRITE,
...
check if provider is open for writing.
This fixes panic when device is open only for writing and we send write
request.
2004-11-09 23:04:45 +00:00
pjd
592adb99c2
Drop Giant lock before grabbing the topology lock.
2004-11-09 00:35:08 +00:00
pjd
b9bb54bcb8
If device is marked as beeing destroyed, deny all access requests.
2004-11-08 20:23:53 +00:00
pjd
d62be2e0d6
Don't forget to make sure that there are no not-finished requests before
...
marking components as clean.
Pointed out by: scottl
2004-11-05 17:18:39 +00:00
pjd
b004592010
- Mark all raid3 components as clean after kern.geom.raid3.idletime seconds.
...
- Make kern.geom.raid3.timeout variable tunable.
2004-11-05 13:12:58 +00:00
pjd
f229109eb7
Mark raid3 devices as clean on shutdown (after all file systems are
...
unmounted).
Suggested by: scottl
2004-11-05 13:01:25 +00:00
pjd
270f218c1d
- Use ->index consumer's field to track number of in-flight requests.
...
- Remove unused #include.
2004-11-05 12:42:16 +00:00
pjd
63dd0f756b
Just use MAXPHYS as maximum I/O request size, instead of using my own
...
#define for this purpose.
No functional change.
2004-09-28 07:33:37 +00:00
pjd
ef6747fa18
Decrease kern.geom.raid3.timeout to 4, so it is smaller than
...
vfs.root.mountdelay by default.
2004-09-27 22:12:14 +00:00
pjd
34196975cf
Avoid race while synchronizing components. It is very hard to bump into,
...
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)
2004-09-27 20:32:35 +00:00
pjd
d7954bf77f
This is not needed anymore, it is forced in GEOM now.
...
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>
2004-09-20 17:26:25 +00:00
pjd
4689077c9e
Allow to configure debug level from /boot/loader.conf.
2004-08-30 18:50:06 +00:00
pjd
3bedfb04b2
GCC, ehh.
2004-08-29 14:29:30 +00:00
pjd
354291a750
Use sc->sc_mediasize instead of sc->sc_provider->mediasize which contains
...
exactly the same value, but is shorter.
2004-08-28 02:35:43 +00:00
pjd
2d011d4672
Warn the user if we are not going to use whole provider space.
...
Requested by: Michael Handler <handler@grendel.net>
2004-08-28 02:34:10 +00:00
pjd
f7c5bbc8f2
Don't allow to insert providers, which are too small.
...
Reported by: Michael Handler <handler@grendel.net>
2004-08-28 02:02:48 +00:00
pjd
7f46afc9bf
Skip providers with not defined sector size.
...
Reported by: kuriyama
2004-08-26 12:42:47 +00:00
pjd
18cd875885
Log verification errors at level 1.
2004-08-25 19:18:07 +00:00
pjd
7e2ef21ad9
Implementation of 'verify reading' algorithm, which uses parity data for
...
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
2004-08-22 16:21:12 +00:00
pjd
2acdd880f4
Add version history.
2004-08-21 21:15:03 +00:00
pjd
c3c6740d1a
Implement new reading algorithm, which will use parity component for reading
...
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
[...]
2004-08-21 18:11:46 +00:00
pjd
ad8a5e508d
We really don't want to receive spoil event for synchroniztion consumers.
2004-08-18 23:33:37 +00:00
pjd
5900ea888d
Dump device status on 'list' command.
2004-08-18 16:46:51 +00:00
obrien
652905e47a
Minor style.9 cleanup.
2004-08-16 10:33:35 +00:00
pjd
023b80f953
Decrease debug level to 0.
2004-08-16 08:33:04 +00:00
pjd
d68b744f16
Fix warning.
2004-08-16 08:21:31 +00:00
pjd
8394d51046
Introduce GEOM RAID3 class, i.e. kernel module, which implements RAID3
...
transformation and graid3(8) userland utility, which can be used for
configuration. No manual page yet, sorry.
Hardware provided by: Daniel Seuffert
2004-08-16 06:23:14 +00:00