Commit 09ec0f583f40bbecdf011b504dda9c1160fe0277

Authored by Dan Williams
1 parent 59056e85d7

raid6test: add new corner case for ioatdma driver

With 24 disks and an ioatdma instance with 16 source support there is a
corner case where the driver needs to be careful to account for the
number of implied sources in the continuation case.

Also bump the default case to test more than 16 sources now that it
triggers different paths in offload drivers.

Cc: Dave Jiang <dave.jiang@intel.com>
Acked-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>

Showing 1 changed file with 9 additions and 1 deletions Side-by-side Diff

crypto/async_tx/raid6test.c
... ... @@ -28,7 +28,7 @@
28 28 #undef pr
29 29 #define pr(fmt, args...) pr_info("raid6test: " fmt, ##args)
30 30  
31   -#define NDISKS 16 /* Including P and Q */
  31 +#define NDISKS 64 /* Including P and Q */
32 32  
33 33 static struct page *dataptrs[NDISKS];
34 34 static addr_conv_t addr_conv[NDISKS];
... ... @@ -219,6 +219,14 @@
219 219 err += test(11, &tests);
220 220 err += test(12, &tests);
221 221 }
  222 +
  223 + /* the 24 disk case is special for ioatdma as it is the boudary point
  224 + * at which it needs to switch from 8-source ops to 16-source
  225 + * ops for continuation (assumes DMA_HAS_PQ_CONTINUE is not set)
  226 + */
  227 + if (NDISKS > 24)
  228 + err += test(24, &tests);
  229 +
222 230 err += test(NDISKS, &tests);
223 231  
224 232 pr("\n");