8c5de263a1
Change-Id: I40c29b30c7098e34f2aa860612eeb82f2fb01ff3 Signed-off-by: Seth Howell <seth.howell@intel.com> Reviewed-on: https://review.gerrithub.io/404974 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
25 lines
1004 B
Plaintext
25 lines
1004 B
Plaintext
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.
|