diff options
Diffstat (limited to 'upstream/opensuse-tumbleweed/man5/proc_pid_io.5')
-rw-r--r-- | upstream/opensuse-tumbleweed/man5/proc_pid_io.5 | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/upstream/opensuse-tumbleweed/man5/proc_pid_io.5 b/upstream/opensuse-tumbleweed/man5/proc_pid_io.5 new file mode 100644 index 00000000..493c7b8b --- /dev/null +++ b/upstream/opensuse-tumbleweed/man5/proc_pid_io.5 @@ -0,0 +1,100 @@ +.\" Copyright (C) 1994, 1995, Daniel Quinlan <quinlan@yggdrasil.com> +.\" Copyright (C) 2002-2008, 2017, Michael Kerrisk <mtk.manpages@gmail.com> +.\" Copyright (C) 2023, Alejandro Colomar <alx@kernel.org> +.\" +.\" SPDX-License-Identifier: GPL-3.0-or-later +.\" +.TH proc_pid_io 5 2024-05-02 "Linux man-pages (unreleased)" +.SH NAME +/proc/pid/io \- I/O statistics +.SH DESCRIPTION +.TP +.IR /proc/ pid /io " (since Linux 2.6.20)" +.\" commit 7c3ab7381e79dfc7db14a67c6f4f3285664e1ec2 +This file contains I/O statistics +for the process and its waited-for children, +for example: +.IP +.in +4n +.EX +.RB "#" " cat /proc/3828/io" +rchar: 323934931 +wchar: 323929600 +syscr: 632687 +syscw: 632675 +read_bytes: 0 +write_bytes: 323932160 +cancelled_write_bytes: 0 +.EE +.in +.IP +The fields are as follows: +.RS +.TP +.IR rchar ": characters read" +The number of bytes +returned by successful +.BR read (2) +and similar system calls. +.TP +.IR wchar ": characters written" +The number of bytes +returned by successful +.BR write (2) +and similar system calls. +.TP +.IR syscr ": read syscalls" +The number of "file read" system calls\[em]those from the +.BR read (2) +family, +.BR sendfile (2), +.BR copy_file_range (2), +and +.BR ioctl (2) +.BR BTRFS_IOC_ENCODED_READ [ _32 ] +(including when invoked by the kernel as part of other syscalls). +.TP +.IR syscw ": write syscalls" +The number of "file write" system calls\[em]those from the +.BR write (2) +family, +.BR sendfile (2), +.BR copy_file_range (2), +and +.BR ioctl (2) +.BR BTRFS_IOC_ENCODED_WRITE [ _32 ] +(including when invoked by the kernel as part of other syscalls). +.TP +.IR read_bytes ": bytes read" +The number of bytes really fetched from the storage layer. +This is accurate for block-backed filesystems. +.TP +.IR write_bytes ": bytes written" +The number of bytes really sent to the storage layer. +.TP +.IR cancelled_write_bytes : +The above statistics fail to account for truncation: +if a process writes 1 MB to a regular file and then removes it, +said 1 MB will not be written, but +.I will +have nevertheless been accounted as a 1 MB write. +This field represents the number of bytes "saved" from I/O writeback. +This can yield to having done negative I/O +if caches dirtied by another process are truncated. +.I cancelled_write_bytes +applies to I/O already accounted-for in +.IR write_bytes . +.RE +.IP +Permission to access this file is governed by +.BR ptrace (2) +access mode +.BR PTRACE_MODE_READ_FSCREDS . +.SH CAVEATS +These counters are not atomic: +on systems where 64-bit integer operations may tear, +a counter could be updated simultaneously with a read, +yielding an incorrect intermediate value. +.SH SEE ALSO +.BR getrusage (2), +.BR proc (5) |