[dpdk-dev] [PATCH 00/15] next-eventdev: event/sw Software Eventdev

Jerin Jacob jerin.jacob at caviumnetworks.com
Sat Jan 21 18:57:41 CET 2017


On Mon, Jan 16, 2017 at 03:40:40PM +0000, Harry van Haaren wrote:
> The following patchset adds software eventdev implementation
> to the next-eventdev tree, and applies to current git HEAD.
> 
> This implementation is based on the previous software eventdev
> RFC patchset[1], updated to integrate with the latest rte_eventdev.h
> API.
> 
> The first two patches make changes to the eventdev API,
> then the software implementation is added, and finally
> tests are added for the sw eventdev implementation.
> 
> This patchset contains the work of multiple developers,
> please see signoffs on each patch.
> 
> Signed-off-by: Harry van Haaren <harry.van.haaren at intel.com>
> 
> [1] http://dpdk.org/ml/archives/dev/2016-November/050285.html
>

A few git-am, check-git-log.sh and checkpatches.sh errors in the patch
series.

1) [dpdk-next-eventdev-review] $ pwclient git-am 19436
Applying patch #19436 using 'git am'
Description: [dpdk-dev,03/15] event/sw: add new software-only eventdev
driver
Applying: event/sw: add new software-only eventdev driver
/export/dpdk-next-eventdev-review/.git/rebase-apply/patch:114: new blank
line at EOF.
+
warning: 1 line adds whitespace errors.

2) [dpdk-next-eventdev-review] $ ./devtools/check-git-log.sh
Wrong headline format:
	event/sw: add start, stop and close functions

3) [dpdk-next-eventdev-review] $ ./devtools/checkpatches.sh *.patch

### [PATCH 03/12] event/sw: add support for event queues

ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses
#83: FILE: drivers/event/sw/iq_ring.h:60:
+#define force_inline inline __attribute__((always_inline))

ERROR:SPACING: spaces required around that '>' (ctx:OxW)
#163: FILE: drivers/event/sw/iq_ring.h:140:
+	for (i = nb_qes; i --> 0; )
 	                     ^

WARNING:LONG_LINE_STRING: line over 80 characters
#257: FILE: drivers/event/sw/sw_evdev.c:90:
+			SW_LOG_DBG("invalid reorder_window_size for ordered queue\n");

WARNING:LONG_LINE_COMMENT: line over 80 characters
#454: FILE: drivers/event/sw/sw_evdev.h:116:
+	struct reorder_buffer_entry *reorder_buffer; /* packets awaiting reordering */

total: 2 errors, 2 warnings, 437 lines checked

### [PATCH 04/12] event/sw: add support for event ports

ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses
#89: FILE: drivers/event/sw/event_ring.h:65:
+#define force_inline inline __attribute__((always_inline))

WARNING:LONG_LINE: line over 80 characters
#235: FILE: drivers/event/sw/sw_evdev.c:65:
+	uint8_t enq_oversize = conf->enqueue_depth > info.max_event_port_enqueue_depth;

WARNING:LONG_LINE: line over 80 characters
#236: FILE: drivers/event/sw/sw_evdev.c:66:
+	uint8_t deq_oversize = conf->dequeue_depth > info.max_event_port_dequeue_depth;

WARNING:LONG_LINE_STRING: line over 80 characters
#244: FILE: drivers/event/sw/sw_evdev.c:74:
+	snprintf(buf, sizeof(buf), "sw%d_%s", dev->data->dev_id, "rx_worker_ring");

WARNING:LONG_LINE_STRING: line over 80 characters
#255: FILE: drivers/event/sw/sw_evdev.c:85:
+	snprintf(buf, sizeof(buf), "sw%d_%s", dev->data->dev_id, "cq_worker_ring");

