History log of /freebsd-current/sys/geom/vinum/geom_vinum_subr.c
Revision Date Author Comments
# fdafd315 24-Nov-2023 Warner Losh <imp@FreeBSD.org>

sys: Automated cleanup of cdefs and other formatting

Apply the following automated changes to try to eliminate
no-longer-needed sys/cdefs.h includes as well as now-empty
blank lines in a row.

Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/
Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/
Remove /\n+#if.*\n#endif.*\n+/
Remove /^#if.*\n#endif.*\n/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/

Sponsored by: Netflix


# 685dc743 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# f3f6e0eb 04-Apr-2022 Robert Wing <rew@FreeBSD.org>

geom_vinum: fix set but not used warnings


# 739a9c51 13-Dec-2021 Edward Tomasz Napierala <trasz@FreeBSD.org>

geom(4): Fix some of the "set but not used" warnings

The few I've left in place look like potential bugs.

Sponsored By: EPSRC


# d40bc607 01-Sep-2020 Mateusz Guzik <mjg@FreeBSD.org>

geom: clean up empty lines in .c and .h files


# ac03832e 07-Aug-2019 Conrad Meyer <cem@FreeBSD.org>

GEOM: Reduce unnecessary log interleaving with sbufs

Similar to what was done for device_printfs in r347229.

Convert g_print_bio() to a thin shim around g_format_bio(), which acts on an
sbuf; documented in g_bio.9.

Reviewed by: markj
Discussed with: rlibby
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D21165


# df57947f 18-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

spdx: initial adoption of licensing ID tags.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.

Initially, only tag files that use BSD 4-Clause "Original" license.

RelNotes: yes
Differential Revision: https://reviews.freebsd.org/D13133


# e8d57122 29-Apr-2016 Pedro F. Giffuni <pfg@FreeBSD.org>

sys/geom: spelling fixes in comments.

No functional change.


# 5d807a0e 10-Jul-2011 Andrey V. Elsukov <ae@FreeBSD.org>

Include sys/sbuf.h directly.

Reviewed by: pjd


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# a8a3cd7d 05-Oct-2009 Ulf Lilleengen <lulf@FreeBSD.org>

- Improve error message consistency and wording.


# 41944888 06-May-2009 Ulf Lilleengen <lulf@FreeBSD.org>

- Fix a case where a RAID5 volume would think that it is supposed to grow a new
subdisk after a parity rebuild.


# c0b9797a 28-Mar-2009 Ulf Lilleengen <lulf@FreeBSD.org>

Import the gvinum work that have been done during and after Summer of Code 2007.
The work have been under testing and fixing since then, and it is mature enough
to be put into HEAD for further testing.

A lot have changed in this time, and here are the most important:
- Gvinum now uses one single workerthread instead of one thread for each
volume and each plex. The reason for this is that the previous scheme was
very complex, and was the cause of many of the bugs discovered in gvinum.
Instead, gvinum now uses one worker thread with an event queue, quite
similar to what used in gmirror.
- The rebuild/grow/initialize/parity check routines no longer runs in
separate threads, but are run as regular I/O requests with special flags.
This made it easier to support mounted growing and parity rebuild.
- Support for growing striped and raid5-plexes, meaning that one can extend the
volumes for these plex types in addition to the concat type. Also works while
the volume is mounted.
- Implementation of many of the missing commands from the old vinum:
attach/detach, start (was partially implemented), stop (was partially
implemented), concat, mirror, stripe, raid5 (shortcuts for creating volumes
with one plex of these organizations).
- The parity check and rebuild no longer goes between userland/kernel, meaning
that the gvinum command will not stay and wait forever for the rebuild to
finish. You can instead watch the status with the list command.
- Many problems with gvinum have been reported since 5.x, and some has been hard
to fix due to the complicated architecture. Hopefully, it should be more
stable and better handle edge cases that previously made gvinum crash.
- Failed drives no longer disappears entirely, but now leave behind a dummy
drive that makes sure the original state is not forgotten in case the system
is rebooted between drive failures/swaps.
- Update manpage to reflect new commands and extend it with some examples.

Sponsored by: Google Summer of Code 2007
Mentored by: le
Tested by: Rick C. Petty <rick-freebsd2008 -at- kiwi-computer.com>


# 86b3c6f5 26-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import macros used in gmirror for printing gvinum debug messages and making
the output more standardized.
- Add a sysctl to set the verbosity of the debug messages.
- While there, fixup typos and wording in the messages.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 56af4c61 11-Jul-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Fix a logic error when updating plex configuration.

Approved by: pjd (mentor)


# a2237c41 12-Apr-2007 Lukas Ertl <le@FreeBSD.org>

-) Correct sdcount for a plex when removing or adding subdisks.
-) Set correct sizes for plexes and volumes a subdisk has been removed.

Submitted by: Ulf Lilleengen <lulf_AT_freebsd.org>


# ff91880e 30-Mar-2006 Lukas Ertl <le@FreeBSD.org>

Protect from creating striped and RAID5 plexes with unequally sized
subdisks.


# d5817a50 06-Jan-2006 Lukas Ertl <le@FreeBSD.org>

Get rid of the gv_bioq hack in most parts of the I/O path and
use the standard bioq structures.


# 3b6cdf43 19-Jan-2005 Lukas Ertl <le@FreeBSD.org>

Reset object flags after killing off an object's worker thread.


# 94175098 14-Nov-2004 Lukas Ertl <le@FreeBSD.org>

Share gv_roughlength() between kernel and userland, as we will need it
there later.


# d9d3a74c 02-Oct-2004 Lukas Ertl <le@FreeBSD.org>

Correctly skip the '/dev/' part when creating new drives and prefix
a drive's provider with '/dev/' when printing the config.

Reported by: will@


# 67e3ab6e 18-Sep-2004 Lukas Ertl <le@FreeBSD.org>

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.


# 12653dec 13-Sep-2004 Lukas Ertl <le@FreeBSD.org>

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.


# fce2deb1 13-Sep-2004 Lukas Ertl <le@FreeBSD.org>

Rename gv_kill_thread() to gv_kill_plex_thread(), since there are more
threads to come.


# 45d0fdcd 22-Aug-2004 Lukas Ertl <le@FreeBSD.org>

Add forgotten format specifier in a KASSERT and shut up the compiler.

Submitted by: Gavin Atkinson <gavin.atkinson@ury.york.ac.uk>


# 92f49a96 10-Aug-2004 Lukas Ertl <le@FreeBSD.org>

If we kill the worklist thread of a RAID5 plex we can destroy
the worklist mutex at the same time, so move the mtx_destroy() call
to gv_kill_thread().


# 4b017d0d 31-Jul-2004 Lukas Ertl <le@FreeBSD.org>

Propagate size changes upwards.


# 865897c9 25-Jun-2004 Lukas Ertl <le@FreeBSD.org>

Mark a plex as 'newborn' when it is created. This is used to indicate
that new RAID5 plexes need to be initialized first.


# 99b536d8 16-Jun-2004 Lukas Ertl <le@FreeBSD.org>

Handle dead disks in a somewhat sane way.


# da8f1aa5 15-Jun-2004 Lukas Ertl <le@FreeBSD.org>

Fix several bugs related to subdisk drive_offset calculation.


# 73679edc 12-Jun-2004 Lukas Ertl <le@FreeBSD.org>

Add a first version of a GEOMified vinum.