[dpdk-dev] [PATCH v2] app: test: measure libipsec performance

Ananyev, Konstantin konstantin.ananyev at intel.com
Tue Mar 3 16:34:52 CET 2020


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;
> +}
> +


More information about the dev mailing list