WARNING:LONG_LINE_COMMENT: line over 80 characters
#309: FILE: drivers/event/sw/sw_evdev.h:53:
+#define SCHED_DEQUEUE_BURST_SIZE 32 /* how many packets pulled from port by sched */

WARNING:LONG_LINE_COMMENT: line over 80 characters
#360: FILE: drivers/event/sw/sw_evdev.h:169:
+	uint64_t avg_pkt_ticks;      /* tracks average over NUM_SAMPLES bursts */

total: 1 errors, 6 warnings, 368 lines checked

### [PATCH 05/12] event/sw: add support for linking queues to ports

WARNING:LONG_LINE: line over 80 characters
#74: FILE: drivers/event/sw/sw_evdev.c:108:
+				q->cq_map[j] = q->cq_map[q->cq_num_mapped_cqs - 1];

total: 0 errors, 1 warnings, 79 lines checked

### [PATCH 06/12] event/sw: add worker core functions

WARNING:LONG_LINE_COMMENT: line over 80 characters
#73: FILE: drivers/event/sw/sw_evdev.h:67:
+#define QE_FLAG_VALID    (1 << QE_FLAG_VALID_SHIFT)  /* set for NEW, FWD, FRAG */

WARNING:LONG_LINE: line over 80 characters
#191: FILE: drivers/event/sw/sw_evdev_worker.c:80:
+		int failed_to_get = rte_atomic32_dec_and_test(&sw->inflight_quanta);

WARNING:LONG_LINE: line over 80 characters
#217: FILE: drivers/event/sw/sw_evdev_worker.c:106:
+		uint64_t burst_pkt_ticks = burst_ticks / p->last_dequeue_burst_sz;

total: 0 errors, 3 warnings, 233 lines checked

### [PATCH 07/12] event/sw: add scheduling logic

WARNING:LONG_LINE_COMMENT: line over 80 characters
#156: FILE: drivers/event/sw/sw_evdev_scheduler.c:76:
+		/* use cheap bit mixing, since we only need to lose a few bits */

