fjoe
2a220bb5b0
Use correct malloc type when freeing memory allocated by g_read_data.
...
PR: 71431
Submitted by: daichi
2004-09-19 10:27:46 +00:00
le
5dae52591b
Single concat or striped plexes don't need no special initialization
...
if their subdisks are all available, so let them be brought up.
2004-09-18 18:03:20 +00:00
le
18ba8315a7
Re-vamp how I/O is handled in volumes and plexes.
...
Analogous to the drive level, give each volume and plex a worker thread
that picks up and processes incoming and completed BIOs.
This should fix the data corruption issues that have come up a few
weeks ago and improve performance, especially of RAID5 plexes.
The volume level needs a little work, though.
2004-09-18 13:44:43 +00:00
fjoe
76d2723d97
g_nop_create: destroy newly created provider in case of errors.
2004-09-16 15:28:48 +00:00
le
eb087a4ece
Give the DRIVE geom a worker thread that picks up incoming bios,
...
sends them down, and takes care of the finished bios. This makes it
easier to handle I/O errors at drive level.
2004-09-13 21:01:36 +00:00
le
a4de4268bd
Rename gv_kill_thread() to gv_kill_plex_thread(), since there are more
...
threads to come.
2004-09-13 17:44:47 +00:00
le
876ffa30db
Save the config back to disk when a drive goes down.
2004-09-13 17:33:52 +00:00
le
b19a8d0082
Read a whole sector instead of GV_HDR_LEN, since a sector might be
...
bigger (i.e. on CD-ROMs).
2004-09-13 17:27:58 +00:00
pjd
a5693287e1
Make kern.geom.debugflags sysctl tunable from /boot/loader.conf.
...
It will help to debug problems when booting.
Approved by: phk
2004-09-13 14:58:27 +00:00
phk
3e1bf8d8b5
Fix a problem that shows up if less than the full complement of
...
lock sectors are defined ("number_of_keys" argument to gbde init being
less than 4 in the default compile).
2004-09-11 17:58:53 +00:00
phk
9b11b1fb2c
Respect that G_BDE_MAXKEYS is a compile time variable.
2004-09-11 17:57:51 +00:00
fjoe
7531fcdf4d
Do not compile in zlib.c. Add a dependency on module instead.
2004-09-08 17:27:31 +00:00
pjd
555e9e698d
Show current status of mirror device directly.
...
Suggested by: Krzysztof Ciep³ucha <kris@home.pl>
2004-09-08 16:37:22 +00:00
phk
38ae102f61
For removable devices without media we set a zero mediasize but a non-zero
...
sectorsize in order to avoid a lot of checks around various divisions etc.
Enforce the sectorsize being > 0 with a KASSERT on successful open.
Fix scsi_cd.c to return 2k sectors when no media inserted.
2004-09-05 21:15:58 +00:00
pjd
4689077c9e
Allow to configure debug level from /boot/loader.conf.
2004-08-30 18:50:06 +00:00
phk
02b88adf06
Add more KASSERTS and checks.
2004-08-30 09:33: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
le
440914a8bb
Move config_new_drive() to the correct place and rename it to
...
gv_config_new_drive().
2004-08-27 21:32:18 +00:00
phk
4759b478a2
Introduce g_alloc_bio() as a waiting variant of g_new_bio().
...
Use in places where we can sleep and where we previously failed to check
for a NULL pointer.
MT5 candidate.
2004-08-27 14:43:11 +00:00
le
0fd3e9eb56
When attaching a consumer from a volume to a plex, check if the
...
volume already has a plex attached and adjust the access counts
of the new consumer accordingly.
2004-08-26 21:04:41 +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
a2512dc38e
Dump disk number.
2004-08-25 12:14:44 +00:00
pjd
02488a6b3c
Allow to set kern.geom.mirror.timeout from /boot/loader.conf.
2004-08-23 20:42:34 +00:00
le
b83d5cd619
Compare the addresses of two RAID5 work packets directly instead
...
of the addresses of their related bios when locking one out, since
they could share a bio and this could lead to parity corruption.
2004-08-23 17:50:18 +00:00
le
a52623fe58
Implement the possibility to remove drives.
2004-08-22 17:07:55 +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
le
9c58beacac
Add forgotten format specifier in a KASSERT and shut up the compiler.
...
Submitted by: Gavin Atkinson <gavin.atkinson@ury.york.ac.uk>
2004-08-22 13:34:24 +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
le
7f135ded9a
A volume can be up if it has a degraded RAID5 plex.
2004-08-19 12:03:27 +00:00
pjd
ad8a5e508d
We really don't want to receive spoil event for synchroniztion consumers.
2004-08-18 23:33:37 +00:00
phk
90dd7ea538
Do not override the class provided dumpconf function.
2004-08-18 21:42:08 +00:00
le
89428b4ca7
Pretty print some informational messages.
2004-08-18 20:43:56 +00:00
le
fc5a15a34b
Fix a stupid bug in the drive taste function: when checking if a
...
drive is known to the configuration check also if it already has a geom.
Without this check several needless geoms are created and valid
configuration data was overwritten.
This change obsoletes the need for a separate geom to taste an
offered provider and the consumer doesn't need to be opened with the
exclusive bit set.
2004-08-18 20:34:45 +00:00
pjd
596d3e1549
NOP class doesn't operate on metadata, so the spoil event can be safely
...
ignored.
2004-08-18 16:58:42 +00:00
pjd
5900ea888d
Dump device status on 'list' command.
2004-08-18 16:46:51 +00:00
pjd
7a2e943ef3
Bump synchronization ID if we are sure, that we have ACTIVE components.
2004-08-18 07:28:48 +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
pjd
210c7636d4
Avoid code duplication by introducing g_mirror_write_metadata() function,
...
which is used now by g_mirror_clear_metadata() function and
g_mirror_update_metadata() function.
2004-08-15 13:58:29 +00:00
le
3d9480a588
Make informational output look less like an accident.
2004-08-14 09:56:17 +00:00
fjoe
50b0c5e0ac
Add geom_uzip -- geom class that implements read-only compressed disks.
...
Currently supports cloop V2.0 disk compression format.
May support more formats in future.
2004-08-13 09:40:58 +00:00
pjd
d1919d7938
MFp4: Simplify code a bit:
...
- Remove kern.geom.mirror.sync_block_size sysctl. It is quite obvious that we
want to use the biggest size possible.
- Do not use UMA zone for sync data allocations. There could be only one
synchronization request per synchronized disk at a time, so allocate memory
for one request on whole synchronization process related to one disk.
Tested by synchronizing one component (out of three) and by synchronizing
two components (out of three) in parallel.
2004-08-11 23:41:53 +00:00
pjd
2f865036c5
Actually, HARDCODED flag isn't stored in metadata, so don't bother
...
dumping it.
2004-08-11 22:16:42 +00:00