Package: pciutils
Version: 1:3.13.0-1+b1
Severity: minor
Tags: patch

N.B.  What does the unit 'T' (in GT/s) stand for?  (T is a symbol for the
unit 'tesla'.)

   * What led up to the situation?

     Checking for defects with

test-[g|n]roff -mandoc -t -K utf8 -rF0 -rHY=0 -ww -b -z < "man page"

  [Use "groff -e ' $' <file>" to find trailing spaces.]

  ["test-groff" is a script in the repository for "groff"; is not shipped]
(local copy and "troff" slightly changed by me).

  [The fate of "test-nroff" was decided in groff bug #55941.]

   * What was the outcome of this action?


troff: backtrace: '/home/bg/git/groff/build/s-tmac/an.tmac':560: macro 'I'
troff: backtrace: file '<stdin>':40
troff:<stdin>:40: warning: trailing space in the line
troff: backtrace: file '<stdin>':102
troff:<stdin>:102: warning: trailing space in the line
troff: backtrace: file '<stdin>':142
troff:<stdin>:142: warning: tab character in unquoted macro argument
an-end-check:<stdin>: Warning: Different number of .RS and .RE calls, 
an-RS-open=1 at end of file

Output from "test-nroff  -mandoc -t -K utf8 -rF0 -rHY=0 -ww -b -z ":

troff: backtrace: '/home/bg/git/groff/build/s-tmac/an.tmac':560: macro 'I'
troff: backtrace: file '<stdin>':40
troff:<stdin>:40: warning: trailing space in the line
troff: backtrace: file '<stdin>':142
troff:<stdin>:142: warning: tab character in unquoted macro argument
an-end-check:<stdin>: Warning: Different number of .RS and .RE calls, 
an-RS-open=1 at end of file


   * What outcome did you expect instead?

     No output (no warnings).

-.-

  General remarks and further material, if a diff-file exist, are in the
attachments.


-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.11.5-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), 
LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages pciutils depends on:
ii  libc6     2.40-3
ii  libkmod2  33+20240816-2
ii  libpci3   1:3.13.0-1+b1

pciutils recommends no packages.

Versions of packages pciutils suggests:
ii  bzip2  1.0.8-6
ii  curl   8.11.0-1
ii  lynx   2.9.2-1
ii  wget   1.24.5-2+b1

-- no debconf information
  Any program (person), that produces man pages, should check the output
for defects by using (both groff and nroff)

[gn]roff -mandoc -t -ww -b -z -K utf8  <man page>

  The same goes for man pages that are used as an input.

  For a style guide use

  mandoc -T lint

-.-

  So any 'generator' should check its products with the above mentioned
'groff', 'mandoc',  and additionally with 'nroff ...'.

  This is just a simple quality control measure.

  The 'generator' may have to be corrected to get a better man page,
the source file may, and any additional file may.

  Common defects:

  Input text line longer than 80 bytes.

  Not removing trailing spaces (in in- and output).
  The reason for these trailing spaces should be found and eliminated.

  Not beginning each input sentence on a new line.
Lines should thus be shorter.

  See man-pages(7), item 'semantic newline'.

-.-

The difference between the formatted output of the original and patched file
can be seen with:

  nroff -mandoc <file1> > <out1>
  nroff -mandoc <file2> > <out2>
  diff -u <out1> <out2>

and for groff, using

"printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - "

instead of 'nroff -mandoc'

  Add the option '-t', if the file contains a table.

  Read the output of 'diff -u' with 'less -R' or similar.

-.-.

  If 'man' (man-db) is used to check the manual for warnings,
the following must be set:

  The option "-warnings=w"

  The environmental variable:

export MAN_KEEP_STDERR=yes (or any non-empty value)

  or

  (produce only warnings):

export MANROFFOPT="-ww -b -z"

export MAN_KEEP_STDERR=yes (or any non-empty value)

-.-.

Output from "mandoc -T lint pcilmr.8": (shortened list)

     23 input text line longer than 80 bytes

-.-.

Output from "test-groff -mandoc -t -ww -b -z pcilmr.8": (shortened list)

      1 tab character in unquoted macro argument

