blob: b88c4217678debeb00ab18f3550083d021a2b16a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
This application measures the software overhead of I/O submission
and completion for both the SPDK NVMe driver and an AIO file handle.
It runs a random read, queue depth = 1 workload to a single device,
and captures TSC as follows:
* Submission: capture TSC before and after the I/O submission
call (SPDK or AIO).
* Completion: capture TSC before and after the I/O completion
check. Only record the TSC delta if the I/O completion check
resulted in a completed I/O. Also use heuristics in the AIO
case to account for time spent in interrupt handling outside
of the actual I/O completion check.
Usage:
To test software overhead for a 4KB I/O over a 10 second period:
SPDK: overhead -s 4096 -t 10
AIO: overhead -s 4096 -t 10 /dev/nvme0n1
Note that for the SPDK case, it will only use the first namespace
on the first controller found by SPDK. If a different namespace is
desired, attach controllers individually to the kernel NVMe driver
to ensure they will not be enumerated by SPDK.
|