From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 56C012A5D for ; Fri, 17 Feb 2017 15:54:12 +0100 (CET) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Feb 2017 06:54:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,172,1484035200"; d="scan'208";a="1111097379" Received: from silpixa00398672.ir.intel.com ([10.237.223.128]) by fmsmga001.fm.intel.com with ESMTP; 17 Feb 2017 06:54:10 -0800 From: Harry van Haaren To: dev@dpdk.org Cc: jerin.jacob@caviumnetworks.com, Harry van Haaren Date: Fri, 17 Feb 2017 14:53:55 +0000 Message-Id: <1487343252-16092-1-git-send-email-harry.van.haaren@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1485879273-86228-1-git-send-email-harry.van.haaren@intel.com> References: <1485879273-86228-1-git-send-email-harry.van.haaren@intel.com> Subject: [dpdk-dev] [PATCH v3 00/17] next-eventdev: event/sw software eventdev X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Feb 2017 14:54:12 -0000 The following patchset adds software eventdev implementation to the next-eventdev tree. This implementation is based on the previous software eventdev v2 patchset, now with comments addressed: 1) Fixed queue configure in single link, returning -EDQOUT (Jerin) 2) SW_SCHED_TYPE_DIRECT now in SW_ namespace (Jerin) 3) SW_PMD_NAME now in SW_ namespace (Jerin) 4) Replaced printfs with SW_LOG() to report errors (Jerin) 5) Update version map to 17.05 (Jerin) 6) Fixed back-to-back tests of event/sw (Jerin) 7) checkpatch issues in v2 of xstats() (Jerin) 8) Updated link() and unlink() functions to accept dev* parameter 9) Fixed bug in load-balanced port credits returning (Gage) a) Fixed segfault if dump() called before fully configured (Vipin) b) Removed extern sched_quanta, now tracked internally in state c) Added compiler barriers to qe_ring datastructures d) vdev uninit() as implemented in next-eventdev is now supported (Jerin) c) xstats get() API has "mode" to select dev, port or queue stats (Jerin) e) xstats reset() added (Jerin) f) Renamed test_sw_eventdev.c to test_eventdev_sw.c (Jerin) The first three patches in the series make new changes to the eventdev API and tests that were not present in the v2 patchset. This was required to pass the unit tests and provide correct behaviour of eventdev layer checks of the event/sw implementation: 0) Fix timeout ticks test to return -ENOTSUP if dev doesn't support it 1) Increase the enqueue depth in dev_config and port_conf 2) Create dummy Links before start stop test (details in commit msg) Next then the software implementation is added, and finally more tests are added for the sw eventdev implementation. Git log is clean, while checkpatch issues: 2 Errors on Complex Macro (which I beleive cannot be fixed) 4 Warnings in the scheduler logic, which reduce readability when fixed. This patchset contains the work of multiple developers, please see signoffs on each patch. Signed-off-by: Harry van Haaren Bruce Richardson (14): 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 Harry van Haaren (3): eventdev: fix API docs and test for timeout ticks eventdev: increase size of enq deq conf variables app/test: eventdev link all queues before start app/test/Makefile | 5 +- app/test/autotest_data.py | 26 + app/test/test_eventdev.c | 20 +- app/test/test_eventdev_sw.c | 2249 +++++++++++++++++++++++++ config/common_base | 5 + drivers/event/Makefile | 1 + drivers/event/sw/Makefile | 69 + drivers/event/sw/event_ring.h | 185 ++ drivers/event/sw/iq_ring.h | 176 ++ drivers/event/sw/rte_pmd_evdev_sw_version.map | 3 + drivers/event/sw/sw_evdev.c | 793 +++++++++ drivers/event/sw/sw_evdev.h | 306 ++++ drivers/event/sw/sw_evdev_scheduler.c | 602 +++++++ drivers/event/sw/sw_evdev_worker.c | 188 +++ drivers/event/sw/sw_evdev_xstats.c | 511 ++++++ lib/librte_eventdev/rte_eventdev.c | 78 + lib/librte_eventdev/rte_eventdev.h | 130 +- lib/librte_eventdev/rte_eventdev_pmd.h | 70 + lib/librte_eventdev/rte_eventdev_version.map | 4 + mk/rte.app.mk | 1 + 20 files changed, 5415 insertions(+), 7 deletions(-) create mode 100644 app/test/test_eventdev_sw.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