-.-.

Change two HYPHEN-MINUSES (code 0x2D) to an em-dash (\(em),
if one is intended.
  " \(em " creates a too big gap in the text (in "troff").

An en-dash is usually surrounded by a space,
while an em-dash is used without spaces.
"man" (1 byte characters in input) transforms an en-dash (\(en) to one
HYPHEN-MINUS,
and an em-dash to two HYPHEN-MINUSES without considering the space
around it.
If "--" are two single "-" (end of options) then use "\-\-".

pcilmr.8:6:.RB [ "--margin" ]
pcilmr.8:9:.B pcilmr --full
pcilmr.8:12:.B pcilmr --scan
pcilmr.8:148:.BI --margin " <downstream component> ..."
pcilmr.8:151:.B --full
pcilmr.8:153:.B --scan
pcilmr.8:156:.B --scan

-.-.

Change -- in x--y to \(em (em-dash), or, if an
option, to \-\-

9:.B pcilmr --full
12:.B pcilmr --scan
148:.BI --margin " <downstream component> ..."
151:.B --full
153:.B --scan
156:.B --scan

-.-.

Change a HYPHEN-MINUS (code 0x2D) to a minus(-dash) (\-),
if it
is in front of a name for an option,
is a symbol for standard input,
is a single character used to indicate an option,
or is in the NAME section (man-pages(7)).
N.B. - (0x2D), processed as a UTF-8 file, is changed to a hyphen
(0x2010, groff \[u2010] or \[hy]) in the output.

6:.RB [ "--margin" ]
9:.B pcilmr --full
12:.B pcilmr --scan
120:.I -g
127:Utility detects such devices based on their Vendor ID - Device ID pair.
148:.BI --margin " <downstream component> ..."
151:.B --full
153:.B --scan
156:.B --scan
161:.B -c
164:.BI -e " <errors>"
169:.BI -o " <directory>"
175:.BI -d " <time>"
190:\fB-r\fI <recvn>\fP[\fI,<recvn>...\fP]
195:.BI -p " <parallel_lanes>"
202:.I -p
207:.B "Use only one of -T/-t options at the same time (same for -V/-v)."
212:.B -T
216:.BI -t " <steps>"
219:.B -V
221:.I -T
224:.BI -v " <steps>"
227:\fB-g\fI <recvn>\fPt=\fI<criteria>\fP{%|ps}[,f]
234:Specify pass/fail grading criteria for eye width (timing - t) or height
235:(voltage - v) for one of the link receivers. For EW you must choose one of 
the
245:.I -g
253:.BI "pcilmr -o " "csv ab:0.0 " "-r " "1,6 " "-g " "1t=20% " "-g " "1v=f,30 
52:0.0 " "-l " "0,1,2 " "-TV"

-.-.

Test nr. 27:

Strings longer than 3/4 of a standard line length (80)
Use "\:" to split the string at the end of an output line, for example a
long URLs (web address)

256 .UR https://gist.github.com/bombanya/f2b15263712757ffba1a11eea011c419

-.-.

Test nr. 29:

Wrong distance between sentences in the input file.

  Separate the sentences and subordinate clauses; each begins on a new
line.  See man-pages(7) ("Conventions for source file layout") and
"info groff" ("Input Conventions").

  The best procedure is to always start a new sentence on a new line,
at least, if you are typing on a computer.

Remember coding: Only one command ("sentence") on each (logical) line.

E-mail: Easier to quote exactly the relevant lines.

Generally: Easier to edit the sentence.

Patches: Less unaffected text.

Search for two adjacent words is easier, when they belong to the same line,
and the same phrase.

  The amount of space between sentences in the output can then be
controlled with the ".ss" request.

N.B.

  The number of lines affected can be too large to be in a patch.

55:higher, including Pseudo Ports (Retimers). Lane Margining at Receiver 
enables system
57:L0 state. The margin information includes both voltage and time, in either 
direction from
58:the current Receiver position. Margining support for timing is required, 
while support
59:for voltage is optional at 16.0 GT/s and required at 32.0 GT/s and higher 
data rates. Also,
63:(by four points). Lane Margining at the Receiver capability enables users to 
margin PCIe
64:links without a hardware debugger and without the need to stop the target 
system. Utility
78:The utility uses values set in PCIe Base Spec Rev. 5.0 Section 8.4.2 as the 
default eye width and height
79:minimum references. Recommended values were taken from
114:uses full eye width and height values to grade lanes. However, it is 
possible that
115:device supports only one side margining. In such cases by default utility 
will
130:file. For such devices utility can automatically adjust port margining 
parameters
157:Scan for Links with negotiated speed 16 GT/s or higher. Mark "Ready" those 
of them
162:Print Device Lane Margining Capabilities only. Do not run margining.
170:Save margining results in csv form into the specified directory. Utility
184:Remember that Device may use Lane Reversal for Lane numbering. However, 
utility
185:uses logical lane numbers in arguments and for logging. Utility will 
automatically
214:than an Error Count Limit. Use this option to find Link limit.
235:(voltage - v) for one of the link receivers. For EW you must choose one of 
the
241:margining. In such cases by default utility will calculate EW or EH as a
242:double one side result. You can add
247:measurement of the full eye and it does not need to be multiplied. This is 
so called

-.-.

Test nr. 30:

Split lines longer than 80 characters into two or more lines.
Appropriate break points are the end of a sentence and a subordinate
clause; after punctuation marks.

N.B.

  The number of lines affected can be too large to be in a patch.


Line 7, length 112

.RI [ "<common options>" ] " <link port> " [ "<link options>" "] [" "<link 
port> " [ "<link options>" ] " ..." ]

Line 31, length 89

.I "Configured by the user before running the utility, the utility does not 
change them:"

Line 40, length 84

.I "Configured by the utility during operation, utility set them to their 
original "

Line 46, length 96

The Hardware Autonomous Speed Disable bit of the Link Control 2 register must 
be Set in both the

Line 49, length 94

The Hardware Autonomous Width Disable bit of the Link Control register must be 
Set in both the

Line 54, length 82

capability which is mandatory for all Ports supporting a data rate of 16.0 GT/s 
or

Line 55, length 84

higher, including Pseudo Ports (Retimers). Lane Margining at Receiver enables 
system

Line 56, length 86

software to obtain the margin information of a given Receiver while the Link is 
in the

Line 57, length 89

L0 state. The margin information includes both voltage and time, in either 
direction from

Line 58, length 86

the current Receiver position. Margining support for timing is required, while 
support

Line 59, length 91

for voltage is optional at 16.0 GT/s and required at 32.0 GT/s and higher data 
rates. Also,

Line 62, length 89

Utility allows to get an approximation of the eye margin diagram in the form of 
a rhombus

Line 63, length 88

(by four points). Lane Margining at the Receiver capability enables users to 
margin PCIe

Line 64, length 89

links without a hardware debugger and without the need to stop the target 
system. Utility

Line 68, length 89

requires root privileges (to access Extended Configuration Space), but during 
our testing

Line 69, length 94

there were no problems with the devices and they successfully returned to their 
normal initial

Line 73, length 96

The PCIe specification provides reference values for the eye diagram, which are 
also used by the

Line 78, length 104

The utility uses values set in PCIe Base Spec Rev. 5.0 Section 8.4.2 as the 
default eye width and height

Line 82, length 88

Reference grading values currently used by the utility are presented in the 
table below:

Line 114, length 82

uses full eye width and height values to grade lanes. However, it is possible 
that

Line 125, length 81

Thanks to testing or directly from the manufacturer's documentation, we know 
that

Line 130, length 81

file. For such devices utility can automatically adjust port margining 
parameters

Line 157, length 82

Scan for Links with negotiated speed 16 GT/s or higher. Mark "Ready" those of 
them

Line 158, length 81

in which at least one of the Link sides have Margining Ready bit set meaning 
that

Line 185, length 82

uses logical lane numbers in arguments and for logging. Utility will 
automatically

Line 247, length 84

measurement of the full eye and it does not need to be multiplied. This is so 
called

Line 253, length 104

.BI "pcilmr -o " "csv ab:0.0 " "-r " "1,6 " "-g " "1t=20% " "-g " "1v=f,30 
52:0.0 " "-l " "0,1,2 " "-TV"


-.-.

Use \(en (en-dash) for a dash between space characters,
not a minus (\-) or a hyphen (-), except in the NAME section.

pcilmr.8:25:Intel VMD for NVMe SSDs - in case of strange behavior of the
pcilmr.8:127:Utility detects such devices based on their Vendor ID - Device ID 
pair.

-.-.

Split a punctuation mark from a single argument for a two-font macro

26:.BR pcilmr,

-.-.

"[" and "]", showing optional arguments to options, should be typeset in roman.

229:.IB "   <recvn>" t=f[, "<criteria>" "{%|ps}]"
231:.IB "   <recvn>" v= "<criteria>" "[,f]"
233:.IB "   <recvn>" v=f[, "<criteria>" ]

-.-.

No space is needed before a quote (") at the end of a line

40:.I "Configured by the utility during operation, utility set them to their 
original "

-.-.

Space after an end of sentence.

55:higher, including Pseudo Ports (Retimers). Lane Margining at Receiver 
enables system
57:L0 state. The margin information includes both voltage and time, in either 
direction from
58:the current Receiver position. Margining support for timing is required, 
while support
59:for voltage is optional at 16.0 GT/s and required at 32.0 GT/s and higher 
data rates. Also,
63:(by four points). Lane Margining at the Receiver capability enables users to 
margin PCIe
64:links without a hardware debugger and without the need to stop the target 
system. Utility
78:The utility uses values set in PCIe Base Spec Rev. 5.0 Section 8.4.2 as the 
default eye width and height
79:minimum references. Recommended values were taken from
114:uses full eye width and height values to grade lanes. However, it is 
possible that
115:device supports only one side margining. In such cases by default utility 
will
130:file. For such devices utility can automatically adjust port margining 
parameters
143:.RI [ "<domain>" :] <bus> : <dev> . <func>
157:Scan for Links with negotiated speed 16 GT/s or higher. Mark "Ready" those 
of them
162:Print Device Lane Margining Capabilities only. Do not run margining.
170:Save margining results in csv form into the specified directory. Utility
184:Remember that Device may use Lane Reversal for Lane numbering. However, 
utility
185:uses logical lane numbers in arguments and for logging. Utility will 
automatically
214:than an Error Count Limit. Use this option to find Link limit.
235:(voltage - v) for one of the link receivers. For EW you must choose one of 
the
241:margining. In such cases by default utility will calculate EW or EH as a
242:double one side result. You can add
247:measurement of the full eye and it does not need to be multiplied. This is 
so called

-.-.

Output from "test-groff  -mandoc -t -K utf8 -rF0 -rHY=0 -ww -b -z ":

troff: backtrace: '/home/bg/git/groff/build/s-tmac/an.tmac':560: macro 'I'
troff: backtrace: file '<stdin>':40
troff:<stdin>:40: warning: trailing space in the line
troff: backtrace: file '<stdin>':142
troff:<stdin>:142: warning: tab character in unquoted macro argument
an-end-check:<stdin>: Warning: Different number of .RS and .RE calls, 
an-RS-open=1 at end of file

-.-.

  Additionally (general):

FSF office address update.  See
https://lists.gnu.org/archive/html/bug-gnulib/2024-09/msg00004.html

-.- 

  Abbreviations get a '\&' added after their final full stop (.) to mark them
as such and not as an end of a sentence.

  There is no need to add a '\&' before a full stop (.) if it has a character
before it!

  Table headers, that are wider than any data in the corresponding column,
do not need to be centered, so left adjustment is sufficient.

  The default value for kerning (.kern) and ligature (.lg) is one (1),
so for n-mode (nroff) it should be set to zero (0) to avoid the processing
of unnecessary code.
--- pcilmr.8    2024-11-15 01:54:50.134236869 +0000
+++ pcilmr.8.new        2024-11-15 12:18:37.471660290 +0000
@@ -3,13 +3,13 @@
 pcilmr \- margin PCIe Links
 .SH SYNOPSIS
 .B pcilmr
-.RB [ "--margin" ]
+.RB [ "\-\-margin" ]
 .RI [ "<common options>" ] " <link port> " [ "<link options>" "] [" "<link 
port> " [ "<link options>" ] " ..." ]
 .br
-.B pcilmr --full
+.B pcilmr \-\-full
 .RI [ "<common options>" ]
 .br
-.B pcilmr --scan
+.B pcilmr \-\-scan
 .SH CONFIGURATION
 List of the requirements for links and system settings
 to run the margining test.
@@ -22,8 +22,8 @@ Turn off PCIe Leaky Bucket Feature, Re-E
 .IP \[bu]
 Set Error Thresholds to 0;
 .IP \[bu]
-Intel VMD for NVMe SSDs - in case of strange behavior of the
-.BR pcilmr,
+Intel VMD for NVMe SSDs \(en in case of strange behavior of the
+.BR pcilmr ,
 try to run it with the VMD turned off.
 .PP
 .B Device (link) requirements:
@@ -37,7 +37,7 @@ utility supports 16 GT/s and 32 GT/s Lin
 Link Downstream Component must be at D0 Power Management State.
 .RE
 .IP
-.I "Configured by the utility during operation, utility set them to their 
original "
+.I "Configured by the utility during operation, utility set them to their 
original"
 .I "state after receiving the results:"
 .RS
 .IP \[bu] 3
@@ -48,6 +48,7 @@ Downstream Port and Upstream Port;
 .IP \[bu]
 The Hardware Autonomous Width Disable bit of the Link Control register must be 
Set in both the
 Downstream Port and Upstream Port.
+.RE
 .SH DESCRIPTION
 .B pcilmr
 utility allows you to take advantage of the PCIe Lane Margining at the Receiver
@@ -117,14 +118,14 @@ calculate EW or EH as a double one side
 
 If info for specific device is available, you can configure grading criteria
 and tweak utility behavior in one-side only cases for your device using
-.I -g
+.I \-g
 link specific option (see below).
 
 .SH HARDWARE QUIRKS SUPPORT
 
 Thanks to testing or directly from the manufacturer's documentation, we know 
that
 some devices require special treatment during the margining.
-Utility detects such devices based on their Vendor ID - Device ID pair.
+Utility detects such devices based on their Vendor ID \(en Device ID pair.
 Right now the list of special devices is hardcoded in
 .I margin_hw
 file. For such devices utility can automatically adjust port margining 
parameters
@@ -139,40 +140,40 @@ will change device MaxVoltageOffset valu
 .SS Device Specifier
 .B "You can specify Downstream or Upstream Port of the Link."
 .TP
-.B "<device/component>" \t
+.B "<device/component> \t"
 .RI [ "<domain>" :] <bus> : <dev> . <func>
 (see
 .BR lspci (8))
 .SS Utility Modes
 .TP
-.BI --margin " <downstream component> ..."
+.BI \-\-margin " <downstream component> ..."
 Margin selected Links.
 .TP
-.B --full
+.B \-\-full
 Margin all ready for testing (in a meaning similar to the
-.B --scan
+.B \-\-scan
 option) Links in the system (one by one).
 .TP
-.B --scan
+.B \-\-scan
 Scan for Links with negotiated speed 16 GT/s or higher. Mark "Ready" those of 
them
 in which at least one of the Link sides have Margining Ready bit set meaning 
that
 these Links are ready for testing and you can run utility on them.
 .SS Margining Common (for all specified links) options
-.B -c
+.B \-c
 Print Device Lane Margining Capabilities only. Do not run margining.
 .TP
-.BI -e " <errors>"
+.BI \-e " <errors>"
 Specify Error Count Limit for margining.
 .br
 Default: 4.
 .TP
-.BI -o " <directory>"
+.BI \-o " <directory>"
 Save margining results in csv form into the specified directory. Utility
 will generate file with the name in form of
 .RI "\[dq]lmr_" "<port>" "_Rx" # _ <timestamp> ".csv\[dq]"
 for each successfully tested receiver.
 .TP
-.BI -d " <time>"
+.BI \-d " <time>"
 Specify dwell time in seconds for the margining step.
 .br
 Default: 1 s
@@ -187,52 +188,52 @@ determine Lane Reversal and tune its cal
 .br
 Default: all link lanes.
 .TP
-\fB-r\fI <recvn>\fP[\fI,<recvn>...\fP]
+\fB\-r\fI <recvn>\fP[\fI,<recvn>...\fP]
 Specify Receivers to select margining targets.
 .br
 Default: all available Receivers (including Retimers).
 .TP
-.BI -p " <parallel_lanes>"
+.BI \-p " <parallel_lanes>"
 Specify number of lanes to margin simultaneously.
 .br
 According to spec it's possible for Receiver to margin up to MaxLanes + 1
 lanes simultaneously, but during testing, performing margining on several
 lanes simultaneously led to results that were different from sequential
 margining, so this feature requires additional verification and
-.I -p
+.I \-p
 option right now is for experiments mostly.
 .br
 Default: 1.
 .PP
-.B "Use only one of -T/-t options at the same time (same for -V/-v)."
+.B "Use only one of \-T/\-t options at the same time (same for \-V/\-v)."
 .br
 .B "Without these options utility will use MaxSteps from Device"
 .B "capabilities as test limit."
 .TP
-.B -T
+.B \-T
 Time Margining will continue until the Error Count is no more
 than an Error Count Limit. Use this option to find Link limit.
 .TP
-.BI -t " <steps>"
+.BI \-t " <steps>"
 Specify maximum number of steps for Time Margining.
 .TP
-.B -V
+.B \-V
 Same as
-.I -T
+.I \-T
 option, but for Voltage.
 .TP
-.BI -v " <steps>"
+.BI \-v " <steps>"
 Specify maximum number of steps for Voltage Margining.
 .TP
-\fB-g\fI <recvn>\fPt=\fI<criteria>\fP{%|ps}[,f]
+\fB\-g\fI <recvn>\fPt=\fI<criteria>\fP{%|ps}\fR[\fP,f\fR]\fP
 .TP
-.IB "   <recvn>" t=f[, "<criteria>" "{%|ps}]"
+.IB "   <recvn>" t=f\fR[\fP, "<criteria>" "{%\fR|\fPps}\fR]\fP"
 .TP
-.IB "   <recvn>" v= "<criteria>" "[,f]"
+.IB "   <recvn>" v= "<criteria>" "\fR[\fP,f\fR]\fP"
 .TP
-.IB "   <recvn>" v=f[, "<criteria>" ]
-Specify pass/fail grading criteria for eye width (timing - t) or height
-(voltage - v) for one of the link receivers. For EW you must choose one of the
+.IB "   <recvn>" v=f\fR[\fP, "<criteria>" \fR]\fP
+Specify pass/fail grading criteria for eye width (timing \-t) or height
+(voltage \-v) for one of the link receivers. For EW you must choose one of the
 units (% UI or ps), for EH mV is used.
 .br
 Additional flag
@@ -242,7 +243,7 @@ margining. In such cases by default util
 double one side result. You can add
 .I f
 flag for
-.I -g
+.I \-g
 option to tell the utility that the result in one direction is actually the
 measurement of the full eye and it does not need to be multiplied. This is so 
called
 .RI ' "one side is the whole" "' grading mode."
@@ -250,10 +251,10 @@ measurement of the full eye and it does
 .SH EXAMPLES
 Utility syntax example:
 .RS
-.BI "pcilmr -o " "csv ab:0.0 " "-r " "1,6 " "-g " "1t=20% " "-g " "1v=f,30 
52:0.0 " "-l " "0,1,2 " "-TV"
+.BI "pcilmr \-o " "csv ab:0.0 " "\-r " "1,6 " "\-g " "1t=20% " "\-g " "1v=f,30 
52:0.0 " "\-l " "0,1,2 " "\-TV"
 .RE
 
-.UR https://gist.github.com/bombanya/f2b15263712757ffba1a11eea011c419
+.UR https://gist.github.com/\:bombanya/\:f2b15263712757ffba1a11eea011c419
 Examples of collected results on different systems.
 .UE
 

Reply via email to