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.haa...@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