[dpdk-dev] [PATCH v2 00/15] next-eventdev: event/sw software eventdev
Jerin Jacob
jerin.jacob at caviumnetworks.com
Mon Feb 6 09:07:18 CET 2017
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.haaren at 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
>
More information about the dev
mailing list