MCPcopy Create free account
hub / github.com/F-Stack/f-stack / latency_test_mldts

Function latency_test_mldts

dpdk/app/test-bbdev/test_bbdev_perf.c:5525–5594  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5523}
5524
5525static int
5526latency_test_mldts(struct rte_mempool *mempool,
5527 struct test_buffers *bufs, struct rte_bbdev_mldts_op *ref_op,
5528 uint16_t dev_id, uint16_t queue_id,
5529 const uint16_t num_to_process, uint16_t burst_sz,
5530 uint64_t *total_time, uint64_t *min_time, uint64_t *max_time)
5531{
5532 int ret = TEST_SUCCESS;
5533 uint16_t i, j, dequeued;
5534 struct rte_bbdev_mldts_op *ops_enq[MAX_BURST], *ops_deq[MAX_BURST];
5535 uint64_t start_time = 0, last_time = 0;
5536
5537 for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) {
5538 uint16_t enq = 0, deq = 0;
5539 uint32_t time_out = 0;
5540 bool first_time = true;
5541 last_time = 0;
5542
5543 if (unlikely(num_to_process - dequeued < burst_sz))
5544 burst_sz = num_to_process - dequeued;
5545
5546 ret = rte_bbdev_mldts_op_alloc_bulk(mempool, ops_enq, burst_sz);
5547 TEST_ASSERT_SUCCESS(ret, "rte_bbdev_mldts_op_alloc_bulk() failed");
5548 if (test_vector.op_type != RTE_BBDEV_OP_NONE)
5549 copy_reference_mldts_op(ops_enq, burst_sz, dequeued,
5550 bufs->inputs, bufs->harq_inputs,
5551 bufs->hard_outputs,
5552 ref_op);
5553
5554 /* Set counter to validate the ordering */
5555 for (j = 0; j < burst_sz; ++j)
5556 ops_enq[j]->opaque_data = (void *)(uintptr_t)j;
5557
5558 start_time = rte_rdtsc_precise();
5559
5560 enq = rte_bbdev_enqueue_mldts_ops(dev_id, queue_id, &ops_enq[enq], burst_sz);
5561 TEST_ASSERT(enq == burst_sz,
5562 "Error enqueueing burst, expected %u, got %u",
5563 burst_sz, enq);
5564
5565 /* Dequeue */
5566 do {
5567 deq += rte_bbdev_dequeue_mldts_ops(dev_id, queue_id,
5568 &ops_deq[deq], burst_sz - deq);
5569 if (likely(first_time && (deq > 0))) {
5570 last_time += rte_rdtsc_precise() - start_time;
5571 first_time = false;
5572 }
5573 time_out++;
5574 if (time_out >= TIME_OUT_POLL) {
5575 timeout_exit(dev_id);
5576 TEST_ASSERT_SUCCESS(TEST_FAILED, "Dequeue timeout!");
5577 }
5578 } while (unlikely(burst_sz != deq));
5579
5580 *max_time = RTE_MAX(*max_time, last_time);
5581 *min_time = RTE_MIN(*min_time, last_time);
5582 *total_time += last_time;

Callers 1

validation_latency_testFunction · 0.85

Calls 8

copy_reference_mldts_opFunction · 0.85
timeout_exitFunction · 0.85
validate_mldts_opFunction · 0.85
rte_rdtsc_preciseFunction · 0.50

Tested by

no test coverage detected