Revision tags: release/14.0.0 |
|
#
95ee2897 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
4d846d26 |
| 10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
show more ...
|
#
9309a460 |
| 07-Apr-2023 |
Alan Somers <asomers@FreeBSD.org> |
Implement GEOM::rotation_rate for gmirror
If all of the mirror's children have the same rotation rate, report that. But if they have mixed rotation rates, or if any child has an unknown rotation ra
Implement GEOM::rotation_rate for gmirror
If all of the mirror's children have the same rotation rate, report that. But if they have mixed rotation rates, or if any child has an unknown rotation rate, report "Unknown".
MFC after: 2 weeks Sponsored by: Axcient Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D39458
show more ...
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0, release/13.0.0 |
|
#
2f1cfb7f |
| 11-Mar-2021 |
Mark Johnston <markj@FreeBSD.org> |
gmirror: Pre-allocate the timeout event structure
We can't call malloc(M_WAITOK) in a callout handler.
Reviewed by: imp Reported by: pho Tested by: pho MFC after: 1 week Sponsored by: The FreeBSD F
gmirror: Pre-allocate the timeout event structure
We can't call malloc(M_WAITOK) in a callout handler.
Reviewed by: imp Reported by: pho Tested by: pho MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29223
show more ...
|
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0 |
|
#
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; docum
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
show more ...
|
Revision tags: release/11.3.0 |
|
#
7e565c55 |
| 30-Jan-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r343320 through r343570.
|
#
797f009d |
| 23-Jan-2019 |
Conrad Meyer <cem@FreeBSD.org> |
gmirror: Relocate DEVICE_FLAGS to adjacent lines
gmirror's sc_flags is shared between some on-disk state and some runtime only state. There's no real reason for that and they could probably be spli
gmirror: Relocate DEVICE_FLAGS to adjacent lines
gmirror's sc_flags is shared between some on-disk state and some runtime only state. There's no real reason for that and they could probably be split up. Until they are, locate all of the flags for the same field nearby each other in the source, for clarity.
No functional change.
Sponsored by: Dell EMC Isilon
show more ...
|
#
67350cb5 |
| 09-Dec-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r340918 through r341763.
|
#
af7dcae0 |
| 07-Dec-2018 |
Conrad Meyer <cem@FreeBSD.org> |
gmirror: Evaluate mirror components against newest metadata copy
Re-apply r341665 with format strings fixed.
If we happen to taste a stale mirror component first, don't reject valid, newer componen
gmirror: Evaluate mirror components against newest metadata copy
Re-apply r341665 with format strings fixed.
If we happen to taste a stale mirror component first, don't reject valid, newer components that have differing metadata from the stale component (during STARTING). Instead, update our view of the most recent metadata as we taste components.
Like mediasize beforehand, remove some checks from g_mirror_check_metadata which would evict valid components due to metadata that can change over a mirror's lifetime. g_mirror_check_metadata is invoked long before we check genid/syncid and decide which component(s) are newest and whether or not we have quorum.
Before checking if we can enter RUNNING (i.e., we have quorum) after a NEW component is added, first remove any known stale or inconsistent disks from the mirrorset, rather than removing them *after* deciding we have quorum. Check if we have quorum after removing these components.
Additionally, add a knob, kern.geom.mirror.launch_mirror_before_timeout, to force gmirrors to wait out the full timeout (kern.geom.mirror.timeout) before transitioning from STARTING to RUNNING. This is a kludge to help ensure all eligible, boot-time available mirror components are tasted before RUNNING a gmirror.
Add a basic test case for STARTING -> RUNNING startup behavior around stale genids.
PR: 232671, 232835 Submitted by: Cindy Yang <cyang AT isilon.com> (previous version) Reviewed by: markj (kernel portions) Discussed with: asomers, Cindy Yang Tested by: pho Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D18062
show more ...
|
#
c4e87bdf |
| 07-Dec-2018 |
Conrad Meyer <cem@FreeBSD.org> |
Revert r341665 due to tinderbox breakage
I didn't notice that some format strings were non-portable. Will fix and re-commit later.
|
Revision tags: release/12.0.0 |
|
#
bc1ee0be |
| 07-Dec-2018 |
Conrad Meyer <cem@FreeBSD.org> |
gmirror: Evaluate mirror components against newest metadata copy
If we happen to taste a stale mirror component first, don't reject valid, newer components that have differing metadata from the stal
gmirror: Evaluate mirror components against newest metadata copy
If we happen to taste a stale mirror component first, don't reject valid, newer components that have differing metadata from the stale component (during STARTING). Instead, update our view of the most recent metadata as we taste components.
Like mediasize beforehand, remove some checks from g_mirror_check_metadata which would evict valid components due to metadata that can change over a mirror's lifetime. g_mirror_check_metadata is invoked long before we check genid/syncid and decide which component(s) are newest and whether or not we have quorum.
Before checking if we can enter RUNNING (i.e., we have quorum) after a NEW component is added, first remove any known stale or inconsistent disks from the mirrorset, rather than removing them *after* deciding we have quorum. Check if we have quorum after removing these components.
Additionally, add a knob, kern.geom.mirror.launch_mirror_before_timeout, to force gmirrors to wait out the full timeout (kern.geom.mirror.timeout) before transitioning from STARTING to RUNNING. This is a kludge to help ensure all eligible, boot-time available mirror components are tasted before RUNNING a gmirror.
When we are instructed to forget mirror components, bump the generation id to avoid confusion with such stale components later.
Add a basic test case for STARTING -> RUNNING startup behavior around stale genids.
PR: 232671, 232835 Submitted by: Cindy Yang <cyang AT isilon.com> (previous version) Reviewed by: markj (kernel portions) Discussed with: asomers, Cindy Yang Tested by: pho Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D18062
show more ...
|
Revision tags: release/11.2.0 |
|
#
c79126f2 |
| 12-Jan-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r327624 through r327885.
|
#
792f0c3b |
| 10-Jan-2018 |
Mark Johnston <markj@FreeBSD.org> |
Clarify the use of the gmirror flag mask constants.
MFC after: 1 week Sponsored by: Dell EMC Isilon
|
#
54b4b13c |
| 24-Dec-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r326936 through r327149.
|
#
9abe2e7e |
| 19-Dec-2017 |
Mark Johnston <markj@FreeBSD.org> |
Avoid using bioq_* in gmirror.
gmirror does not perform any sorting of I/O requests, so the bioq API doesn't provide any advantages over plain TAILQs. The API also does not provide operations needed
Avoid using bioq_* in gmirror.
gmirror does not perform any sorting of I/O requests, so the bioq API doesn't provide any advantages over plain TAILQs. The API also does not provide operations needed by an upcoming change.
No functional change intended. The diff shrinks the geom_mirror.ko text and the gmirror softc slightly.
Tested by: pho (part of a larger patch) MFC after: 1 week Sponsored by: Dell EMC Isilon
show more ...
|
#
2ceafb77 |
| 30-Nov-2017 |
Mark Johnston <markj@FreeBSD.org> |
Update gmirror metadata less frequently when synchronizing.
We periodically record synchronization progress in the metadata block of the disk being synchronized; this allows an interrupted synchroni
Update gmirror metadata less frequently when synchronizing.
We periodically record synchronization progress in the metadata block of the disk being synchronized; this allows an interrupted synchronization to be resumed. However, the frequency of these updates heavily pessimized synchronization time on some media. This change modifies gmirror to update metadata based on a time period, and adds a sysctl to control that period. The default value results in a much lower update frequency and increases the completion time for an interrupted rebuild only marginally.
Reported by: Andre Albsmeier <andre@fbsd.e4m.org> MFC after: 3 weeks
show more ...
|
#
3728855a |
| 27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/geom: adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone
sys/geom: adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task.
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.
show more ...
|
#
8a53e134 |
| 24-Nov-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r326132 through r326161.
|
#
03498171 |
| 23-Nov-2017 |
Mark Johnston <markj@FreeBSD.org> |
Allow kern.geom.mirror.debug to be negative.
A negative value can be used to suppress all prints from the gmirror kernel code, which can be useful when attempting to trigger race conditions using st
Allow kern.geom.mirror.debug to be negative.
A negative value can be used to suppress all prints from the gmirror kernel code, which can be useful when attempting to trigger race conditions using stress tests.
MFC after: 1 week
show more ...
|
#
c2c014f2 |
| 07-Nov-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r323559 through r325504.
|
Revision tags: release/10.4.0 |
|
#
8fcbcc2d |
| 16-Sep-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r323635
|
#
7103ac8a |
| 15-Sep-2017 |
Andriy Gapon <avg@FreeBSD.org> |
gmirror: treat ENXIO as disk disconnect, not media error
In theory, all data access errors mean that a member is out of sync at most. But they were treated as more serious errors to avoid the situa
gmirror: treat ENXIO as disk disconnect, not media error
In theory, all data access errors mean that a member is out of sync at most. But they were treated as more serious errors to avoid the situation where a flaky disk gets repeatedly disconnected, re-synchronized, reconnected and then disconnected again.
ENXIO is a special error that means that the member disk disappeared, so it should get the same handling as the GEOM orphaning event. There is a better chance that when the disk is reconnected, it will be a good member again.
When ENXIO happens on a read we use the exisiting G_MIRROR_BUMP_SYNCID mechanism which means that the mirror's syncid is increased as soon as there is a write to the mirror. That's because no data has got out of sync yet, but the problematic memeber is disconnected, so the future write will make it stale.
When ENXIO happens on a write we use a new G_MIRROR_BUMP_SYNCID_NOW mechanism which means that we update the mirror metadata as soon as possible because the problematic memeber is already behind.
Reviewed by: markj, imp MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D9463
show more ...
|
Revision tags: release/11.1.0 |
|
#
a7d94fcc |
| 14-Apr-2017 |
Mark Johnston <markj@FreeBSD.org> |
Rename two gmirror state flags to make their meanings slightly clearer.
No functional change.
MFC after: 2 weeks Sponsored by: Dell EMC Isilon
|
#
4f9d94bf |
| 04-Dec-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r309263 through r309518.
|
#
b6fe583c |
| 30-Nov-2016 |
Alexander Motin <mav@FreeBSD.org> |
Add `gmirror create` subcommand, alike to gstripe, gconcat, etc.
It is quite specific mode of operation without storing on-disk metadata. It can be useful in some cases in combination with some exte
Add `gmirror create` subcommand, alike to gstripe, gconcat, etc.
It is quite specific mode of operation without storing on-disk metadata. It can be useful in some cases in combination with some external control tools handling mirror creation and disks hot-plug.
MFC after: 2 weeks Sponsored by: iXsystems, Inc.
show more ...
|