Spdk/test/lib
Jim Harris 8de75f8107 nvme/perf: add software-based latency tracking
The latency tracking is done with ranges of bucket arrays.
The bucket for any given I/O is determined solely by TSC
deltas - any translation to microseconds is only done after
the test is finished and statistics are printed.

Each range has a number of buckets determined by a
NUM_BUCKETS_PER_RANGE value which is currently set to 128.
The buckets in ranges 0 and 1 each map to one specific TSC
delta.  The buckets in subsequent ranges each map to twice
as many TSC deltas as buckets in the previous range:

Range 0:  1 TSC each - 128 buckets cover deltas    0 to  127
Range 1:  1 TSC each - 128 buckets cover deltas  128 to  255
Range 2:  2 TSC each - 128 buckets cover deltas  256 to  511
Range 3:  4 TSC each - 128 buckets cover deltas  512 to 1023
Range 4:  8 TSC each - 128 buckets cover deltas 1024 to 2047
Range 5: 16 TSC each - 128 buckets cover deltas 2048 to 4095
etc.

While here, change some variable names and usage
messages to differentiate between the existing latency
tracking via vendor-specific NVMe log pages on Intel
NVMe SSDs, and the newly added latency tracking done
in software.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I299f1c1f6dbfa7ea0e73085f7a685e71fc687a2b
2017-05-17 09:49:27 -07:00
..
bdev test/bdevio: remove gencnt manipulation 2017-05-17 09:45:42 -07:00
blob include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
blobfs test/blobfs: Rename blobfs test file name 2017-05-17 08:21:59 -07:00
env include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
event env: Add wrappers for a lockless ring 2017-05-09 14:02:15 -07:00
ioat include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
iscsi scsi: remove spdk_scsi_task::owner_task_ctr 2017-05-15 10:12:42 -07:00
json include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
jsonrpc include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
log include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
nvme nvme/perf: add software-based latency tracking 2017-05-17 09:49:27 -07:00
nvmf bdev: add getters for block size and block count 2017-05-12 10:34:58 -07:00
scsi bdev: make struct spdk_bdev contents private 2017-05-17 09:45:42 -07:00
util include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
Makefile test/iscsi: build iSCSI unit tests on FreeBSD 2017-03-29 15:27:50 -07:00
test_env.c include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00