WARNING:LONG_LINE: line over 80 characters
#170: FILE: drivers/event/sw/sw_evdev_scheduler.c:90:
+			for (cq_idx = 0; cq_idx < qid->cq_num_mapped_cqs; cq_idx++) {

WARNING:LONG_LINE: line over 80 characters
#174: FILE: drivers/event/sw/sw_evdev_scheduler.c:94:
+					cq = test_cq, cq_free_cnt = test_cq_free;

WARNING:LONG_LINE: line over 80 characters
#204: FILE: drivers/event/sw/sw_evdev_scheduler.c:124:
+			qe_ring_enqueue_burst(worker, p->cq_buf, p->cq_buf_count,

WARNING:LONG_LINE: line over 80 characters
#231: FILE: drivers/event/sw/sw_evdev_scheduler.c:151:
+		count = RTE_MIN(count, rte_ring_count(qid->reorder_buffer_freelist));

WARNING:LONG_LINE: line over 80 characters
#249: FILE: drivers/event/sw/sw_evdev_scheduler.c:169:
+		} while (qe_ring_free_count(sw->ports[cq].cq_worker_ring) == 0 ||

WARNING:LONG_LINE: line over 80 characters
#342: FILE: drivers/event/sw/sw_evdev_scheduler.c:262:
+						(type == RTE_SCHED_TYPE_ORDERED));

WARNING:LONG_LINE: line over 80 characters
#391: FILE: drivers/event/sw/sw_evdev_scheduler.c:311:
+				qe = &entry->fragments[entry->fragment_index + j];

WARNING:LONG_LINE: line over 80 characters
#401: FILE: drivers/event/sw/sw_evdev_scheduler.c:321:
+				struct sw_qid *dest_qid_ptr = &sw->qids[dest_qid];

WARNING:LONG_LINE: line over 80 characters
#402: FILE: drivers/event/sw/sw_evdev_scheduler.c:322:
+				const struct iq_ring *dest_iq_ptr = dest_qid_ptr->iq[dest_iq];

WARNING:LONG_LINE: line over 80 characters
#427: FILE: drivers/event/sw/sw_evdev_scheduler.c:347:
+				rte_ring_sp_enqueue(qid->reorder_buffer_freelist,

WARNING:LONG_LINE: line over 80 characters
#495: FILE: drivers/event/sw/sw_evdev_scheduler.c:415:
+			struct sw_fid_t *fid = &sw->qids[hist_qid].fids[hist_fid];

WARNING:LONG_LINE: line over 80 characters
#502: FILE: drivers/event/sw/sw_evdev_scheduler.c:422:
+				uintptr_t rob_ptr = (uintptr_t)hist_entry->rob_entry;

WARNING:LONG_LINE: line over 80 characters
#505: FILE: drivers/event/sw/sw_evdev_scheduler.c:425:
+				rob_ptr |= ((valid - 1) & (uintptr_t)&dummy_rob);

WARNING:LONG_LINE: line over 80 characters
#506: FILE: drivers/event/sw/sw_evdev_scheduler.c:426:
+				((struct reorder_buffer_entry *)rob_ptr)->ready =

WARNING:LONG_LINE_COMMENT: line over 80 characters
#520: FILE: drivers/event/sw/sw_evdev_scheduler.c:440:
+				/* Although fragmentation not currently supported

WARNING:LONG_LINE: line over 80 characters
#525: FILE: drivers/event/sw/sw_evdev_scheduler.c:445:
+				if (rob_entry->num_fragments == SW_FRAGMENTS_MAX)

WARNING:LONG_LINE: line over 80 characters
#528: FILE: drivers/event/sw/sw_evdev_scheduler.c:448:
+					rob_entry->fragments[rob_entry->num_fragments++] = *qe;

WARNING:LONG_LINE_COMMENT: line over 80 characters
#625: FILE: drivers/event/sw/sw_evdev_scheduler.c:545:
+				/* TODO: use a function pointer in the port itself */

WARNING:LONG_LINE: line over 80 characters
#627: FILE: drivers/event/sw/sw_evdev_scheduler.c:547:
+					in_pkts += sw_schedule_pull_port_dir(sw, i);

WARNING:LONG_LINE: line over 80 characters
#629: FILE: drivers/event/sw/sw_evdev_scheduler.c:549:
+					in_pkts += sw_schedule_pull_port_lb(sw, i);

WARNING:LONG_LINE: line over 80 characters
#631: FILE: drivers/event/sw/sw_evdev_scheduler.c:551:
+					in_pkts += sw_schedule_pull_port_no_reorder(sw, i);

total: 0 errors, 22 warnings, 623 lines checked

### [PATCH 09/12] event/sw: add dump function for easier debugging

WARNING:LONG_LINE: line over 80 characters
#39: FILE: drivers/event/sw/sw_evdev.c:422:
+	uint32_t credits = sw->nb_events_limit - (quanta * SW_INFLIGHT_QUANTA_SIZE);

WARNING:LONG_LINE_STRING: line over 80 characters
#50: FILE: drivers/event/sw/sw_evdev.c:433:
+		fprintf(f, "\trx   %"PRIu64"\tdrop %"PRIu64"\ttx   %"PRIu64"\tinflight %d\n",

WARNING:LONG_LINE: line over 80 characters
#56: FILE: drivers/event/sw/sw_evdev.c:439:
+			sw->ports[i].avg_pkt_ticks, sw->ports[i].inflight_credits);

ERROR:SPACING: spaces required around that '>' (ctx:OxW)
#61: FILE: drivers/event/sw/sw_evdev.c:444:
+		for (max = (int)RTE_DIM(p->poll_buckets); max --> 0;)
 		                                                ^

WARNING:LONG_LINE: line over 80 characters
#67: FILE: drivers/event/sw/sw_evdev.c:450:
+						((j << SW_DEQ_STAT_BUCKET_SHIFT) + 1),

WARNING:LONG_LINE: line over 80 characters
#68: FILE: drivers/event/sw/sw_evdev.c:451:
+						((j+1) << SW_DEQ_STAT_BUCKET_SHIFT),

WARNING:LONG_LINE: line over 80 characters
#69: FILE: drivers/event/sw/sw_evdev.c:452:
+						p->poll_buckets[j] * 100.0 / p->total_polls);

WARNING:LONG_LINE: line over 80 characters
#75: FILE: drivers/event/sw/sw_evdev.c:458:
+		fprintf(f, "\t%srx ring used: %4"PRIu64"\tfree: %4"PRIu64 COL_RESET"\n",

WARNING:LONG_LINE: line over 80 characters
#81: FILE: drivers/event/sw/sw_evdev.c:464:
+		fprintf(f, "\t%scq ring used: %4"PRIu64"\tfree: %4"PRIu64 COL_RESET"\n",

WARNING:LONG_LINE: line over 80 characters
#96: FILE: drivers/event/sw/sw_evdev.c:479:
+				rte_ring_free_count(qid->reorder_buffer_freelist));

WARNING:LONG_LINE: line over 80 characters
#106: FILE: drivers/event/sw/sw_evdev.c:489:
+		fprintf(f, "\tInflights: %u\tFlows pinned per port: ", inflights);

WARNING:LONG_LINE: line over 80 characters
#118: FILE: drivers/event/sw/sw_evdev.c:501:
+				fprintf(f, "\t%siq %d: Used %d\tFree %d"COL_RESET"\n",

total: 1 errors, 11 warnings, 121 lines checked

### [PATCH 10/12] event/sw: add xstats support

WARNING:LONG_LINE: line over 80 characters
#340: FILE: drivers/event/sw/sw_evdev_xstats.c:243:
+	RTE_BUILD_BUG_ON(RTE_DIM(port_bucket_stats) != RTE_DIM(port_bucket_types));

WARNING:LONG_LINE: line over 80 characters
#349: FILE: drivers/event/sw/sw_evdev_xstats.c:252:
+				((MAX_SW_CONS_Q_DEPTH >> SW_DEQ_STAT_BUCKET_SHIFT) + 1) +

WARNING:LONG_LINE: line over 80 characters
#352: FILE: drivers/event/sw/sw_evdev_xstats.c:255:
+			sw->qid_count * sw->port_count * RTE_DIM(qid_port_stats);

WARNING:LONG_LINE: line over 80 characters
#382: FILE: drivers/event/sw/sw_evdev_xstats.c:285:
+			for (i = 0; i < RTE_DIM(port_bucket_stats); i++, stat++) {

WARNING:LONG_LINE_STRING: line over 80 characters
#389: FILE: drivers/event/sw/sw_evdev_xstats.c:292:
+				snprintf(sname, sizeof(sname), "port_%u_%s_%u-%u",

WARNING:LONG_LINE: line over 80 characters
#391: FILE: drivers/event/sw/sw_evdev_xstats.c:294:
+						(bkt << SW_DEQ_STAT_BUCKET_SHIFT) + 1,

WARNING:LONG_LINE: line over 80 characters
#392: FILE: drivers/event/sw/sw_evdev_xstats.c:295:
+						(bkt + 1) << SW_DEQ_STAT_BUCKET_SHIFT);

total: 0 errors, 7 warnings, 454 lines checked

### [PATCH 11/12] app/test: add unit tests for SW eventdev driver

WARNING:BLOCK_COMMENT_STYLE: Block comments should align the * on each line
#114: FILE: app/test/test_sw_eventdev.c:73:
+	/*
+	* len = 14 + 46

WARNING:LONG_LINE: line over 80 characters
#405: FILE: app/test/test_sw_eventdev.c:364:
+		printf("%d: error stats incorrect for directed port\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#494: FILE: app/test/test_sw_eventdev.c:453:
+		printf("%d: error stats incorrect for directed port\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#513: FILE: app/test/test_sw_eventdev.c:472:
+		printf("%d: error magic sequence number not dequeued\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#697: FILE: app/test/test_sw_eventdev.c:656:
+		printf("%d: Half of NUM_PKTS didn't arrive at port 1\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#710: FILE: app/test/test_sw_eventdev.c:669:
+		printf("%d: Half of NUM_PKTS didn't arrive at port 2\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#767: FILE: app/test/test_sw_eventdev.c:726:
+		printf("%d: Sched core didn't handle pkt as expected\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#793: FILE: app/test/test_sw_eventdev.c:752:
+				.event_queue_cfg = RTE_EVENT_QUEUE_CFG_ATOMIC_ONLY,

WARNING:LONG_LINE_COMMENT: line over 80 characters
#815: FILE: app/test/test_sw_eventdev.c:774:
+	/* enqueue 3 packets, setting seqn and QID as needed to check priority */

WARNING:LONG_LINE: line over 80 characters
#839: FILE: app/test/test_sw_eventdev.c:798:
+	uint32_t deq_pkts = rte_event_dequeue_burst(evdev, t->port[0], ev, 32, 0);

WARNING:LONG_LINE_STRING: line over 80 characters
#847: FILE: app/test/test_sw_eventdev.c:806:
+			printf("%d: qid priority test: seqn %d incorrectly prioritized\n",

WARNING:LONG_LINE: line over 80 characters
#874: FILE: app/test/test_sw_eventdev.c:833:
+			printf("%d: error mapping qid to port %d\n", __LINE__, i);

WARNING:LONG_LINE: line over 80 characters
#923: FILE: app/test/test_sw_eventdev.c:882:
+		printf("%d:%s: port 1 inflight not correct\n", __LINE__, __func__);

WARNING:LONG_LINE: line over 80 characters
#927: FILE: app/test/test_sw_eventdev.c:886:
+		printf("%d:%s: port 2 inflight not correct\n", __LINE__, __func__);

WARNING:LONG_LINE: line over 80 characters
#931: FILE: app/test/test_sw_eventdev.c:890:
+		printf("%d:%s: port 3 inflight not correct\n", __LINE__, __func__);

WARNING:LONG_LINE_COMMENT: line over 80 characters
#947: FILE: app/test/test_sw_eventdev.c:906:
+	/* Create qm instance with 1 atomic QID going to 3 ports + 1 prod port */

WARNING:LONG_LINE: line over 80 characters
#1073: FILE: app/test/test_sw_eventdev.c:1032:
+		printf("%d:%s: port 1 inflight not correct\n", __LINE__, __func__);

WARNING:LONG_LINE: line over 80 characters
#1081: FILE: app/test/test_sw_eventdev.c:1040:
+		printf("%d:%s: port 2 inflight not correct\n", __LINE__, __func__);

WARNING:LONG_LINE: line over 80 characters
#1089: FILE: app/test/test_sw_eventdev.c:1048:
+		printf("%d:%s: port 3 inflight not correct\n", __LINE__, __func__);

WARNING:LONG_LINE: line over 80 characters
#1125: FILE: app/test/test_sw_eventdev.c:1084:
+		err = rte_event_port_link(evdev, t->port[i], &t->qid[0], NULL, 1);

WARNING:LONG_LINE: line over 80 characters
#1179: FILE: app/test/test_sw_eventdev.c:1138:
+		printf("%d:%s: port 1 inflight count not correct\n", __LINE__, __func__);

WARNING:LONG_LINE: line over 80 characters
#1190: FILE: app/test/test_sw_eventdev.c:1149:
+		printf("%d:%s: port 1 dropped count not correct\n", __LINE__, __func__);

WARNING:LONG_LINE: line over 80 characters
#1261: FILE: app/test/test_sw_eventdev.c:1220:
+		printf("%d: Sched core didn't handle pkt as expected\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#1390: FILE: app/test/test_sw_eventdev.c:1349:
+		printf("%d: Sched core didn't handle pkt as expected\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#1395: FILE: app/test/test_sw_eventdev.c:1354:
+		printf("%d: %s port 1 inflight not correct\n", __LINE__, __func__);

WARNING:LONG_LINE: line over 80 characters
#1399: FILE: app/test/test_sw_eventdev.c:1358:
+		printf("%d: %s port 2 inflight not correct\n", __LINE__, __func__);

WARNING:LONG_LINE: line over 80 characters
#1415: FILE: app/test/test_sw_eventdev.c:1374:
+		printf("%d: port 1 inflight decrement after DEQ != 0\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#1419: FILE: app/test/test_sw_eventdev.c:1378:
+		err = rte_event_enqueue_burst(evdev, t->port[p1], &release_ev, 1);

WARNING:LONG_LINE: line over 80 characters
#1449: FILE: app/test/test_sw_eventdev.c:1408:
+		printf("%d: port 1 inflight decrement after DEQ != 0\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#1453: FILE: app/test/test_sw_eventdev.c:1412:
+		err = rte_event_enqueue_burst(evdev, t->port[p2], &release_ev, 1);

WARNING:LONG_LINE_COMMENT: line over 80 characters
#1521: FILE: app/test/test_sw_eventdev.c:1480:
+	/* CQ mapping to QID for load balanced ports (directed mapped on create) */

WARNING:LONG_LINE: line over 80 characters
#1523: FILE: app/test/test_sw_eventdev.c:1482:
+		err = rte_event_port_link(evdev, t->port[i], &t->qid[0], NULL, 1);

WARNING:LONG_LINE: line over 80 characters
#1566: FILE: app/test/test_sw_eventdev.c:1525:
+		deq_pkts = rte_event_dequeue_burst(evdev, t->port[i], &deq_ev[i],

WARNING:LONG_LINE: line over 80 characters
#1589: FILE: app/test/test_sw_eventdev.c:1548:
+	deq_pkts = rte_event_dequeue_burst(evdev, t->port[tx_port], deq_ev, 3, 0);

WARNING:LONG_LINE_STRING: line over 80 characters
#1593: FILE: app/test/test_sw_eventdev.c:1552:
+		printf("%d: expected 3 packets at tx port got %d from port %d\n",

WARNING:LONG_LINE_STRING: line over 80 characters
#1603: FILE: app/test/test_sw_eventdev.c:1562:
+				printf("%d: Incorrect sequence number(%d) from port %d\n",

WARNING:LONG_LINE: line over 80 characters
#1636: FILE: app/test/test_sw_eventdev.c:1595:
+	char rx_port_used_stat[64], rx_port_free_stat[64], other_port_used_stat[64];

WARNING:LONG_LINE: line over 80 characters
#1645: FILE: app/test/test_sw_eventdev.c:1604:
+			rte_event_port_link(evdev, t->port[1], NULL, NULL, 0) != 1) {

WARNING:LONG_LINE: line over 80 characters
#1661: FILE: app/test/test_sw_eventdev.c:1620:
+	if (rte_event_dev_get_xstat_by_name(evdev, "port_0_cq_ring_used", NULL) != 1)

WARNING:LONG_LINE: line over 80 characters
#1669: FILE: app/test/test_sw_eventdev.c:1628:
+	if (rte_event_dev_get_xstat_by_name(evdev, rx_port_used_stat, NULL) != 1) {

WARNING:LONG_LINE: line over 80 characters
#1682: FILE: app/test/test_sw_eventdev.c:1641:
+	} while (rte_event_dev_get_xstat_by_name(evdev, rx_port_free_stat, NULL) != 0);

WARNING:LONG_LINE: line over 80 characters
#1693: FILE: app/test/test_sw_eventdev.c:1652:
+	if (rte_event_dev_get_xstat_by_name(evdev, other_port_used_stat, NULL) != 0) {

WARNING:LONG_LINE: line over 80 characters
#1698: FILE: app/test/test_sw_eventdev.c:1657:
+	if (rte_event_dev_get_xstat_by_name(evdev, "qid_0_iq_0_used", NULL) != 1) {

WARNING:LONG_LINE: line over 80 characters
#1699: FILE: app/test/test_sw_eventdev.c:1658:
+		printf("%d: Error, QID does not have exactly 1 packet\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#1712: FILE: app/test/test_sw_eventdev.c:1671:
+	if (rte_event_dev_get_xstat_by_name(evdev, other_port_used_stat, NULL) != 1) {

WARNING:LONG_LINE: line over 80 characters
#1713: FILE: app/test/test_sw_eventdev.c:1672:
+		printf("%d: Error, second flow did not pass out first\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#1717: FILE: app/test/test_sw_eventdev.c:1676:
+	if (rte_event_dev_get_xstat_by_name(evdev, "qid_0_iq_0_used", NULL) != 1) {

WARNING:LONG_LINE: line over 80 characters
#1718: FILE: app/test/test_sw_eventdev.c:1677:
+		printf("%d: Error, QID does not have exactly 1 packet\n", __LINE__);

WARNING:LONG_LINE_COMMENT: line over 80 characters
#1739: FILE: app/test/test_sw_eventdev.c:1698:
+	 * the Queue Manager. Each packet gets looped through QIDs 0-8, 16 times,

WARNING:LONG_LINE: line over 80 characters
#1746: FILE: app/test/test_sw_eventdev.c:1705:
+		uint16_t i, nb_rx = rte_event_dequeue_burst(evdev, port, ev, BURST_SIZE, 0);

WARNING:LONG_LINE: line over 80 characters
#1756: FILE: app/test/test_sw_eventdev.c:1715:
+				enqd = rte_event_enqueue_burst(evdev, port, &ev[i], 1);

WARNING:LONG_LINE: line over 80 characters
#1758: FILE: app/test/test_sw_eventdev.c:1717:
+					printf("%d: Can't enqueue FWD!!\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#1768: FILE: app/test/test_sw_eventdev.c:1727:
+				enqd = rte_event_enqueue_burst(evdev, port, &ev[i], 1);

WARNING:LONG_LINE: line over 80 characters
#1770: FILE: app/test/test_sw_eventdev.c:1729:
+					printf("%d: Can't enqueue FWD!!\n", __LINE__);

WARNING:LONG_LINE: line over 80 characters
#1814: FILE: app/test/test_sw_eventdev.c:1773:
+			while (rte_event_enqueue_burst(evdev, port, &ev, 1) != 1)

WARNING:LONG_LINE_STRING: line over 80 characters
#1892: FILE: app/test/test_sw_eventdev.c:1851:
+			printf("%d: \tSched Rx = %" PRIu64 ", Tx = %" PRIu64 "\n",

WARNING:LONG_LINE: line over 80 characters
#1901: FILE: app/test/test_sw_eventdev.c:1860:
+				printf("%d: No schedules for seconds, deadlock\n", __LINE__);

WARNING:LONG_LINE_STRING: line over 80 characters
#1942: FILE: app/test/test_sw_eventdev.c:1901:
+		eventdev_func_mempool = rte_pktmbuf_pool_create("QM_SA_MBUF_POOL",

WARNING:LONG_LINE_COMMENT: line over 80 characters
#2065: FILE: app/test/test_sw_eventdev.c:2024:
+	 * in the static eventdev_func_mempool variable. It is re-used on re-runs

total: 0 errors, 59 warnings, 2042 lines checked

3/11 valid patches


More information about the dev mailing list