Commit d08917d8 authored by Daniel Verkamp's avatar Daniel Verkamp Committed by Ben Walker
Browse files

ioat: remove ioat kperf kernel driver test harness



This driver was added to allow benchmarking of the SPDK user-mode I/OAT
driver vs. the Linux kernel I/OAT driver; however, this isn't a
particularly interesting test, since the kernel I/OAT driver is totally
inaccessible from user-mode code (it is only exposed to the in-kernel
dmaengine framework).

Maintaining an out-of-tree kernel driver for the sole purpose of
benchmarking is out of scope for the SPDK project, so remove the kperf
driver and test harness.

This can always be retrieved from git history if needed later.

Change-Id: I0ced6e8a88de2cf09a6c0970dfef0ae8f357f193
Signed-off-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/408900


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent dbcc9c1e
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -31,12 +31,6 @@ if [ $SPDK_RUN_CHECK_FORMAT -eq 1 ]; then
fi
timing_exit check_format

timing_enter build_kmod
if [ $SPDK_BUILD_IOAT_KMOD -eq 1 ]; then
	./scripts/build_kmod.sh build
fi
timing_exit build_kmod

scanbuild=''
make_timing_label='make'
if [ $SPDK_RUN_SCANBUILD -eq 1 ] && hash scan-build; then
+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk

DIRS-y += perf verify kperf
DIRS-y += perf verify

.PHONY: all clean $(DIRS-y)

examples/ioat/kperf/.gitignore

deleted100644 → 0
+0 −1
Original line number Diff line number Diff line
ioat_kperf

examples/ioat/kperf/Makefile

deleted100644 → 0
+0 −52
Original line number Diff line number Diff line
#
#  BSD LICENSE
#
#  Copyright (c) Intel Corporation.
#  All rights reserved.
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions
#  are met:
#
#    * Redistributions of source code must retain the above copyright
#      notice, this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above copyright
#      notice, this list of conditions and the following disclaimer in
#      the documentation and/or other materials provided with the
#      distribution.
#    * Neither the name of Intel Corporation nor the names of its
#      contributors may be used to endorse or promote products derived
#      from this software without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

SPDK_ROOT_DIR := $(abspath $(CURDIR)/../../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
include $(SPDK_ROOT_DIR)/mk/spdk.app.mk

APP = ioat_kperf

C_SRCS := ioat_kperf.c


all: $(APP)
	@:

$(APP): $(OBJS)
	$(LINK_C)

clean:
	$(CLEAN_C) $(APP)

include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk

examples/ioat/kperf/README

deleted100644 → 0
+0 −46
Original line number Diff line number Diff line
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.
Loading