.\" Copyright (C) 1994, 1995, Daniel Quinlan .\" Copyright (C) 2002-2008, 2017, Michael Kerrisk .\" Copyright (C) 2023, Alejandro Colomar .\" .\" SPDX-License-Identifier: GPL-3.0-or-later .\" .TH proc_pid_io 5 2024-03-18 "Linux man-pages 6.7" .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)