aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ioat/ioat_test.h
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2015-10-26 19:34:12 +0000
committerConrad Meyer <cem@FreeBSD.org>2015-10-26 19:34:12 +0000
commit2a4fd6b17a3ca38cb1f1cdc5154ba59c66199e38 (patch)
tree556d1a6d688264cbe1665811bb99876a56115293 /sys/dev/ioat/ioat_test.h
parent9e3bbf26a9a1fad9d718cd990fc7ac8401906c13 (diff)
downloadsrc-2a4fd6b17a3ca38cb1f1cdc5154ba59c66199e38.tar.gz
src-2a4fd6b17a3ca38cb1f1cdc5154ba59c66199e38.zip
ioat: Add support for Block Fill operations
The IOAT hardware supports writing a 64-bit pattern to some destination buffer. The same limitations on buffer length apply as for copy operations. Throughput is a bit higher (probably because fill does not have to spend bandwidth reading from a source in memory). Support for testing Block Fill has been added to ioatcontrol(8) and the ioat_test device. ioatcontrol(8) accepts the '-f' flag, which tests Block Fill. (If the flag is omitted, the tool tests copy by default.) The '-V' flag, in conjunction with '-f', verifies that buffers are filled in the expected pattern. Tested on: Broadwell DE (Xeon D-1500) Sponsored by: EMC / Isilon Storage Division
Notes
Notes: svn path=/head/; revision=290021
Diffstat (limited to 'sys/dev/ioat/ioat_test.h')
-rw-r--r--sys/dev/ioat/ioat_test.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/ioat/ioat_test.h b/sys/dev/ioat/ioat_test.h
index 290d09b49017..ecfef7d5cb19 100644
--- a/sys/dev/ioat/ioat_test.h
+++ b/sys/dev/ioat/ioat_test.h
@@ -34,15 +34,24 @@ enum ioat_res {
IOAT_TEST_NO_DMA_ENGINE,
IOAT_TEST_NO_MEMORY,
IOAT_TEST_MISCOMPARE,
+ IOAT_TEST_INVALID_INPUT,
IOAT_NUM_RES
};
+enum ioat_test_kind {
+ IOAT_TEST_FILL = 0,
+ IOAT_TEST_DMA,
+ IOAT_NUM_TESTKINDS
+};
+
struct test_transaction;
struct ioat_test {
volatile uint32_t status[IOAT_NUM_RES];
uint32_t channel_index;
+ enum ioat_test_kind testkind;
+
/* HW max of 1MB */
uint32_t buffer_size;
uint32_t chain_depth;