From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: Re: [PATCH v2 00/15] next-eventdev: event/sw software eventdev Date: Mon, 6 Feb 2017 13:37:18 +0530 Message-ID: <20170206080717.GA25242@localhost.localdomain> References: <1484580885-148524-1-git-send-email-harry.van.haaren@intel.com> <1485879273-86228-1-git-send-email-harry.van.haaren@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Cc: To: Harry van Haaren Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0049.outbound.protection.outlook.com [104.47.34.49]) by dpdk.org (Postfix) with ESMTP id 95874FFA for ; Mon, 6 Feb 2017 09:07:38 +0100 (CET) Content-Disposition: inline In-Reply-To: <1485879273-86228-1-git-send-email-harry.van.haaren@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 > > > 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 >