2012-11-22 21:23:54

by Cyrill Gorcunov

[permalink] [raw]
Subject: [patch -mm 4/4] docs: Add documentation about /proc/<pid>/fdinfo/<fd> output

Signed-off-by: Cyrill Gorcunov <[email protected]>
CC: Pavel Emelyanov <[email protected]>
CC: Oleg Nesterov <[email protected]>
CC: Andrey Vagin <[email protected]>
CC: Al Viro <[email protected]>
CC: Alexey Dobriyan <[email protected]>
CC: Andrew Morton <[email protected]>
CC: James Bottomley <[email protected]>
CC: "Aneesh Kumar K.V" <[email protected]>
CC: Alexey Dobriyan <[email protected]>
CC: Matthew Helsley <[email protected]>
CC: "J. Bruce Fields" <[email protected]>
CC: "Aneesh Kumar K.V" <[email protected]>
CC: Tvrtko Ursulin <[email protected]>
---
Documentation/filesystems/proc.txt | 81 +++++++++++++++++++++++++++++++++++++
1 file changed, 81 insertions(+)

Index: linux-2.6.git/Documentation/filesystems/proc.txt
===================================================================
--- linux-2.6.git.orig/Documentation/filesystems/proc.txt
+++ linux-2.6.git/Documentation/filesystems/proc.txt
@@ -41,6 +41,7 @@ Table of Contents
3.5 /proc/<pid>/mountinfo - Information about mounts
3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm
3.7 /proc/<pid>/task/<tid>/children - Information about task children
+ 3.8 /proc/<pid>/fdinfo/<fd> - Information about opened file

4 Configuring procfs
4.1 Mount options
@@ -1623,6 +1624,86 @@ pids, so one need to either stop or free
if precise results are needed.


+3.7 /proc/<pid>/fdinfo/<fd> - Information about opened file
+---------------------------------------------------------------
+This file provides information associated with an opened file. The regular
+files have at least two fields -- 'pos' and 'flags'. The 'pos' represents
+the current offset of the opened file in decimal form [see lseek(2) for
+details] and the 'flags' denotes octal O_xxx mask the file has been
+created with [see open(2) for details].
+
+A typical output is
+
+ pos: 0
+ flags: 0100002
+
+The files such as eventfd, fsnotify, signalfd, epoll among the regular pos/flags
+pair provide additional information peculiar to the objects they represent.
+
+ Eventfd files
+ ~~~~~~~~~~~~~
+ pos: 0
+ flags: 04002
+ eventfd-count: 5a
+
+ where 'eventfd-count' is hex value of a counter.
+
+ Signalfd files
+ ~~~~~~~~~~~~~~
+ pos: 0
+ flags: 04002
+ sigmask: 0000000000000200
+
+ where 'sigmask' is hex value of the signal mask associated
+ with a file.
+
+ Epoll files
+ ~~~~~~~~~~~
+ pos: 0
+ flags: 02
+ tfd: 5 events: 1d data: ffffffffffffffff
+
+ where 'tfd' is a target file descriptor number in decimal form,
+ 'events' is events mask being watched and the 'data' is data
+ associated with a target [see epoll(7) for more details].
+
+ Fsnotify files
+ ~~~~~~~~~~~~~~
+ For inotify files the format is the following
+
+ pos: 0
+ flags: 02000000
+ inotify wd:3 ino:9e7e sdev:800013 mask:800afce ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:7e9e0000640d1b6d
+
+ where 'wd' is a watch descriptor in decimal form, ie a target file
+ descriptor number, 'ino' and 'sdev' are inode and device where the
+ target file lays on and the 'mask' is the mask of events, all in hex
+ form [see inotify(7) for more details].
+
+ In case if the kernel built with exportfs the path to the target file
+ is encoded as a file handle. The file handle provided by three fields
+ 'fhandle-bytes', 'fhandle-type' and 'f_handle', all in hex format.
+
+ If the kernel is built without exportfs support the file handle won't be
+ printed out.
+
+ For fanotify files the format is the following
+
+ pos: 0
+ flags: 02
+ fanotify ino:2 sdev:800013 mask:1 ignored_mask:40000000 fhandle-bytes:8 fhandle-type:1 f_handle:0200000000000000
+
+ or
+
+ pos: 0
+ flags: 02
+ fanotify mnt_id:13 mask:1 ignored_mask:40000000
+
+ where 'ino', 'sdev' are target inode and device, 'mnt_id' is the mount point identifier,
+ 'mask' is the events mask used and 'ignored_mask' is the mask of events which are
+ to be ignored. All written in hex format.
+
+
------------------------------------------------------------------------------
Configuring procfs
------------------------------------------------------------------------------


