Spdk/test/lib/nvme/overhead
Jim Harris 5616e0880d build: create a common mk file for nvme library tests and examples
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Ief0f99b7f014cf905d08e2c0cd9dc99653bd0bb8
2016-11-22 11:45:47 -07:00
..
.gitignore nvme: add gitignore to overhead directory 2016-08-02 14:33:21 -07:00
Makefile build: create a common mk file for nvme library tests and examples 2016-11-22 11:45:47 -07:00
overhead.c nvme: expand probe information to a struct 2016-11-02 14:15:02 -07:00
README nvme: add new test application to measure SW overhead 2016-08-01 12:58:30 -07:00

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.