diff options
author | Conrad Meyer <cem@FreeBSD.org> | 2015-10-26 19:34:12 +0000 |
---|---|---|
committer | Conrad Meyer <cem@FreeBSD.org> | 2015-10-26 19:34:12 +0000 |
commit | 2a4fd6b17a3ca38cb1f1cdc5154ba59c66199e38 (patch) | |
tree | 556d1a6d688264cbe1665811bb99876a56115293 /sys/dev/ioat/ioat_test.h | |
parent | 9e3bbf26a9a1fad9d718cd990fc7ac8401906c13 (diff) | |
download | src-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.h | 9 |
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; |