aboutsummaryrefslogtreecommitdiff
path: root/tools/tools/ioat/ioatcontrol.8
blob: 7e3234825edac60a9ba582f0dccd2d6e2850c1e7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
.\" Copyright (c) 2015 EMC / Isilon Storage Division
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd October 26, 2015
.Dt IOATCONTROL 8
.Os
.Sh NAME
.Nm ioatcontrol
.Nd Userspace tool to test
.Xr ioat 4
.Sh SYNOPSIS
.Nm
.Op Fl f
.Op Fl V
.Ar channel_number
.Ar num_txns
.Ar [ bufsize
.Ar [ chain-len
.Ar [ duration ] ] ]
.Sh DESCRIPTION
.Nm
allows one to issue some number of test operations to the
.Xr ioat 4
driver on a specific hardware channel.
The arguments are as follows:
.Bl -tag -width Ds
.It Fl f
Test block fill (by default,
.Nm
tests copy)
.It Fl V
Verify copies/fills for accuracy
.El
.Pp
.Nm
operates in one of two modes; if the
.Ar duration
argument is passed,
.Nm
tries to estimate the copy rate in bytes per second by running
.Ar num_txns
repeatedly in loop.
If
.Ar duration
is not passed,
.Nm
only runs through
.Ar num_txns
once and prints the total bytes copied, as well as error information.
.Pp
The
.Ar bufsize
argument determines the size of buffers to use for each
.Fn ioat_copy
invocation.
The default is 256 KB.
.Pp
The
.Ar chain-len
argument determines the number of copies to chain together in a single DMA
transaction.
The default is 1, and the maximum is currently 4.
.Pp
The
.Ar duration
argument specifies an approximate time limit for the test, in milliseconds.
.Pp
The test will allocate two chunks of memory for each component of each
transaction's chain.
It will initialize them with specific data patterns.
During the test, it submits DMA requests to copy between pairs of buffers.
If the
.Fl V
flag was specified, it will compare the contents in the callback for a copy
error.
.Sh FILES
.Pa /dev/ioat_test
.Pp
The interface between
.Nm
and
.Xr ioat 4 .
.Xr ioat 4
exposes it with
.Cd hw.ioat.enable_ioat_test=1 .
.Sh DIAGNOSTICS
The wait channel
.Va test_submit
indicates that the test code has enqueued all requested transactions and is
waiting on the IOAT hardware to complete one before issuing another operation.
.Sh SEE ALSO
.Xr ioat 4
.Sh HISTORY
The
.Xr ioat 4
driver first appeared in
.Fx 11.0 .
.Sh AUTHORS
The
.Xr ioat 4
driver and
.Nm
tool were developed by
.An \&Jim Harris Aq Mt jimharris@FreeBSD.org ,
.An \&Carl Delsey Aq Mt carl.r.delsey@intel.com ,
and
.An \&Conrad Meyer Aq Mt cem@FreeBSD.org .
This manual page was written by
.An \&Conrad Meyer Aq Mt cem@FreeBSD.org .