Spdk/examples/ioat/kperf
Seth Howell 3bc1b71100 examples/kmod: add cache.mk to git ignore
Change-Id: I4fbe941be2791eb6e4927ecba0fe060eaefedeab
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/404048
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-on: https://review.gerrithub.io/408411
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: Daniel Verkamp <daniel.verkamp@intel.com>
2018-04-20 12:00:59 -04:00
..
kmod examples/kmod: add cache.mk to git ignore 2018-04-20 12:00:59 -04:00
.gitignore ioat: add ioat kernel driver performance test harness 2016-01-15 10:53:19 +08:00
ioat_kperf.c astyle: enforce braces around single-line statements 2017-12-11 11:19:32 -05:00
Makefile build: include spdk.app.mk in all app Makefiles 2017-11-15 17:57:07 -05:00
README spdk: add the ioat_kperf test tool to autobuild system 2016-01-22 07:58:13 -07:00

IOAT Kernel Driver Test Tool
============================

For the purpose to make performance comparison with user space IOAT
driver, we developed the test tool based on IOAT kernel driver, the
test tool contains 2 components: kernel test module and user space
application. The kernel test module allocated one kernel thread for
each DMA channel, and the kernel thread did not pin to specified
CPU cores, but ensure all the thread run in the same NUMA socket
with DMA channel, and the user space application communicated
with kernel test module via sysfs interface.

Building & Usage
================

1. Compile and load the kernel test module first.

    modprobe -v ioatdma
    ./scripts/build_kmod.sh build && insmod dmaperf.ko

2. Run the test application.

    Parameters:
    [-h usage]
    [-n number of DMA channels]
    [-q queue depth, per DMA channel]
    [-s [n^2] transfer size, per descriptor]
    [-t total [n^2] data to tranfer, per DMA channel]

    For example: ./ioat_kperf -n 4 -q 128 -s 12 -t 32

    Total 4 Channels, Queue_Depth 128, Transfer Size 4096 Bytes, Total Transfer Size 4 GB
    Running I/O . . . .
    Channel 0 Performance Data 1414 MB/s
    Channel 1 Performance Data 1413 MB/s
    Channel 2 Performance Data 1413 MB/s
    Channel 3 Performance Data 1415 MB/s
    Total Channel Performance Data 5655 MB/s

3. Cleanup
    ./scripts/build_kmod.sh clean

OS Support
==========
We have tested several Linux distributions, currently Fedora 21/22 with kernel
version >= 3.17 are supported.