New upstream version 17.11.5
[deb_dpdk.git] / test / test / test_pmd_ring_perf.c
index 004882a..e446766 100644 (file)
@@ -39,6 +39,7 @@
 #include <rte_launch.h>
 #include <rte_ethdev.h>
 #include <rte_eth_ring.h>
+#include <rte_bus_vdev.h>
 
 #include "test.h"
 
@@ -54,7 +55,7 @@ static const volatile unsigned bulk_sizes[] = { 1, 8, 32 };
 
 /* The ring structure used for tests */
 static struct rte_ring *r;
-static uint8_t ring_ethdev_port;
+static uint16_t ring_ethdev_port;
 
 /* Get cycle counts for dequeuing from an empty ring. Should be 2 or 3 cycles */
 static void
@@ -164,6 +165,8 @@ test_bulk_enqueue_dequeue(void)
 static int
 test_ring_pmd_perf(void)
 {
+       char name[RTE_ETH_NAME_MAX_LEN];
+
        r = rte_ring_create(RING_NAME, RING_SIZE, rte_socket_id(),
                        RING_F_SP_ENQ|RING_F_SC_DEQ);
        if (r == NULL && (r = rte_ring_lookup(RING_NAME)) == NULL)
@@ -180,6 +183,11 @@ test_ring_pmd_perf(void)
        printf("\n### Testing using a single lcore ###\n");
        test_bulk_enqueue_dequeue();
 
+       /* release port and ring resources */
+       rte_eth_dev_stop(ring_ethdev_port);
+       rte_eth_dev_get_name_by_port(ring_ethdev_port, name);
+       rte_vdev_uninit(name);
+       rte_ring_free(r);
        return 0;
 }