Currently, each histogram range is hardcoded to 128 buckets (1ULL << 7), resulting in 58 ranges (64 - 7 + 1) and a total size of 58 * 128 * sizeof(uint64_t) = 59392 bytes. To allow for more usage models in cases where this size is prohibitive, enable the following changes: 1) specify number of buckets per range (in number of bits) 2) specify max datapoint value (in number of bits) The latter can be useful for cases where datapoints are never close to requiring all 64 bits - and allows reducing the number of ranges. Any data points that exceed the max will be tallied in the last bucket in the last range. Testing shows no performance disadvantage using the dynamic approach. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I5979bcdff6209faaa9dee293918ef2a78679bcd4 Reviewed-on: https://review.gerrithub.io/392707 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> |
||
---|---|---|
.. | ||
.gitignore | ||
Makefile | ||
overhead.c | ||
README |
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.