From d44449025c1510a6bcd65ce011b77a1179951869 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=D0=BD=D0=B0=D0=B1?= Date: Wed, 26 May 2021 19:50:01 +0200 Subject: [PATCH] zfs-events.5: modernise MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Brian Behlendorf Signed-off-by: Ahelenia ZiemiaƄska Closes #12125 --- man/man5/zfs-events.5 | 1069 +++++++++++++------------------------------------ 1 file changed, 276 insertions(+), 793 deletions(-) diff --git a/man/man5/zfs-events.5 b/man/man5/zfs-events.5 index 0d0e1a959..846a7080d 100644 --- a/man/man5/zfs-events.5 +++ b/man/man5/zfs-events.5 @@ -1,4 +1,4 @@ -'\" te +.\" .\" Copyright (c) 2013 by Turbo Fredriksson . All rights reserved. .\" Portions Copyright 2018 by Richard Elling .\" The contents of this file are subject to the terms of the Common Development @@ -13,865 +13,348 @@ .\" CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your .\" own identifying information: .\" Portions Copyright [yyyy] [name of copyright owner] -.TH ZFS-EVENTS 5 "Aug 24, 2020" OpenZFS -.SH NAME -zfs\-events \- Events created by the ZFS filesystem. -.SH DESCRIPTION -.sp -.LP +.\" +.Dd May 26, 2021 +.Dt ZFS-EVENTS 5 +.Os +. +.Sh NAME +.Nm zfs-events +.Nd Events created by the ZFS filesystem +.Sh DESCRIPTION Description of the different events generated by the ZFS stack. -.sp -Most of these don't have any description. The events generated by ZFS -have never been publicly documented. What is here is intended as a -starting point to provide documentation for all possible events. -.sp +.Pp +Most of these don't have any description. +The events generated by ZFS have never been publicly documented. +What is here is intended as a starting point to provide documentation +for all possible events. +.Pp To view all events created since the loading of the ZFS infrastructure (i.e, "the module"), run -.P -.nf -\fBzpool events\fR -.fi -.P +.Dl Nm zpool Cm events to get a short list, and -.P -.nf -\fBzpool events -v\fR -.fi -.P +.Dl Nm zpool Cm events Fl v to get a full detail of the events and what information is available about it. -.sp -This man page lists the different subclasses that are issued -in the case of an event. The full event name would be -\fIereport.fs.zfs.SUBCLASS\fR, but we only list the last -part here. - -.SS "EVENTS (SUBCLASS)" -.sp -.LP - -.sp -.ne 2 -.na -\fBchecksum\fR -.ad -.RS 12n +.Pp +This manual page lists the different subclasses that are issued +in the case of an event. +The full event name would be +.Sy ereport.fs.zfs.\& Ns Em SUBCLASS , +but we only list the last part here. +. +.Sh EVENTS (SUBCLASS) +.Bl -tag -compact -width "vdev.bad_guid_sum" +.It Sy checksum Issued when a checksum error has been detected. -.RE - -.sp -.ne 2 -.na -\fBio\fR -.ad -.RS 12n +.It Sy io Issued when there is an I/O error in a vdev in the pool. -.RE - -.sp -.ne 2 -.na -\fBdata\fR -.ad -.RS 12n +.It Sy data Issued when there have been data errors in the pool. -.RE - -.sp -.ne 2 -.na -\fBdeadman\fR -.ad -.RS 12n -Issued when an I/O is determined to be "hung", this can be caused by lost -completion events due to flaky hardware or drivers. See the -\fBzfs_deadman_failmode\fR module option description for additional -information regarding "hung" I/O detection and configuration. -.RE - -.sp -.ne 2 -.na -\fBdelay\fR -.ad -.RS 12n -Issued when a completed I/O exceeds the maximum allowed time specified -by the \fBzio_slow_io_ms\fR module option. This can be an indicator of -problems with the underlying storage device. The number of delay events is -ratelimited by the \fBzfs_slow_io_events_per_second\fR module parameter. -.RE - -.sp -.ne 2 -.na -\fBconfig.sync\fR -.ad -.RS 12n +.It Sy deadman +Issued when an I/O request is determined to be "hung", this can be caused +by lost completion events due to flaky hardware or drivers. +See +.Sy zfs_deadman_failmode +in +.Xr zfs-module-parameters 5 +for additional information regarding "hung" I/O detection and configuration. +.It Sy delay +Issued when a completed I/O request exceeds the maximum allowed time +specified by the +.Sy zio_slow_io_ms +module parameter. +This can be an indicator of problems with the underlying storage device. +The number of delay events is ratelimited by the +.Sy zfs_slow_io_events_per_second +module parameter. +.It Sy config Issued every time a vdev change have been done to the pool. -.RE - -.sp -.ne 2 -.na -\fBzpool\fR -.ad -.RS 12n +.It Sy zpool Issued when a pool cannot be imported. -.RE - -.sp -.ne 2 -.na -\fBzpool.destroy\fR -.ad -.RS 12n +.It Sy zpool.destroy Issued when a pool is destroyed. -.RE - -.sp -.ne 2 -.na -\fBzpool.export\fR -.ad -.RS 12n +.It Sy zpool.export Issued when a pool is exported. -.RE - -.sp -.ne 2 -.na -\fBzpool.import\fR -.ad -.RS 12n +.It Sy zpool.import Issued when a pool is imported. -.RE - -.sp -.ne 2 -.na -\fBzpool.reguid\fR -.ad -.RS 12n +.It Sy zpool.reguid Issued when a REGUID (new unique identifier for the pool have been regenerated) have been detected. -.RE - -.sp -.ne 2 -.na -\fBvdev.unknown\fR -.ad -.RS 12n -Issued when the vdev is unknown. Such as trying to clear device -errors on a vdev that have failed/been kicked from the system/pool -and is no longer available. -.RE - -.sp -.ne 2 -.na -\fBvdev.open_failed\fR -.ad -.RS 12n +.It Sy vdev.unknown +Issued when the vdev is unknown. +Such as trying to clear device errors on a vdev that have failed/been kicked +from the system/pool and is no longer available. +.It Sy vdev.open_failed Issued when a vdev could not be opened (because it didn't exist for example). -.RE - -.sp -.ne 2 -.na -\fBvdev.corrupt_data\fR -.ad -.RS 12n +.It Sy vdev.corrupt_data Issued when corrupt data have been detected on a vdev. -.RE - -.sp -.ne 2 -.na -\fBvdev.no_replicas\fR -.ad -.RS 12n +.It Sy vdev.no_replicas Issued when there are no more replicas to sustain the pool. -This would lead to the pool being \fIDEGRADED\fR. -.RE - -.sp -.ne 2 -.na -\fBvdev.bad_guid_sum\fR -.ad -.RS 12n +This would lead to the pool being +.Em DEGRADED . +.It Sy vdev.bad_guid_sum Issued when a missing device in the pool have been detected. -.RE - -.sp -.ne 2 -.na -\fBvdev.too_small\fR -.ad -.RS 12n +.It Sy vdev.too_small Issued when the system (kernel) have removed a device, and ZFS -notices that the device isn't there any more. This is usually -followed by a \fBprobe_failure\fR event. -.RE - -.sp -.ne 2 -.na -\fBvdev.bad_label\fR -.ad -.RS 12n +notices that the device isn't there any more. +This is usually followed by a +.Sy probe_failure +event. +.It Sy vdev.bad_label Issued when the label is OK but invalid. -.RE - -.sp -.ne 2 -.na -\fBvdev.bad_ashift\fR -.ad -.RS 12n +.It Sy vdev.bad_ashift Issued when the ashift alignment requirement has increased. -.RE - -.sp -.ne 2 -.na -\fBvdev.remove\fR -.ad -.RS 12n +.It Sy vdev.remove Issued when a vdev is detached from a mirror (or a spare detached from a vdev where it have been used to replace a failed drive - only works if the original drive have been readded). -.RE - -.sp -.ne 2 -.na -\fBvdev.clear\fR -.ad -.RS 12n -Issued when clearing device errors in a pool. Such as running \fBzpool clear\fR +.It Sy vdev.clear +Issued when clearing device errors in a pool. +Such as running +.Nm zpool Cm clear on a device in the pool. -.RE - -.sp -.ne 2 -.na -\fBvdev.check\fR -.ad -.RS 12n +.It Sy vdev.check Issued when a check to see if a given vdev could be opened is started. -.RE - -.sp -.ne 2 -.na -\fBvdev.spare\fR -.ad -.RS 12n +.It Sy vdev.spare Issued when a spare have kicked in to replace a failed device. -.RE - -.sp -.ne 2 -.na -\fBvdev.autoexpand\fR -.ad -.RS 12n +.It Sy vdev.autoexpand Issued when a vdev can be automatically expanded. -.RE - -.sp -.ne 2 -.na -\fBio_failure\fR -.ad -.RS 12n +.It Sy io_failure Issued when there is an I/O failure in a vdev in the pool. -.RE - -.sp -.ne 2 -.na -\fBprobe_failure\fR -.ad -.RS 12n -Issued when a probe fails on a vdev. This would occur if a vdev +.It Sy probe_failure +Issued when a probe fails on a vdev. +This would occur if a vdev have been kicked from the system outside of ZFS (such as the kernel have removed the device). -.RE - -.sp -.ne 2 -.na -\fBlog_replay\fR -.ad -.RS 12n -Issued when the intent log cannot be replayed. The can occur in the case -of a missing or damaged log device. -.RE - -.sp -.ne 2 -.na -\fBresilver.start\fR -.ad -.RS 12n +.It Sy log_replay +Issued when the intent log cannot be replayed. +The can occur in the case of a missing or damaged log device. +.It Sy resilver.start Issued when a resilver is started. -.RE - -.sp -.ne 2 -.na -\fBresilver.finish\fR -.ad -.RS 12n +.It Sy resilver.finish Issued when the running resilver have finished. -.RE - -.sp -.ne 2 -.na -\fBscrub.start\fR -.ad -.RS 12n +.It Sy scrub.start Issued when a scrub is started on a pool. -.RE - -.sp -.ne 2 -.na -\fBscrub.finish\fR -.ad -.RS 12n +.It Sy scrub.finish Issued when a pool has finished scrubbing. -.RE - -.sp -.ne 2 -.na -\fBscrub.abort\fR -.ad -.RS 12n +.It Sy scrub.abort Issued when a scrub is aborted on a pool. -.RE - -.sp -.ne 2 -.na -\fBscrub.resume\fR -.ad -.RS 12n +.It Sy scrub.resume Issued when a scrub is resumed on a pool. -.RE - -.sp -.ne 2 -.na -\fBscrub.paused\fR -.ad -.RS 12n +.It Sy scrub.paused Issued when a scrub is paused on a pool. -.RE - -.sp -.ne 2 -.na -\fBbootfs.vdev.attach\fR -.ad -.RS 12n -.RE - -.SS "PAYLOADS" -.sp -.LP +.It Sy bootfs.vdev.attach +.El +. +.Sh PAYLOADS This is the payload (data, information) that accompanies an event. -.sp +.Pp For -.BR zed (8), -these are set to uppercase and prefixed with \fBZEVENT_\fR. - -.sp -.ne 2 -.na -\fBpool\fR -.ad -.RS 12n +.Xr zed 8 , +these are set to uppercase and prefixed with +.Sy ZEVENT_ . +.Bl -tag -compact -width "vdev_cksum_errors" +.It Sy pool Pool name. -.RE - -.sp -.ne 2 -.na -\fBpool_failmode\fR -.ad -.RS 12n -Failmode - \fBwait\fR, \fBcontinue\fR or \fBpanic\fR. -See -.BR zpool (8) -(\fIfailmode\fR property) for more information. -.RE - -.sp -.ne 2 -.na -\fBpool_guid\fR -.ad -.RS 12n +.It Sy pool_failmode +Failmode - +.Sy wait , +.Sy continue , +or +.Sy panic . +See the +.Sy failmode +property in +.Xr zpoolprops 8 +for more information. +.It Sy pool_guid The GUID of the pool. -.RE - -.sp -.ne 2 -.na -\fBpool_context\fR -.ad -.RS 12n +.It Sy pool_context The load state for the pool (0=none, 1=open, 2=import, 3=tryimport, 4=recover 5=error). -.RE - -.sp -.ne 2 -.na -\fBvdev_guid\fR -.ad -.RS 12n +.It Sy vdev_guid The GUID of the vdev in question (the vdev failing or operated upon with -\fBzpool clear\fR etc). -.RE - -.sp -.ne 2 -.na -\fBvdev_type\fR -.ad -.RS 12n -Type of vdev - \fBdisk\fR, \fBfile\fR, \fBmirror\fR etc. See -.BR zpool (8) -under \fBVirtual Devices\fR for more information on possible values. -.RE - -.sp -.ne 2 -.na -\fBvdev_path\fR -.ad -.RS 12n -Full path of the vdev, including any \fI-partX\fR. -.RE - -.sp -.ne 2 -.na -\fBvdev_devid\fR -.ad -.RS 12n +.Nm zpool Cm clear , +etc.). +.It Sy vdev_type +Type of vdev - +.Sy disk , +.Sy file , +.Sy mirror , +etc. +See the +.Sy Virtual Devices +section of +.Xr zpoolconcepts 8 +for more information on possible values. +.It Sy vdev_path +Full path of the vdev, including any +.Em -partX . +.It Sy vdev_devid ID of vdev (if any). -.RE - -.sp -.ne 2 -.na -\fBvdev_fru\fR -.ad -.RS 12n +.It Sy vdev_fru Physical FRU location. -.RE - -.sp -.ne 2 -.na -\fBvdev_state\fR -.ad -.RS 12n +.It Sy vdev_state State of vdev (0=uninitialized, 1=closed, 2=offline, 3=removed, 4=failed to open, 5=faulted, 6=degraded, 7=healthy). -.RE - -.sp -.ne 2 -.na -\fBvdev_ashift\fR -.ad -.RS 12n +.It Sy vdev_ashift The ashift value of the vdev. -.RE - -.sp -.ne 2 -.na -\fBvdev_complete_ts\fR -.ad -.RS 12n -The time the last I/O completed for the specified vdev. -.RE - -.sp -.ne 2 -.na -\fBvdev_delta_ts\fR -.ad -.RS 12n -The time since the last I/O completed for the specified vdev. -.RE - -.sp -.ne 2 -.na -\fBvdev_spare_paths\fR -.ad -.RS 12n -List of spares, including full path and any \fI-partX\fR. -.RE - -.sp -.ne 2 -.na -\fBvdev_spare_guids\fR -.ad -.RS 12n +.It Sy vdev_complete_ts +The time the last I/O request completed for the specified vdev. +.It Sy vdev_delta_ts +The time since the last I/O request completed for the specified vdev. +.It Sy vdev_spare_paths +List of spares, including full path and any +.Em -partX . +.It Sy vdev_spare_guids GUID(s) of spares. -.RE - -.sp -.ne 2 -.na -\fBvdev_read_errors\fR -.ad -.RS 12n +.It Sy vdev_read_errors How many read errors that have been detected on the vdev. -.RE - -.sp -.ne 2 -.na -\fBvdev_write_errors\fR -.ad -.RS 12n +.It Sy vdev_write_errors How many write errors that have been detected on the vdev. -.RE - -.sp -.ne 2 -.na -\fBvdev_cksum_errors\fR -.ad -.RS 12n +.It Sy vdev_cksum_errors How many checksum errors that have been detected on the vdev. -.RE - -.sp -.ne 2 -.na -\fBparent_guid\fR -.ad -.RS 12n +.It Sy parent_guid GUID of the vdev parent. -.RE - -.sp -.ne 2 -.na -\fBparent_type\fR -.ad -.RS 12n -Type of parent. See \fBvdev_type\fR. -.RE - -.sp -.ne 2 -.na -\fBparent_path\fR -.ad -.RS 12n +.It Sy parent_type +Type of parent. +See +.Sy vdev_type . +.It Sy parent_path Path of the vdev parent (if any). -.RE - -.sp -.ne 2 -.na -\fBparent_devid\fR -.ad -.RS 12n +.It Sy parent_devid ID of the vdev parent (if any). -.RE - -.sp -.ne 2 -.na -\fBzio_objset\fR -.ad -.RS 12n -The object set number for a given I/O. -.RE - -.sp -.ne 2 -.na -\fBzio_object\fR -.ad -.RS 12n -The object number for a given I/O. -.RE - -.sp -.ne 2 -.na -\fBzio_level\fR -.ad -.RS 12n -The indirect level for the block. Level 0 is the lowest level and includes -data blocks. Values > 0 indicate metadata blocks at the appropriate level. -.RE - -.sp -.ne 2 -.na -\fBzio_blkid\fR -.ad -.RS 12n -The block ID for a given I/O. -.RE - -.sp -.ne 2 -.na -\fBzio_err\fR -.ad -.RS 12n -The errno for a failure when handling a given I/O. The errno is compatible -with \fBerrno\fR(3) with the value for EBADE (0x34) used to indicate ZFS -checksum error. -.RE - -.sp -.ne 2 -.na -\fBzio_offset\fR -.ad -.RS 12n -The offset in bytes of where to write the I/O for the specified vdev. -.RE - -.sp -.ne 2 -.na -\fBzio_size\fR -.ad -.RS 12n -The size in bytes of the I/O. -.RE - -.sp -.ne 2 -.na -\fBzio_flags\fR -.ad -.RS 12n -The current flags describing how the I/O should be handled. See the -\fBI/O FLAGS\fR section for the full list of I/O flags. -.RE - -.sp -.ne 2 -.na -\fBzio_stage\fR -.ad -.RS 12n -The current stage of the I/O in the pipeline. See the \fBI/O STAGES\fR +.It Sy zio_objset +The object set number for a given I/O request. +.It Sy zio_object +The object number for a given I/O request. +.It Sy zio_level +The indirect level for the block. +Level 0 is the lowest level and includes data blocks. +Values > 0 indicate metadata blocks at the appropriate level. +.It Sy zio_blkid +The block ID for a given I/O request. +.It Sy zio_err +The error number for a failure when handling a given I/O request, +compatible with +.Xr errno 3 +with the value of +.Sy EBADE +used to indicate a ZFS checksum error. +.It Sy zio_offset +The offset in bytes of where to write the I/O request for the specified vdev. +.It Sy zio_size +The size in bytes of the I/O request. +.It Sy zio_flags +The current flags describing how the I/O request should be handled. +See the +.Sy I/O FLAGS +section for the full list of I/O flags. +.It Sy zio_stage +The current stage of the I/O in the pipeline. +See the +.Sy I/O STAGES section for a full list of all the I/O stages. -.RE - -.sp -.ne 2 -.na -\fBzio_pipeline\fR -.ad -.RS 12n -The valid pipeline stages for the I/O. See the \fBI/O STAGES\fR section for a -full list of all the I/O stages. -.RE - -.sp -.ne 2 -.na -\fBzio_delay\fR -.ad -.RS 12n +.It Sy zio_pipeline +The valid pipeline stages for the I/O. +See the +.Sy I/O STAGES +section for a full list of all the I/O stages. +.It Sy zio_delay The time elapsed (in nanoseconds) waiting for the block layer to complete the -I/O. Unlike \fBzio_delta\fR this does not include any vdev queuing time and is +I/O request. +Unlike +.Sy zio_delta , +this does not include any vdev queuing time and is therefore solely a measure of the block layer performance. -.RE - -.sp -.ne 2 -.na -\fBzio_timestamp\fR -.ad -.RS 12n -The time when a given I/O was submitted. -.RE - -.sp -.ne 2 -.na -\fBzio_delta\fR -.ad -.RS 12n -The time required to service a given I/O. -.RE - -.sp -.ne 2 -.na -\fBprev_state\fR -.ad -.RS 12n +.It Sy zio_timestamp +The time when a given I/O request was submitted. +.It Sy zio_delta +The time required to service a given I/O request. +.It Sy prev_state The previous state of the vdev. -.RE - -.sp -.ne 2 -.na -\fBcksum_expected\fR -.ad -.RS 12n +.It Sy cksum_expected The expected checksum value for the block. -.RE - -.sp -.ne 2 -.na -\fBcksum_actual\fR -.ad -.RS 12n +.It Sy cksum_actual The actual checksum value for an errant block. -.RE - -.sp -.ne 2 -.na -\fBcksum_algorithm\fR -.ad -.RS 12n -Checksum algorithm used. See \fBzfs\fR(8) for more information on checksum -algorithms available. -.RE - -.sp -.ne 2 -.na -\fBcksum_byteswap\fR -.ad -.RS 12n +.It Sy cksum_algorithm +Checksum algorithm used. +See +.Xr zfsprops 8 +for more information on the available checksum algorithms. +.It Sy cksum_byteswap Whether or not the data is byteswapped. -.RE - -.sp -.ne 2 -.na -\fBbad_ranges\fR -.ad -.RS 12n -[start, end) pairs of corruption offsets. Offsets are always aligned on a -64-bit boundary, and can include some gaps of non-corruption. -(See \fBbad_ranges_min_gap\fR) -.RE - -.sp -.ne 2 -.na -\fBbad_ranges_min_gap\fR -.ad -.RS 12n -In order to bound the size of the \fBbad_ranges\fR array, gaps of non-corruption -less than or equal to \fBbad_ranges_min_gap\fR bytes have been merged with -adjacent corruption. Always at least 8 bytes, since corruption is detected -on a 64-bit word basis. -.RE - -.sp -.ne 2 -.na -\fBbad_range_sets\fR -.ad -.RS 12n -This array has one element per range in \fBbad_ranges\fR. Each element contains +.It Sy bad_ranges +.No [\& Ns Ar start , end ) +pairs of corruption offsets. +Offsets are always aligned on a 64-bit boundary, +and can include some gaps of non-corruption. +(See +.Sy bad_ranges_min_gap ) +.It Sy bad_ranges_min_gap +In order to bound the size of the +.Sy bad_ranges +array, gaps of non-corruption +less than or equal to +.Sy bad_ranges_min_gap +bytes have been merged with +adjacent corruption. +Always at least 8 bytes, since corruption is detected on a 64-bit word basis. +.It Sy bad_range_sets +This array has one element per range in +.Sy bad_ranges . +Each element contains the count of bits in that range which were clear in the good data and set in the bad data. -.RE - -.sp -.ne 2 -.na -\fBbad_range_clears\fR -.ad -.RS 12n -This array has one element per range in \fBbad_ranges\fR. Each element contains +.It Sy bad_range_clears +This array has one element per range in +.Sy bad_ranges . +Each element contains the count of bits for that range which were set in the good data and clear in the bad data. -.RE - -.sp -.ne 2 -.na -\fBbad_set_bits\fR -.ad -.RS 12n -If this field exists, it is an array of: (bad data & ~(good data)); that is, -the bits set in the bad data which are cleared in the good data. Each element -corresponds a byte whose offset is in a range in \fBbad_ranges\fR, and the -array is ordered by offset. Thus, the first element is the first byte in the -first \fBbad_ranges\fR range, and the last element is the last byte in the last -\fBbad_ranges\fR range. -.RE - -.sp -.ne 2 -.na -\fBbad_cleared_bits\fR -.ad -.RS 12n -Like \fBbad_set_bits\fR, but contains: (good data & ~(bad data)); that is, -the bits set in the good data which are cleared in the bad data. -.RE - -.sp -.ne 2 -.na -\fBbad_set_histogram\fR -.ad -.RS 12n -If this field exists, it is an array of counters. Each entry counts bits set -in a particular bit of a big-endian uint64 type. The first entry counts bits +.It Sy bad_set_bits +If this field exists, it is an array of +.Pq Ar bad data No & ~( Ns Ar good data ) ; +that is, the bits set in the bad data which are cleared in the good data. +Each element corresponds a byte whose offset is in a range in +.Sy bad_ranges , +and the array is ordered by offset. +Thus, the first element is the first byte in the first +.Sy bad_ranges +range, and the last element is the last byte in the last +.Sy bad_ranges +range. +.It Sy bad_cleared_bits +Like +.Sy bad_set_bits , +but contains +.Pq Ar good data No & ~( Ns Ar bad data ) ; +that is, the bits set in the good data which are cleared in the bad data. +.It Sy bad_set_histogram +If this field exists, it is an array of counters. +Each entry counts bits set in a particular bit of a big-endian uint64 type. +The first entry counts bits set in the high-order bit of the first byte, the 9th byte, etc, and the last entry counts bits set of the low-order bit of the 8th byte, the 16th byte, etc. This information is useful for observing a stuck bit in a parallel data path, such as IDE or parallel SCSI. -.RE - -.sp -.ne 2 -.na -\fBbad_cleared_histogram\fR -.ad -.RS 12n -If this field exists, it is an array of counters. Each entry counts bit clears -in a particular bit of a big-endian uint64 type. The first entry counts bits +.It Sy bad_cleared_histogram +If this field exists, it is an array of counters. +Each entry counts bit clears in a particular bit of a big-endian uint64 type. +The first entry counts bits clears of the high-order bit of the first byte, the 9th byte, etc, and the -last entry counts clears of the low-order bit of the 8th byte, the 16th byte, -etc. This information is useful for observing a stuck bit in a parallel data +last entry counts clears of the low-order bit of the 8th byte, the 16th byte, etc. +This information is useful for observing a stuck bit in a parallel data path, such as IDE or parallel SCSI. -.RE - -.SS "I/O STAGES" -.sp -.LP -The ZFS I/O pipeline is comprised of various stages which are defined -below. The individual stages are used to construct these basic I/O -operations: Read, Write, Free, Claim, and Ioctl. These stages may be -set on an event to describe the life cycle of a given I/O. - +.El +. +.Sh I/O STAGES +The ZFS I/O pipeline is comprised of various stages which are defined below. +The individual stages are used to construct these basic I/O +operations: Read, Write, Free, Claim, and Ioctl. +These stages may be +set on an event to describe the life cycle of a given I/O request. +.Pp .TS tab(:); l l l . @@ -913,14 +396,14 @@ ZIO_STAGE_CHECKSUM_VERIFY:0x00800000:R---- ZIO_STAGE_DONE:0x01000000:RWFCI .TE - -.SS "I/O FLAGS" -.sp -.LP -Every I/O in the pipeline contains a set of flags which describe its -function and are used to govern its behavior. These flags will be set -in an event as an \fBzio_flags\fR payload entry. - +. +.Sh I/O FLAGS +Every I/O request in the pipeline contains a set of flags which describe its +function and are used to govern its behavior. +These flags will be set in an event as a +.Sy zio_flags +payload entry. +.Pp .TS tab(:); l l . -- 2.11.4.GIT