2012-11-27 22:47:57

by Andrew Morton

[permalink] [raw]
Subject: Re: [patch -mm 4/4] docs: Add documentation about /proc/<pid>/fdinfo/<fd> output

On Fri, 23 Nov 2012 01:15:26 +0400
Cyrill Gorcunov <[email protected]> wrote:

> Documentation/filesystems/proc.txt | 81 +++++++++++++++++++++++++++++++++++++

Looks good to me. Here's a small tune-up:

--- a/Documentation/filesystems/proc.txt~docs-add-documentation-about-proc-pid-fdinfo-fd-output-fix
+++ a/Documentation/filesystems/proc.txt
@@ -1639,7 +1639,7 @@ if precise results are needed.
This file provides information associated with an opened file. The regular
files have at least two fields -- 'pos' and 'flags'. The 'pos' represents
the current offset of the opened file in decimal form [see lseek(2) for
-details] and the 'flags' denotes octal O_xxx mask the file has been
+details] and 'flags' denotes the octal O_xxx mask the file has been
created with [see open(2) for details].

A typical output is
@@ -1648,7 +1648,7 @@ A typical output is
flags: 0100002

The files such as eventfd, fsnotify, signalfd, epoll among the regular pos/flags
-pair provide additional information peculiar to the objects they represent.
+pair provide additional information particular to the objects they represent.

Eventfd files
~~~~~~~~~~~~~
@@ -1687,17 +1687,18 @@ pair provide additional information pecu

where 'wd' is a watch descriptor in decimal form, ie a target file
descriptor number, 'ino' and 'sdev' are inode and device where the
- target file lays on and the 'mask' is the mask of events, all in hex
+ target file resides and the 'mask' is the mask of events, all in hex
form [see inotify(7) for more details].

- In case if the kernel built with exportfs the path to the target file
- is encoded as a file handle. The file handle provided by three fields
- 'fhandle-bytes', 'fhandle-type' and 'f_handle', all in hex format.
+ If the kernel was built with exportfs support, the path to the target
+ file is encoded as a file handle. The file handle is provided by three
+ fields 'fhandle-bytes', 'fhandle-type' and 'f_handle', all in hex
+ format.

If the kernel is built without exportfs support the file handle won't be
printed out.

- For fanotify files the format is the following
+ For fanotify files the format is

pos: 0
flags: 02
@@ -1709,9 +1710,9 @@ pair provide additional information pecu
flags: 02
fanotify mnt_id:13 mask:1 ignored_mask:40000000

- where 'ino', 'sdev' are target inode and device, 'mnt_id' is the mount point identifier,
- 'mask' is the events mask used and 'ignored_mask' is the mask of events which are
- to be ignored. All written in hex format.
+ where 'ino', 'sdev' are target inode and device, 'mnt_id' is the mount
+ point identifier, 'mask' is the events mask used and 'ignored_mask' is
+ the mask of events which are to be ignored. All in hex format.


------------------------------------------------------------------------------
_

2012-11-28 06:40:52

by Cyrill Gorcunov

[permalink] [raw]
Subject: Re: [patch -mm 4/4] docs: Add documentation about /proc/<pid>/fdinfo/<fd> output

On Tue, Nov 27, 2012 at 02:47:54PM -0800, Andrew Morton wrote:
> On Fri, 23 Nov 2012 01:15:26 +0400
> Cyrill Gorcunov <[email protected]> wrote:
>
> > Documentation/filesystems/proc.txt | 81 +++++++++++++++++++++++++++++++++++++
>
> Looks good to me. Here's a small tune-up:

Thanks a lot, Andrew!

Cyrill