Hi Savinay,

> +static int
> +testsuite_setup(void)
> +{
> +     struct rte_mbuf *mbuf[NUM_MBUF];
> +     int ret, i;
> +
> +     mbuf_pool = rte_pktmbuf_pool_create("IPSEC_PERF_MBUFPOOL",
> +                     NUM_MBUFS, MBUF_CACHE_SIZE, 0, MBUF_SIZE,
> +                     rte_socket_id());
> +     if (mbuf_pool == NULL) {
> +             RTE_LOG(ERR, USER1, "Can't create MBUFPOOL\n");
> +             return TEST_FAILED;
> +     }
> +
> +     cop_pool = rte_crypto_op_pool_create(
> +                     "MBUF_CRYPTO_SYM_OP_POOL",
> +                     RTE_CRYPTO_OP_TYPE_SYMMETRIC,
> +                     NUM_MBUFS, MBUF_CACHE_SIZE,
> +                     DEFAULT_NUM_XFORMS *
> +                     sizeof(struct rte_crypto_sym_xform) +
> +                     MAXIMUM_IV_LENGTH,
> +                     rte_socket_id());
> +     if (cop_pool == NULL) {
> +             RTE_LOG(ERR, USER1, "Can't create CRYPTO_OP_POOL\n");
> +             return TEST_FAILED;
> +     }
> +
> +     ring_inb_prepare = rte_ring_create("ring0", RING_SIZE,
> +                                        SOCKET_ID_ANY, 0);
> +     if (ring_inb_prepare == NULL)
> +             return TEST_FAILED;
> +
> +     ring_inb_process = rte_ring_create("ring1", RING_SIZE,
> +                                        SOCKET_ID_ANY, 0);
> +     if (ring_inb_process == NULL)
> +             return TEST_FAILED;
> +
> +     ring_outb_prepare = rte_ring_create("ring2", RING_SIZE,
> +                                         SOCKET_ID_ANY, 0);
> +     if (ring_outb_prepare == NULL)
> +             return TEST_FAILED;
> +
> +     ring_outb_process = rte_ring_create("ring3", RING_SIZE,
> +                                         SOCKET_ID_ANY, 0);
> +     if (ring_outb_process == NULL)
> +             return TEST_FAILED;
> +
> +     for (i = 0; i < NUM_MBUF; i++)
> +             mbuf[i] = generate_mbuf_data(mbuf_pool);
> +

I think enqueue below could be moved to the loop above,
so don't need to allocate mbuf[NUM_MBUF] at stack.

 struct rte_mbuf *mbuf;
...

for (i = 0; i < NUM_MBUF; i++) {
  mbuf = generate_mbuf_data(mbuf_pool);
  if (mbuf == NULL && rte_ring_sp_enqueue_bulk(ring_inb_prepare,
                (void **)mbuf, 1) == 0)
        break;
}
If (i != NUM_BUF)
        return TEST_FAILED;

> +     ret = rte_ring_sp_enqueue_bulk(ring_inb_prepare, (void **)mbuf,
> +                                    NUM_MBUF, NULL);
> +     if (ret == 0)
> +             return TEST_FAILED;
> +
> +     return TEST_SUCCESS;
> +}
> +

Reply via email to