]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tools/tools/ioat/ioatcontrol.8
MFhead @ r292053
[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 December 9, 2015
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 E
37 .Op Fl f
38 .Op Fl m
39 .Op Fl V
40 .Ar channel_number
41 .Ar num_txns
42 .Ar [ bufsize
43 .Ar [ chain-len
44 .Ar [ duration ] ] ]
45 .Nm
46 .Fl r
47 .Op Fl v
48 .Op Fl V
49 .Op Fl w
50 .Ar channel_number
51 .Ar address
52 .Ar [ bufsize ]
53 .Sh DESCRIPTION
54 .Nm
55 allows one to issue some number of test operations to the
56 .Xr ioat 4
57 driver on a specific hardware channel.
58 The arguments are as follows:
59 .Bl -tag -width Ds
60 .It Fl E
61 Test non-contiguous 8k copy.
62 .It Fl f
63 Test block fill (by default,
64 .Nm
65 tests copy)
66 .It Fl m
67 Test memcpy instead of DMA.
68 .It Fl V
69 Verify copies/fills for accuracy
70 .El
71 .Pp
72 Alternatively one can use
73 .Nm
74 .Fl r
75 to issue DMA to or from a specific
76 .Ar address .
77 The arguments in "raw" mode are:
78 .Bl -tag -width Ds
79 .It Fl v
80 .Ar address
81 is a kernel virtual address (by default,
82 .Ar address
83 is assumed to be a physical address)
84 .It Fl V
85 Dump the resulting hex to syslog
86 .It Fl w
87 Write to the specified
88 .Ar address
89 (by default,
90 .Nm
91 .Fl r
92 reads)
93 .El
94 .Pp
95 .Nm
96 operates in one of two modes; if the
97 .Ar duration
98 argument is passed,
99 .Nm
100 tries to estimate the copy rate in bytes per second by running
101 .Ar num_txns
102 repeatedly in loop.
103 If
104 .Ar duration
105 is not passed,
106 .Nm
107 only runs through
108 .Ar num_txns
109 once and prints the total bytes copied, as well as error information.
110 .Pp
111 The
112 .Ar bufsize
113 argument determines the size of buffers to use for each
114 .Fn ioat_copy
115 invocation.
116 The default is 256 KB.
117 In raw mode, the default is 4 KB.
118 .Pp
119 The
120 .Ar chain-len
121 argument determines the number of copies to chain together in a single DMA
122 transaction.
123 The default is 1, and the maximum is currently 4.
124 .Pp
125 The
126 .Ar duration
127 argument specifies an approximate time limit for the test, in milliseconds.
128 .Pp
129 The test will allocate two chunks of memory for each component of each
130 transaction's chain.
131 It will initialize them with specific data patterns.
132 During the test, it submits DMA requests to copy between pairs of buffers.
133 If the
134 .Fl V
135 flag was specified, it will compare the contents in the callback for a copy
136 error.
137 .Sh FILES
138 .Pa /dev/ioat_test
139 .Pp
140 The interface between
141 .Nm
142 and
143 .Xr ioat 4 .
144 .Xr ioat 4
145 exposes it with
146 .Cd hw.ioat.enable_ioat_test=1 .
147 .Sh DIAGNOSTICS
148 The wait channel
149 .Va test_submit
150 indicates that the test code has enqueued all requested transactions and is
151 waiting on the IOAT hardware to complete one before issuing another operation.
152 .Sh SEE ALSO
153 .Xr ioat 4
154 .Sh HISTORY
155 The
156 .Xr ioat 4
157 driver first appeared in
158 .Fx 11.0 .
159 .Sh AUTHORS
160 The
161 .Xr ioat 4
162 driver and
163 .Nm
164 tool were developed by
165 .An \&Jim Harris Aq Mt jimharris@FreeBSD.org ,
166 .An \&Carl Delsey Aq Mt carl.r.delsey@intel.com ,
167 and
168 .An \&Conrad Meyer Aq Mt cem@FreeBSD.org .
169 This manual page was written by
170 .An \&Conrad Meyer Aq Mt cem@FreeBSD.org .