On Tue, Jan 31, 2017 at 04:14:18PM +0000, Harry van Haaren wrote: > The following patchset adds software eventdev implementation > to the next-eventdev tree. > > This implementation is based on the previous software eventdev > v1 patchset, now with comments addressed: > 1) xstats api return values changed to be consistent > 2) xstats api [out] added to appropriate values > 3) xstats api now uses xxx_get() for consistency > 4) patch names for check-log.sh
Nice to have name the in bracket who suggested it. > 5) checkpatch issues resolved (where it makes sense to, there are > certain places where fixing checkpatch makes the code less readable. > These checkpatch warnings will still show up - I see no alternative) I agree. Except a few lines in the test code with rte_event_dev_xstats_by_name_get > > In addition, the following improvements have been made to the patchset: > 1) Adds test to run automatically with make test > 2) Rework the sw implementation event credit scheme > > 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. Two issue found in testing. If it makes sense, fix it in test code or implementation 1) Running eventdev_common_autotest with event_sw0 sudo ./build/app/test --vdev='event_sw0' RTE>>eventdev_common_autotest TestCase test_eventdev_port_setup() line 437 failed: Expected -EINVAL, 0 + TestCase [11] : test_eventdev_port_setup failed + TestCase [12] : test_eventdev_dequeue_depth succeeded + TestCase [13] : test_eventdev_enqueue_depth succeeded + TestCase [14] : test_eventdev_port_count succeeded TestCase test_eventdev_timeout_ticks() line 522 failed (err -95): Fail to get timeout_ticks + TestCase [15] : test_eventdev_timeout_ticks failed sw_start 543: queue 0 not configured TestCase test_eventdev_start_stop() line 547 failed (err -1): Failed to start device0 + TestCase [16] : test_eventdev_start_stop failed sw_start 543: queue 0 not configured TestCase eventdev_setup_device() line 573 failed (err -1): Failed to start device0 EVENTDEV: rte_event_dev_stop() line 1026: Device with dev_id=0already stopped + TestCase [17] : test_eventdev_link failed sw_start 543: queue 0 not configured TestCase eventdev_setup_device() line 573 failed (err -1): Failed to start device0 EVENTDEV: rte_event_dev_stop() line 1026: Device with dev_id=0already stopped + TestCase [18] : test_eventdev_unlink failed sw_start 543: queue 0 not configured TestCase eventdev_setup_device() line 573 failed (err -1): Failed to start device0 EVENTDEV: rte_event_dev_stop() line 1026: Device with dev_id=0already stopped + TestCase [19] : test_eventdev_link_get failed sw_start 543: queue 0 not configured TestCase eventdev_setup_device() line 573 failed (err -1): Failed to start device0 + TestCase [20] : test_eventdev_close failed PMD: Initializing event_skeleton1 on NUMA node 0 2) back to back eventdev_sw_autotest invocation RTE>>eventdev_sw_autotest 1926: Eventdev event_sw0 not found - creating. PMD: Creating eventdev sw device event_sw0, numa_node=0, sched_quanta=128, credit_quanta=32 *** Running Single Directed Packet test... *** Running Single Load Balanced Packet test... *** Running Unordered Basic test... *** Running Ordered Basic test... *** Running Burst Packets test... *** Running Load Balancing test... *** Running Prioritized Directed test... *** Running Prioritized Atomic test... *** Running Prioritized Ordered test... *** Running Prioritized Unordered test... *** Running Invalid QID test... *** Running Load Balancing History test... *** Running Inflight Count test... *** Running Abuse Inflights test... *** Running QID Priority test... *** Running Head-of-line-blocking test... *** Running Worker loopback test... 1791: Producer function started 1731: Worker function started 1889: Sched Rx = 10713728, Tx = 10713248 1889: Sched Rx = 21422880, Tx = 21422400 1889: Sched Rx = 32066688, Tx = 32066208 Test OK RTE>>eventdev_ eventdev_common_autotest [Mul-choice STRING]: launch autotest eventdev_sw_autotest [Mul-choice STRING]: launch autotest RTE>>eventdev_sw_autotest *** Running Single Directed Packet test... *** Running Single Load Balanced Packet test... *** Running Unordered Basic test... *** Running Ordered Basic test... *** Running Burst Packets test... *** Running Load Balancing test... *** Running Prioritized Directed test... *** Running Prioritized Atomic test... *** Running Prioritized Ordered test... *** Running Prioritized Unordered test... *** Running Invalid QID test... *** Running Load Balancing History test... *** Running Inflight Count test... *** Running Abuse Inflights test... *** Running QID Priority test... *** Running Head-of-line-blocking test... *** Running Worker loopback test... 1791: Producer function started 1731: Worker function started 1889: Sched Rx = 502401, Tx = 501860 1889: Sched Rx = 502401, Tx = 501860 1889: Sched Rx = 502401, Tx = 501860 1889: Sched Rx = 502401, Tx = 501860 1889: Sched Rx = 502401, Tx = 501860 EventDev todo-fix-name: ports 2, qids 8 rx 502401 drop 0 tx 501860 sched calls: 6797287 sched cq/qid call: 6818630 sched no IQ enq: 6783503 sched no CQ enq: 6781603 inflight 4000, credits: 96 Port 0 rx 4637 drop 0 tx 0 inflight 0 Avg cycles PP: 0 Credits: 3 Receive burst distribution: 0:-nan% rx ring used: 0 free: 4096 cq ring used: 0 free: 32 Port 1 rx 497764 drop 0 tx 501860 inflight 4096 Avg cycles PP: 99 Credits: 33 Receive burst distribution: 0:100% 1-4:0.00% 29-32:0.01% rx ring used: 4068 free: 28 cq ring used: 0 free: 32 Queue 0 (Atomic) rx 63682 drop 0 tx 63652 Inflights: 642 Flows pinned per port: 0 638 iq 0: Used 30 Free 481 Queue 1 (Atomic) rx 63010 drop 0 tx 63010 Inflights: 0 Flows pinned per port: 0 0 -- iqs empty -- Queue 2 (Atomic) rx 63010 drop 0 tx 63010 Inflights: 0 Flows pinned per port: 0 0 -- iqs empty -- Queue 3 (Atomic) rx 63010 drop 0 tx 63010 Inflights: 0 Flows pinned per port: 0 0 -- iqs empty -- Queue 4 (Atomic) rx 63010 drop 0 tx 63010 Inflights: 0 Flows pinned per port: 0 0 -- iqs empty -- Queue 5 (Atomic) rx 63010 drop 0 tx 63010 Inflights: 0 Flows pinned per port: 0 0 -- iqs empty -- Queue 6 (Atomic) rx 63010 drop 0 tx 63010 Inflights: 2351 Flows pinned per port: 0 1009 -- iqs empty -- Queue 7 (Atomic) rx 60659 drop 0 tx 60148 Inflights: 1103 Flows pinned per port: 0 937 iq 0: Used 511 Free 0 1899: No schedules for seconds, deadlock ERROR - Worker loopback test FAILED. Test Failed RTE>>[ > > 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> > > > Bruce Richardson (15): > eventdev: remove unneeded dependencies > eventdev: add APIs for extended stats > event/sw: add new software-only eventdev driver > event/sw: add device capabilities function > event/sw: add configure function > event/sw: add fns to return default port/queue config > event/sw: add support for event queues > event/sw: add support for event ports > event/sw: add support for linking queues to ports > event/sw: add worker core functions > event/sw: add scheduling logic > event/sw: add start stop and close functions > event/sw: add dump function for easier debugging > event/sw: add xstats support > app/test: add unit tests for SW eventdev driver > > app/test/Makefile | 5 +- > app/test/autotest_data.py | 26 + > app/test/test_sw_eventdev.c | 2071 > +++++++++++++++++++++++++ > config/common_base | 5 + > drivers/event/Makefile | 1 + > drivers/event/sw/Makefile | 69 + > drivers/event/sw/event_ring.h | 179 +++ > drivers/event/sw/iq_ring.h | 176 +++ > drivers/event/sw/rte_pmd_evdev_sw_version.map | 3 + > drivers/event/sw/sw_evdev.c | 754 +++++++++ > drivers/event/sw/sw_evdev.h | 291 ++++ > drivers/event/sw/sw_evdev_scheduler.c | 602 +++++++ > drivers/event/sw/sw_evdev_worker.c | 186 +++ > drivers/event/sw/sw_evdev_xstats.c | 404 +++++ > lib/librte_eventdev/Makefile | 1 - > lib/librte_eventdev/rte_eventdev.c | 63 + > lib/librte_eventdev/rte_eventdev.h | 85 +- > lib/librte_eventdev/rte_eventdev_pmd.h | 60 + > lib/librte_eventdev/rte_eventdev_version.map | 3 + > mk/rte.app.mk | 1 + > 20 files changed, 4981 insertions(+), 4 deletions(-) > create mode 100644 app/test/test_sw_eventdev.c > create mode 100644 drivers/event/sw/Makefile > create mode 100644 drivers/event/sw/event_ring.h > create mode 100644 drivers/event/sw/iq_ring.h > create mode 100644 drivers/event/sw/rte_pmd_evdev_sw_version.map > create mode 100644 drivers/event/sw/sw_evdev.c > create mode 100644 drivers/event/sw/sw_evdev.h > create mode 100644 drivers/event/sw/sw_evdev_scheduler.c > create mode 100644 drivers/event/sw/sw_evdev_worker.c > create mode 100644 drivers/event/sw/sw_evdev_xstats.c > > -- > 2.7.4 >