* [PATCH v1 1/3] proc_pid_fdinfo.5: Reduce indent for most of the page
@ 2024-10-15 18:38 Ian Rogers
2024-10-15 18:38 ` [PATCH v1 2/3] proc_pid_fdinfo.5: Add subsection headers for different fd types Ian Rogers
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Ian Rogers @ 2024-10-15 18:38 UTC (permalink / raw)
To: Alejandro Colomar
Cc: David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Jonathan Corbet, dri-devel, linux-doc,
linux-kernel, linux-man, Ian Rogers
When /proc/pid/fdinfo was part of proc.5 man page the indentation made
sense. As a standalone man page the indentation doesn't need to be so
far over to the right.
Signed-off-by: Ian Rogers <irogers@google.com>
---
man/man5/proc_pid_fdinfo.5 | 50 +++++++++++++++++++-------------------
1 file changed, 25 insertions(+), 25 deletions(-)
diff --git a/man/man5/proc_pid_fdinfo.5 b/man/man5/proc_pid_fdinfo.5
index 1e23bbe02..0c4950d5d 100644
--- a/man/man5/proc_pid_fdinfo.5
+++ b/man/man5/proc_pid_fdinfo.5
@@ -8,8 +8,9 @@
.SH NAME
/proc/pid/fdinfo/ \- information about file descriptors
.SH DESCRIPTION
-.TP
+.TP 0
.IR /proc/ pid /fdinfo/ " (since Linux 2.6.22)"
+.P
This is a subdirectory containing one entry for each file which the
process has open, named by its file descriptor.
The files in this directory are readable only by the owner of the process.
@@ -17,9 +18,9 @@ The contents of each file can be read to obtain information
about the corresponding file descriptor.
The content depends on the type of file referred to by the
corresponding file descriptor.
-.IP
+.P
For regular files and directories, we see something like:
-.IP
+.P
.in +4n
.EX
.RB "$" " cat /proc/12015/fdinfo/4"
@@ -28,7 +29,7 @@ flags: 01002002
mnt_id: 21
.EE
.in
-.IP
+.P
The fields are as follows:
.RS
.TP
@@ -51,7 +52,6 @@ this field incorrectly displayed the setting of
at the time the file was opened,
rather than the current setting of the close-on-exec flag.
.TP
-.I
.I mnt_id
This field, present since Linux 3.15,
.\" commit 49d063cb353265c3af701bab215ac438ca7df36d
@@ -59,13 +59,13 @@ is the ID of the mount containing this file.
See the description of
.IR /proc/ pid /mountinfo .
.RE
-.IP
+.P
For eventfd file descriptors (see
.BR eventfd (2)),
we see (since Linux 3.8)
.\" commit cbac5542d48127b546a23d816380a7926eee1c25
the following fields:
-.IP
+.P
.in +4n
.EX
pos: 0
@@ -74,16 +74,16 @@ mnt_id: 10
eventfd\-count: 40
.EE
.in
-.IP
+.P
.I eventfd\-count
is the current value of the eventfd counter, in hexadecimal.
-.IP
+.P
For epoll file descriptors (see
.BR epoll (7)),
we see (since Linux 3.8)
.\" commit 138d22b58696c506799f8de759804083ff9effae
the following fields:
-.IP
+.P
.in +4n
.EX
pos: 0
@@ -93,7 +93,7 @@ tfd: 9 events: 19 data: 74253d2500000009
tfd: 7 events: 19 data: 74253d2500000007
.EE
.in
-.IP
+.P
Each of the lines beginning
.I tfd
describes one of the file descriptors being monitored via
@@ -110,13 +110,13 @@ descriptor.
The
.I data
field is the data value associated with this file descriptor.
-.IP
+.P
For signalfd file descriptors (see
.BR signalfd (2)),
we see (since Linux 3.8)
.\" commit 138d22b58696c506799f8de759804083ff9effae
the following fields:
-.IP
+.P
.in +4n
.EX
pos: 0
@@ -125,7 +125,7 @@ mnt_id: 10
sigmask: 0000000000000006
.EE
.in
-.IP
+.P
.I sigmask
is the hexadecimal mask of signals that are accepted via this
signalfd file descriptor.
@@ -135,12 +135,12 @@ and
.BR SIGQUIT ;
see
.BR signal (7).)
-.IP
+.P
For inotify file descriptors (see
.BR inotify (7)),
we see (since Linux 3.8)
the following fields:
-.IP
+.P
.in +4n
.EX
pos: 0
@@ -150,7 +150,7 @@ inotify wd:2 ino:7ef82a sdev:800001 mask:800afff ignored_mask:0 fhandle\-bytes:8
inotify wd:1 ino:192627 sdev:800001 mask:800afff ignored_mask:0 fhandle\-bytes:8 fhandle\-type:1 f_handle:27261900802dfd73
.EE
.in
-.IP
+.P
Each of the lines beginning with "inotify" displays information about
one file or directory that is being monitored.
The fields in this line are as follows:
@@ -168,19 +168,19 @@ The ID of the device where the target file resides (in hexadecimal).
.I mask
The mask of events being monitored for the target file (in hexadecimal).
.RE
-.IP
+.P
If the kernel was built with exportfs support, the path to the target
file is exposed as a file handle, via three hexadecimal fields:
.IR fhandle\-bytes ,
.IR fhandle\-type ,
and
.IR f_handle .
-.IP
+.P
For fanotify file descriptors (see
.BR fanotify (7)),
we see (since Linux 3.8)
the following fields:
-.IP
+.P
.in +4n
.EX
pos: 0
@@ -190,7 +190,7 @@ fanotify flags:0 event\-flags:88002
fanotify ino:19264f sdev:800001 mflags:0 mask:1 ignored_mask:0 fhandle\-bytes:8 fhandle\-type:1 f_handle:4f261900a82dfd73
.EE
.in
-.IP
+.P
The fourth line displays information defined when the fanotify group
was created via
.BR fanotify_init (2):
@@ -210,7 +210,7 @@ argument given to
.BR fanotify_init (2)
(expressed in hexadecimal).
.RE
-.IP
+.P
Each additional line shown in the file contains information
about one of the marks in the fanotify group.
Most of these fields are as for inotify, except:
@@ -228,16 +228,16 @@ The events mask for this mark
The mask of events that are ignored for this mark
(expressed in hexadecimal).
.RE
-.IP
+.P
For details on these fields, see
.BR fanotify_mark (2).
-.IP
+.P
For timerfd file descriptors (see
.BR timerfd (2)),
we see (since Linux 3.17)
.\" commit af9c4957cf212ad9cf0bee34c95cb11de5426e85
the following fields:
-.IP
+.P
.in +4n
.EX
pos: 0
--
2.47.0.rc1.288.g06298d1525-goog
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v1 2/3] proc_pid_fdinfo.5: Add subsection headers for different fd types
2024-10-15 18:38 [PATCH v1 1/3] proc_pid_fdinfo.5: Reduce indent for most of the page Ian Rogers
@ 2024-10-15 18:38 ` Ian Rogers
2024-10-15 18:38 ` [PATCH v1 3/3] proc_pid_fdinfo.5: Add DRM subsection Ian Rogers
2024-10-15 20:32 ` [PATCH v1 1/3] proc_pid_fdinfo.5: Reduce indent for most of the page G. Branden Robinson
2 siblings, 0 replies; 5+ messages in thread
From: Ian Rogers @ 2024-10-15 18:38 UTC (permalink / raw)
To: Alejandro Colomar
Cc: David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Jonathan Corbet, dri-devel, linux-doc,
linux-kernel, linux-man, Ian Rogers
Make the sections about eventfd, epoll, signalfd, inotify, fanotify,
timerfd better separated with a clearer subsection header.
Signed-off-by: Ian Rogers <irogers@google.com>
---
man/man5/proc_pid_fdinfo.5 | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/man/man5/proc_pid_fdinfo.5 b/man/man5/proc_pid_fdinfo.5
index 0c4950d5d..3f90f6bb5 100644
--- a/man/man5/proc_pid_fdinfo.5
+++ b/man/man5/proc_pid_fdinfo.5
@@ -59,6 +59,7 @@ is the ID of the mount containing this file.
See the description of
.IR /proc/ pid /mountinfo .
.RE
+.SS eventfd
.P
For eventfd file descriptors (see
.BR eventfd (2)),
@@ -77,6 +78,7 @@ eventfd\-count: 40
.P
.I eventfd\-count
is the current value of the eventfd counter, in hexadecimal.
+.SS epoll
.P
For epoll file descriptors (see
.BR epoll (7)),
@@ -110,6 +112,7 @@ descriptor.
The
.I data
field is the data value associated with this file descriptor.
+.SS signalfd
.P
For signalfd file descriptors (see
.BR signalfd (2)),
@@ -135,6 +138,7 @@ and
.BR SIGQUIT ;
see
.BR signal (7).)
+.SS inotify
.P
For inotify file descriptors (see
.BR inotify (7)),
@@ -175,6 +179,7 @@ file is exposed as a file handle, via three hexadecimal fields:
.IR fhandle\-type ,
and
.IR f_handle .
+.SS fanotify
.P
For fanotify file descriptors (see
.BR fanotify (7)),
@@ -231,6 +236,7 @@ The mask of events that are ignored for this mark
.P
For details on these fields, see
.BR fanotify_mark (2).
+.SS timerfd
.P
For timerfd file descriptors (see
.BR timerfd (2)),
--
2.47.0.rc1.288.g06298d1525-goog
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v1 3/3] proc_pid_fdinfo.5: Add DRM subsection
2024-10-15 18:38 [PATCH v1 1/3] proc_pid_fdinfo.5: Reduce indent for most of the page Ian Rogers
2024-10-15 18:38 ` [PATCH v1 2/3] proc_pid_fdinfo.5: Add subsection headers for different fd types Ian Rogers
@ 2024-10-15 18:38 ` Ian Rogers
2024-10-15 20:32 ` [PATCH v1 1/3] proc_pid_fdinfo.5: Reduce indent for most of the page G. Branden Robinson
2 siblings, 0 replies; 5+ messages in thread
From: Ian Rogers @ 2024-10-15 18:38 UTC (permalink / raw)
To: Alejandro Colomar
Cc: David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Jonathan Corbet, dri-devel, linux-doc,
linux-kernel, linux-man, Ian Rogers
Add description of DRM fdinfo information based on the Linux kernel's
`Documentation/gpu/drm-usage-stats.rst`:
https://docs.kernel.org/gpu/drm-usage-stats.html
Signed-off-by: Ian Rogers <irogers@google.com>
---
man/man5/proc_pid_fdinfo.5 | 94 ++++++++++++++++++++++++++++++++++++++
1 file changed, 94 insertions(+)
diff --git a/man/man5/proc_pid_fdinfo.5 b/man/man5/proc_pid_fdinfo.5
index 3f90f6bb5..76a2562e8 100644
--- a/man/man5/proc_pid_fdinfo.5
+++ b/man/man5/proc_pid_fdinfo.5
@@ -302,5 +302,99 @@ fields contain the values that
.BR timerfd_gettime (2)
on this file descriptor would return.)
.RE
+.SS Direct Rendering Manager
+.P
+DRM drivers can optionally choose to expose usage stats through
+/proc/pid/fdinfo/. For example:
+.P
+.in +4n
+.EX
+pos: 0
+flags: 02100002
+mnt_id: 26
+ino: 284
+drm-driver: i915
+drm-client-id: 39
+drm-pdev: 0000:00:02.0
+drm-total-system0: 6044 KiB
+drm-shared-system0: 0
+drm-active-system0: 0
+drm-resident-system0: 6044 KiB
+drm-purgeable-system0: 1688 KiB
+drm-total-stolen-system0: 0
+drm-shared-stolen-system0: 0
+drm-active-stolen-system0: 0
+drm-resident-stolen-system0: 0
+drm-purgeable-stolen-system0: 0
+drm-engine-render: 346249 ns
+drm-engine-copy: 0 ns
+drm-engine-video: 0 ns
+drm-engine-capacity-video: 2
+drm-engine-video-enhance: 0 ns
+.EE
+.TP
+.IR drm-driver: " .+ (mandatory)"
+The name this driver registered.
+.TP
+.IR drm-pdev: " <aaaa:bb:cc.d>"
+For PCI devices this should contain the PCI slot address of the device
+in question.
+.TP
+.IR drm-client-id: " [0-9]+"
+Unique value relating to the open DRM file descriptor used to
+distinguish duplicated and shared file descriptors.
+.P
+GPUs usually contain multiple execution engines. Each shall be given a
+stable and unique name (<engine_name>), with possible values
+documented in the driver specific documentation.
+.TP
+.IR drm-engine-<engine_name>: " [0-9]+ ns"
+GPU engine utilization, time spent busy executing workloads for this client.
+.TP
+.IR drm-engine-capacity-<engine_name>: " [0-9]+"
+Capacity of the engine if not 1, cannot be 0.
+.TP
+.IR drm-cycles-<engine_name>: " [0-9]+"
+Contains the number of busy cycles for the given engine. Values are
+not required to be constantly monotonic, but are required to catch up
+with the previously reported larger value within a reasonable
+period. Upon observing a value lower than what was previously read,
+userspace is expected to stay with that larger previous value until a
+monotonic update is seen.
+.TP
+.IR drm-total-cycles-<engine_name>: " [0-9]+"
+Contains the total number cycles for the given engine. This is a
+timestamp in GPU unspecified unit that matches the update rate of
+drm-cycles-<engine_name>. For drivers that implement this interface,
+the engine utilization can be calculated entirely on the GPU clock
+domain, without considering the CPU sleep time between 2 samples.
+.P
+Each possible memory type which can be used to store buffer objects by
+the GPU in question shall be given a stable and unique name <region>.
+The name "memory" is reserved to refer to normal system memory.
+.TP
+.IR drm-memory-<region>: " [0-9]+ [KiB|MiB]"
+The amount of storage currently consumed by the buffer objects belong
+to this client, in the respective memory region.
+.IP
+Default unit shall be bytes with optional unit specifiers of 'KiB' or 'MiB'
+indicating kibi- or mebi-bytes.
+.TP
+.IR drm-shared-<region>: " [0-9]+ [KiB|MiB]"
+The total size of buffers that are shared with another file (e.g., have more
+than a single handle).
+.TP
+.IR drm-total-<region>: " [0-9]+ [KiB|MiB]"
+The total size of buffers that including shared and private memory.
+.TP
+.IR drm-resident-<region>: " [0-9]+ [KiB|MiB]"
+The total size of buffers that are resident in the specified region.
+.TP
+.IR drm-purgeable-<region>: " [0-9]+ [KiB|MiB]"
+The total size of buffers that are purgeable.
+.TP
+.IR drm-active-<region>: " [0-9]+ [KiB|MiB]"
+The total size of buffers that are active on one or more engines.
+
.SH SEE ALSO
.BR proc (5)
--
2.47.0.rc1.288.g06298d1525-goog
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v1 1/3] proc_pid_fdinfo.5: Reduce indent for most of the page
2024-10-15 18:38 [PATCH v1 1/3] proc_pid_fdinfo.5: Reduce indent for most of the page Ian Rogers
2024-10-15 18:38 ` [PATCH v1 2/3] proc_pid_fdinfo.5: Add subsection headers for different fd types Ian Rogers
2024-10-15 18:38 ` [PATCH v1 3/3] proc_pid_fdinfo.5: Add DRM subsection Ian Rogers
@ 2024-10-15 20:32 ` G. Branden Robinson
2024-10-15 21:16 ` Ian Rogers
2 siblings, 1 reply; 5+ messages in thread
From: G. Branden Robinson @ 2024-10-15 20:32 UTC (permalink / raw)
To: Ian Rogers
Cc: Alejandro Colomar, David Airlie, Simona Vetter, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, Jonathan Corbet, dri-devel,
linux-doc, linux-kernel, linux-man
[-- Attachment #1.1: Type: text/plain, Size: 1890 bytes --]
At 2024-10-15T11:38:22-0700, Ian Rogers wrote:
> When /proc/pid/fdinfo was part of proc.5 man page the indentation made
> sense. As a standalone man page the indentation doesn't need to be so
> far over to the right.
>
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
> man/man5/proc_pid_fdinfo.5 | 50 +++++++++++++++++++-------------------
> 1 file changed, 25 insertions(+), 25 deletions(-)
>
> diff --git a/man/man5/proc_pid_fdinfo.5 b/man/man5/proc_pid_fdinfo.5
> index 1e23bbe02..0c4950d5d 100644
> --- a/man/man5/proc_pid_fdinfo.5
> +++ b/man/man5/proc_pid_fdinfo.5
> @@ -8,8 +8,9 @@
> .SH NAME
> /proc/pid/fdinfo/ \- information about file descriptors
> .SH DESCRIPTION
> -.TP
> +.TP 0
> .IR /proc/ pid /fdinfo/ " (since Linux 2.6.22)"
> +.P
> This is a subdirectory containing one entry for each file which the
> process has open, named by its file descriptor.
> The files in this directory are readable only by the owner of the process.
I don't find this usage to be idiomatic.
There's no point having a tagged paragraph if you want that paragraph's
indentation to be zero.
I'll grant that it's also unusual to have a man page's "Description"
section lurch straight into a definition list without any preamble.
Since the only topic of this man page is now the file (or class of
files) in question, I suggest dropping the paragraph tag altogether
since it duplicates the summary description.
And as it happens, you can put font styling _in_ the summary desription.
So I suggest something like:
.SH NAME
.IR /proc/ pid /fdinfo " \- information about file descriptors"
.SH DESCRIPTION
Since Linux 2.6.22,
this subdirectory contains one entry for each file that process
.I pid
has open,
named for its file descriptor.
This renders fine with groff and mandoc(1).
Sample page attached.
Regards,
Branden
[-- Attachment #1.2: proc_pid_fdinfo_ropers.man --]
[-- Type: application/x-troff-man, Size: 6900 bytes --]
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v1 1/3] proc_pid_fdinfo.5: Reduce indent for most of the page
2024-10-15 20:32 ` [PATCH v1 1/3] proc_pid_fdinfo.5: Reduce indent for most of the page G. Branden Robinson
@ 2024-10-15 21:16 ` Ian Rogers
0 siblings, 0 replies; 5+ messages in thread
From: Ian Rogers @ 2024-10-15 21:16 UTC (permalink / raw)
To: G. Branden Robinson
Cc: Alejandro Colomar, David Airlie, Simona Vetter, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, Jonathan Corbet, dri-devel,
linux-doc, linux-kernel, linux-man
On Tue, Oct 15, 2024 at 1:32 PM G. Branden Robinson
<g.branden.robinson@gmail.com> wrote:
>
> At 2024-10-15T11:38:22-0700, Ian Rogers wrote:
> > When /proc/pid/fdinfo was part of proc.5 man page the indentation made
> > sense. As a standalone man page the indentation doesn't need to be so
> > far over to the right.
> >
> > Signed-off-by: Ian Rogers <irogers@google.com>
> > ---
> > man/man5/proc_pid_fdinfo.5 | 50 +++++++++++++++++++-------------------
> > 1 file changed, 25 insertions(+), 25 deletions(-)
> >
> > diff --git a/man/man5/proc_pid_fdinfo.5 b/man/man5/proc_pid_fdinfo.5
> > index 1e23bbe02..0c4950d5d 100644
> > --- a/man/man5/proc_pid_fdinfo.5
> > +++ b/man/man5/proc_pid_fdinfo.5
> > @@ -8,8 +8,9 @@
> > .SH NAME
> > /proc/pid/fdinfo/ \- information about file descriptors
> > .SH DESCRIPTION
> > -.TP
> > +.TP 0
> > .IR /proc/ pid /fdinfo/ " (since Linux 2.6.22)"
> > +.P
> > This is a subdirectory containing one entry for each file which the
> > process has open, named by its file descriptor.
> > The files in this directory are readable only by the owner of the process.
>
> I don't find this usage to be idiomatic.
>
> There's no point having a tagged paragraph if you want that paragraph's
> indentation to be zero.
>
> I'll grant that it's also unusual to have a man page's "Description"
> section lurch straight into a definition list without any preamble.
>
> Since the only topic of this man page is now the file (or class of
> files) in question, I suggest dropping the paragraph tag altogether
> since it duplicates the summary description.
>
> And as it happens, you can put font styling _in_ the summary desription.
>
> So I suggest something like:
>
> .SH NAME
> .IR /proc/ pid /fdinfo " \- information about file descriptors"
> .SH DESCRIPTION
> Since Linux 2.6.22,
> this subdirectory contains one entry for each file that process
> .I pid
> has open,
> named for its file descriptor.
>
> This renders fine with groff and mandoc(1).
>
> Sample page attached.
Thanks for the advice on how to make things more idiomatic. I'll try
to incorporate your feedback into v2.
Ian
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-10-15 21:16 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-15 18:38 [PATCH v1 1/3] proc_pid_fdinfo.5: Reduce indent for most of the page Ian Rogers
2024-10-15 18:38 ` [PATCH v1 2/3] proc_pid_fdinfo.5: Add subsection headers for different fd types Ian Rogers
2024-10-15 18:38 ` [PATCH v1 3/3] proc_pid_fdinfo.5: Add DRM subsection Ian Rogers
2024-10-15 20:32 ` [PATCH v1 1/3] proc_pid_fdinfo.5: Reduce indent for most of the page G. Branden Robinson
2024-10-15 21:16 ` Ian Rogers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox