Name Date Size #Lines LOC

..--

.gitignoreH A D22-Mar-20189 21

MakefileH A D01-Nov-2022285 167

READMEH A D22-Mar-20181,004 2519

overhead.cH A D28-Jun-202416.7 KiB756610

README

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