| From 331023be2b20d177d533e5fa18f5d8834570613f Mon Sep 17 00:00:00 2001 |
| From: Konstantin Kharlamov <Hi-Angel@yandex.ru> |
| Date: Tue, 16 Aug 2022 19:10:38 +0300 |
| Subject: [PATCH] doc: clarify that I/O errors may go unnoticed without |
| direct=1 |
| |
| Fixes: https://github.com/axboe/fio/issues/1443 |
| |
| Reported-by: Konstantin Kharlamov <Hi-Angel@yandex.ru> |
| Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru> |
| --- |
| HOWTO.rst | 7 +++++++ |
| fio.1 | 10 ++++++++++ |
| 2 files changed, 17 insertions(+) |
| |
| diff --git a/HOWTO.rst b/HOWTO.rst |
| index c94238ed..08be687c 100644 |
| --- a/HOWTO.rst |
| +++ b/HOWTO.rst |
| @@ -3927,6 +3927,13 @@ Error handling |
| appended, the total error count and the first error. The error field given |
| in the stats is the first error that was hit during the run. |
| |
| + Note: a write error from the device may go unnoticed by fio when using |
| + buffered IO, as the write() (or similar) system call merely dirties the |
| + kernel pages, unless :option:`sync` or :option:`direct` is used. Device IO |
| + errors occur when the dirty data is actually written out to disk. If fully |
| + sync writes aren't desirable, :option:`fsync` or :option:`fdatasync` can be |
| + used as well. This is specific to writes, as reads are always synchronous. |
| + |
| The allowed values are: |
| |
| **none** |
| diff --git a/fio.1 b/fio.1 |
| index d40b4247..27454b0b 100644 |
| --- a/fio.1 |
| +++ b/fio.1 |
| @@ -3606,6 +3606,16 @@ EILSEQ) until the runtime is exceeded or the I/O size specified is |
| completed. If this option is used, there are two more stats that are |
| appended, the total error count and the first error. The error field given |
| in the stats is the first error that was hit during the run. |
| +.RS |
| +.P |
| +Note: a write error from the device may go unnoticed by fio when using buffered |
| +IO, as the write() (or similar) system call merely dirties the kernel pages, |
| +unless `sync' or `direct' is used. Device IO errors occur when the dirty data is |
| +actually written out to disk. If fully sync writes aren't desirable, `fsync' or |
| +`fdatasync' can be used as well. This is specific to writes, as reads are always |
| +synchronous. |
| +.RS |
| +.P |
| The allowed values are: |
| .RS |
| .RS |