]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tools/tools/ioat/ioatcontrol.8
amd64: use register macros for gdb_cpu_getreg()
[FreeBSD/FreeBSD.git] / tools / tools / ioat / ioatcontrol.8
1 .\" Copyright (c) 2015 EMC / Isilon Storage Division
2 .\" All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\"
13 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
14 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
17 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 .\" SUCH DAMAGE.
24 .\"
25 .\" $FreeBSD$
26 .\"
27 .Dd May 27, 2016
28 .Dt IOATCONTROL 8
29 .Os
30 .Sh NAME
31 .Nm ioatcontrol
32 .Nd Userspace tool to test
33 .Xr ioat 4
34 .Sh SYNOPSIS
35 .Nm
36 .Op Fl c Ar period
37 .Op Fl E
38 .Op Fl e
39 .Op Fl f
40 .Op Fl m
41 .Op Fl V
42 .Op Fl x
43 .Op Fl X
44 .Op Fl z
45 .Ar channel_number
46 .Ar num_txns
47 .Ar [ bufsize
48 .Ar [ chain-len
49 .Ar [ duration ] ] ]
50 .Nm
51 .Fl r
52 .Op Fl c Ar period
53 .Op Fl v
54 .Op Fl V
55 .Op Fl w
56 .Op Fl z
57 .Ar channel_number
58 .Ar address
59 .Ar [ bufsize ]
60 .Sh DESCRIPTION
61 .Nm
62 allows one to issue some number of test operations to the
63 .Xr ioat 4
64 driver on a specific hardware channel.
65 The arguments are as follows:
66 .Bl -tag -width Ds
67 .It Fl c Ar period
68 Configure the channel's interrupt coalescing period, in microseconds
69 (defaults to 0).
70 .It Fl E
71 Test contiguous 8k copy.
72 .It Fl e
73 Test non-contiguous 8k copy.
74 .It Fl f
75 Test block fill (by default,
76 .Nm
77 tests copy)
78 .It Fl m
79 Test memcpy instead of DMA.
80 .It Fl V
81 Verify copies/fills for accuracy
82 .It Fl x
83 Test DMA CRC.
84 .It Fl X
85 Test DMA copy with CRC.
86 .It Fl z
87 Zero device statistics before running test.
88 .El
89 .Pp
90 Alternatively one can use
91 .Nm
92 .Fl r
93 to issue DMA to or from a specific
94 .Ar address .
95 The arguments in "raw" mode are:
96 .Bl -tag -width Ds
97 .It Fl c Ar period
98 As above.
99 .It Fl v
100 .Ar address
101 is a kernel virtual address (by default,
102 .Ar address
103 is assumed to be a physical address)
104 .It Fl V
105 Verify copies/fills for accuracy
106 .It Fl w
107 Write to the specified
108 .Ar address
109 (by default,
110 .Nm
111 .Fl r
112 reads)
113 .It Fl z
114 As above.
115 .El
116 .Pp
117 .Nm
118 operates in one of two modes; if the
119 .Ar duration
120 argument is passed,
121 .Nm
122 tries to estimate the copy rate in bytes per second by running
123 .Ar num_txns
124 repeatedly in loop.
125 If
126 .Ar duration
127 is not passed,
128 .Nm
129 only runs through
130 .Ar num_txns
131 once and prints the total bytes copied, as well as error information.
132 .Pp
133 The
134 .Ar bufsize
135 argument determines the size of buffers to use for each
136 .Fn ioat_copy
137 invocation.
138 The default is 256 KB.
139 In raw mode, the default is 4 KB.
140 .Pp
141 The
142 .Ar chain-len
143 argument determines the number of copies to chain together in a single DMA
144 transaction.
145 The default is 1.
146 .Pp
147 The
148 .Ar duration
149 argument specifies an approximate time limit for the test, in milliseconds.
150 .Pp
151 The test will allocate two chunks of memory for each component of each
152 transaction's chain.
153 It will initialize them with specific data patterns.
154 During the test, it submits DMA requests to copy between pairs of buffers.
155 If the
156 .Fl V
157 flag was specified, it will compare the contents in the callback for a copy
158 error.
159 .Sh FILES
160 .Pa /dev/ioat_test
161 .Pp
162 The interface between
163 .Nm
164 and
165 .Xr ioat 4 .
166 .Xr ioat 4
167 exposes it with
168 .Cd hw.ioat.enable_ioat_test=1 .
169 .Sh DIAGNOSTICS
170 The wait channel
171 .Va test_submit
172 indicates that the test code has enqueued all requested transactions and is
173 waiting on the IOAT hardware to complete one before issuing another operation.
174 .Sh SEE ALSO
175 .Xr ioat 4
176 .Sh HISTORY
177 The
178 .Xr ioat 4
179 driver first appeared in
180 .Fx 11.0 .
181 .Sh AUTHORS
182 The
183 .Xr ioat 4
184 driver and
185 .Nm
186 tool were developed by
187 .An \&Jim Harris Aq Mt jimharris@FreeBSD.org ,
188 .An \&Carl Delsey Aq Mt carl.r.delsey@intel.com ,
189 and
190 .An \&Conrad Meyer Aq Mt cem@FreeBSD.org .
191 This manual page was written by
192 .An \&Conrad Meyer Aq Mt cem@FreeBSD.org .