[dpdk-dev] [PATCH 1/4] raw/ioat: support multiple devices being tested
Bruce Richardson
bruce.richardson at intel.com
Fri Aug 21 17:59:42 CEST 2020
The current selftest function uses a single global variable to track state
which implies that only a single instance can have the selftest function
called on it. Change this to an array to allow multiple instances to be
tested.
Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
---
drivers/raw/ioat/ioat_rawdev_test.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/drivers/raw/ioat/ioat_rawdev_test.c b/drivers/raw/ioat/ioat_rawdev_test.c
index 724cdb9e74..6262995256 100644
--- a/drivers/raw/ioat/ioat_rawdev_test.c
+++ b/drivers/raw/ioat/ioat_rawdev_test.c
@@ -9,10 +9,13 @@
#include "rte_ioat_rawdev.h"
#include "ioat_private.h"
+#define MAX_SUPPORTED_RAWDEVS 64
+#define TEST_SKIPPED 77
+
int ioat_rawdev_test(uint16_t dev_id); /* pre-define to keep compiler happy */
static struct rte_mempool *pool;
-static unsigned short expected_ring_size;
+static unsigned short expected_ring_size[MAX_SUPPORTED_RAWDEVS];
static int
test_enqueue_copies(int dev_id)
@@ -149,10 +152,16 @@ ioat_rawdev_test(uint16_t dev_id)
unsigned int nb_xstats;
unsigned int i;
+ if (dev_id >= MAX_SUPPORTED_RAWDEVS) {
+ printf("Skipping test. Cannot test rawdevs with id's greater than %d\n",
+ MAX_SUPPORTED_RAWDEVS);
+ return TEST_SKIPPED;
+ }
+
rte_rawdev_info_get(dev_id, &info, sizeof(p));
- if (p.ring_size != expected_ring_size) {
+ if (p.ring_size != expected_ring_size[dev_id]) {
printf("Error, initial ring size is not as expected (Actual: %d, Expected: %d)\n",
- (int)p.ring_size, expected_ring_size);
+ (int)p.ring_size, expected_ring_size[dev_id]);
return -1;
}
@@ -167,7 +176,7 @@ ioat_rawdev_test(uint16_t dev_id)
IOAT_TEST_RINGSIZE, (int)p.ring_size);
return -1;
}
- expected_ring_size = p.ring_size;
+ expected_ring_size[dev_id] = p.ring_size;
if (rte_rawdev_start(dev_id) != 0) {
printf("Error with rte_rawdev_start()\n");
--
2.25.1
More information about the dev
mailing list