Patch adds skeleton for feature metrices for event dev and Rx/Tx adapters. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- doc/guides/eventdevs/index.rst | 1 + doc/guides/eventdevs/overview.rst | 19 +++++ .../overview_adptr_feature_table.txt | 76 +++++++++++++++++ .../eventdevs/overview_feature_table.txt | 82 +++++++++++++++++++ 4 files changed, 178 insertions(+) create mode 100644 doc/guides/eventdevs/overview.rst create mode 100644 doc/guides/eventdevs/overview_adptr_feature_table.txt create mode 100644 doc/guides/eventdevs/overview_feature_table.txt diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index 570905b81..540ac762c 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -11,6 +11,7 @@ application trough the eventdev API. :maxdepth: 2 :numbered: + overview dpaa dpaa2 dsw diff --git a/doc/guides/eventdevs/overview.rst b/doc/guides/eventdevs/overview.rst new file mode 100644 index 000000000..6825b9007 --- /dev/null +++ b/doc/guides/eventdevs/overview.rst @@ -0,0 +1,19 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(C) 2019 Marvell International Ltd. + +Event Device Supported Functionality Matrices +============================================= + +Event Device Supported Feature Flags +------------------------------------ + +.. _table_eventdev_pmd_features: + +.. include:: overview_feature_table.txt + +Adapter Supported Feature Flags +------------------------------- + +.. _table_adapter_features: + +.. include:: overview_adptr_feature_table.txt diff --git a/doc/guides/eventdevs/overview_adptr_feature_table.txt b/doc/guides/eventdevs/overview_adptr_feature_table.txt new file mode 100644 index 000000000..4f4887ea8 --- /dev/null +++ b/doc/guides/eventdevs/overview_adptr_feature_table.txt @@ -0,0 +1,76 @@ + +.. raw:: html + + <style> + .wy-nav-content { + opacity: .99; + } + table#id1 { + cursor: default; + overflow: hidden; + } + table#id1 th, table#id1 td { + text-align: center; + } + table#id1 th { + font-size: 72%; + white-space: pre-wrap; + vertical-align: top; + padding: 0.5em 0; + min-width: 0.9em; + width: 2em; + } + table#id1 col:first-child { + width: 0; + } + table#id1 th:first-child { + vertical-align: bottom; + } + table#id1 td { + font-size: 70%; + padding: 1px; + } + table#id1 td:first-child { + padding-left: 1em; + text-align: left; + } + table#id1 tr:nth-child(2n-1) td { + background-color: rgba(210, 210, 210, 0.2); + } + table#id1 th:not(:first-child):hover, + table#id1 td:not(:first-child):hover { + position: relative; + } + table#id1 th:not(:first-child):hover::after, + table#id1 td:not(:first-child):hover::after { + content: ''; + height: 6000px; + top: -3000px; + width: 100%; + left: 0; + position: absolute; + z-index: -1; + background-color: #ffb; + } + table#id1 tr:hover td { + background-color: #ffb; + } + </style> + +.. table:: Features availability for adapters + + ================================ = = = = = = = + Feature d d d o o o s + p p s c c p w + a a w t t d + a a e e l + 2 o o + n n + t t + x x + 2 + ================================ = = = = = = = + Rx/Tx on internal port + Multiple event queues per ethdev + Override flow ID + ================================ = = = = = = = diff --git a/doc/guides/eventdevs/overview_feature_table.txt b/doc/guides/eventdevs/overview_feature_table.txt new file mode 100644 index 000000000..c2e9bd289 --- /dev/null +++ b/doc/guides/eventdevs/overview_feature_table.txt @@ -0,0 +1,82 @@ + +.. raw:: html + + <style> + .wy-nav-content { + opacity: .99; + } + table#id1 { + cursor: default; + overflow: hidden; + } + table#id1 th, table#id1 td { + text-align: center; + } + table#id1 th { + font-size: 72%; + white-space: pre-wrap; + vertical-align: top; + padding: 0.5em 0; + min-width: 0.9em; + width: 2em; + } + table#id1 col:first-child { + width: 0; + } + table#id1 th:first-child { + vertical-align: bottom; + } + table#id1 td { + font-size: 70%; + padding: 1px; + } + table#id1 td:first-child { + padding-left: 1em; + text-align: left; + } + table#id1 tr:nth-child(2n-1) td { + background-color: rgba(210, 210, 210, 0.2); + } + table#id1 th:not(:first-child):hover, + table#id1 td:not(:first-child):hover { + position: relative; + } + table#id1 th:not(:first-child):hover::after, + table#id1 td:not(:first-child):hover::after { + content: ''; + height: 6000px; + top: -3000px; + width: 100%; + left: 0; + position: absolute; + z-index: -1; + background-color: #ffb; + } + table#id1 tr:hover td { + background-color: #ffb; + } + </style> + +.. table:: Features availability in eventdev drivers + + ===================================== = = = = = = = + Feature d d d o o o s + p p s c c p w + a a w t t d + a a e e l + 2 o o + n n + t t + x x + 2 + ===================================== = = = = = = = + Event queue priority based scheduling + Event priority based scheduling + Event device distributed scheduling + Event device non sequential mode + Event queue all types + Burst mode enqueue/dequeue + Event port implicit release disable + Runtime event queue/port linking + Multi queue linking per port + ===================================== = = = = = = = -- 2.17.1
Patch updates eventdev and adapters feature metrices for octeontx2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- doc/guides/eventdevs/features/octeontx2.ini | 16 ++++++++++++++++ .../eventdevs/overview_adptr_feature_table.txt | 4 ++-- doc/guides/eventdevs/overview_feature_table.txt | 12 ++++++------ 3 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 doc/guides/eventdevs/features/octeontx2.ini diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini new file mode 100644 index 000000000..05718e4ac --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -0,0 +1,16 @@ +; +; Supported features of the 'octeontx2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] +Event queue priority based scheduling = Y +Event device distributed scheduling = Y +Event device non sequential mode = Y +Event queue all types = Y +Runtime event queue/port linking = Y +Multi queue linking per port = Y + +[Adapter Features] +Rx/Tx on internal port = Y +Multiple event queues per ethdev = Y diff --git a/doc/guides/eventdevs/overview_adptr_feature_table.txt b/doc/guides/eventdevs/overview_adptr_feature_table.txt index 4f4887ea8..11c66eb49 100644 --- a/doc/guides/eventdevs/overview_adptr_feature_table.txt +++ b/doc/guides/eventdevs/overview_adptr_feature_table.txt @@ -70,7 +70,7 @@ x x 2 ================================ = = = = = = = - Rx/Tx on internal port - Multiple event queues per ethdev + Rx/Tx on internal port Y + Multiple event queues per ethdev Y Override flow ID ================================ = = = = = = = diff --git a/doc/guides/eventdevs/overview_feature_table.txt b/doc/guides/eventdevs/overview_feature_table.txt index c2e9bd289..c4d3bd6d4 100644 --- a/doc/guides/eventdevs/overview_feature_table.txt +++ b/doc/guides/eventdevs/overview_feature_table.txt @@ -70,13 +70,13 @@ x x 2 ===================================== = = = = = = = - Event queue priority based scheduling + Event queue priority based scheduling Y Event priority based scheduling - Event device distributed scheduling - Event device non sequential mode - Event queue all types + Event device distributed scheduling Y + Event device non sequential mode Y + Event queue all types Y Burst mode enqueue/dequeue Event port implicit release disable - Runtime event queue/port linking - Multi queue linking per port + Runtime event queue/port linking Y + Multi queue linking per port Y ===================================== = = = = = = = -- 2.17.1
Patch updates eventdev and adapters feature metrices for octeontx2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- doc/guides/eventdevs/features/octeontx.ini | 15 +++++++++++++++ .../eventdevs/overview_adptr_feature_table.txt | 2 +- doc/guides/eventdevs/overview_feature_table.txt | 12 ++++++------ 3 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 doc/guides/eventdevs/features/octeontx.ini diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini new file mode 100644 index 000000000..af6700711 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -0,0 +1,15 @@ +; +; Supported features of the 'octeontx2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] +Event queue priority based scheduling = Y +Event device distributed scheduling = Y +Event device non sequential mode = Y +Event queue all types = Y +Runtime event queue/port linking = Y +Multi queue linking per port = Y + +[Adapter Features] +Rx/Tx on internal port = Y diff --git a/doc/guides/eventdevs/overview_adptr_feature_table.txt b/doc/guides/eventdevs/overview_adptr_feature_table.txt index 11c66eb49..b5715713f 100644 --- a/doc/guides/eventdevs/overview_adptr_feature_table.txt +++ b/doc/guides/eventdevs/overview_adptr_feature_table.txt @@ -70,7 +70,7 @@ x x 2 ================================ = = = = = = = - Rx/Tx on internal port Y + Rx/Tx on internal port Y Y Multiple event queues per ethdev Y Override flow ID ================================ = = = = = = = diff --git a/doc/guides/eventdevs/overview_feature_table.txt b/doc/guides/eventdevs/overview_feature_table.txt index c4d3bd6d4..e48893378 100644 --- a/doc/guides/eventdevs/overview_feature_table.txt +++ b/doc/guides/eventdevs/overview_feature_table.txt @@ -70,13 +70,13 @@ x x 2 ===================================== = = = = = = = - Event queue priority based scheduling Y + Event queue priority based scheduling Y Y Event priority based scheduling - Event device distributed scheduling Y - Event device non sequential mode Y - Event queue all types Y + Event device distributed scheduling Y Y + Event device non sequential mode Y Y + Event queue all types Y Y Burst mode enqueue/dequeue Event port implicit release disable - Runtime event queue/port linking Y - Multi queue linking per port Y + Runtime event queue/port linking Y Y + Multi queue linking per port Y Y ===================================== = = = = = = = -- 2.17.1
On Thu, Nov 7, 2019 at 4:42 PM Sunil Kumar Kori <skori@marvell.com> wrote: > > Patch adds skeleton for feature metrices for event dev s/metrices/matrices > and Rx/Tx adapters. > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> > + > + ================================ = = = = = = = > + Feature d d d o o o s > + p p s c c p w > + a a w t t d > + a a e e l > + 2 o o > + n n > + t t > + x x > + 2 > + ================================ = = = = = = = > + Rx/Tx on internal port > + Multiple event queues per ethdev > + Override flow ID > + ================================ = = = = = = = I think we can have additional rows for the Crypto Adapter, and Timer adapter. > + ===================================== = = = = = = = > + Feature d d d o o o s > + p p s c c p w > + a a w t t d > + a a e e l > + 2 o o > + n n > + t t > + x x > + 2 > + ===================================== = = = = = = = > + Event queue priority based scheduling > + Event priority based scheduling > + Event device distributed scheduling > + Event device non sequential mode > + Event queue all types > + Burst mode enqueue/dequeue > + Event port implicit release disable > + Runtime event queue/port linking > + Multi queue linking per port > + ===================================== = = = = = = = @ All eventdev PMD maintainers. Do you like to have any more features in the eventdev and adapter list? > -- > 2.17.1 >
Patch adds skeleton for feature matrices for event dev and Rx/Tx adapters. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v2: - Review comments incorporated doc/guides/eventdevs/index.rst | 1 + doc/guides/eventdevs/overview.rst | 19 +++++ .../overview_adptr_feature_table.txt | 81 ++++++++++++++++++ .../eventdevs/overview_feature_table.txt | 82 +++++++++++++++++++ 4 files changed, 183 insertions(+) create mode 100644 doc/guides/eventdevs/overview.rst create mode 100644 doc/guides/eventdevs/overview_adptr_feature_table.txt create mode 100644 doc/guides/eventdevs/overview_feature_table.txt diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index 570905b81..540ac762c 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -11,6 +11,7 @@ application trough the eventdev API. :maxdepth: 2 :numbered: + overview dpaa dpaa2 dsw diff --git a/doc/guides/eventdevs/overview.rst b/doc/guides/eventdevs/overview.rst new file mode 100644 index 000000000..6825b9007 --- /dev/null +++ b/doc/guides/eventdevs/overview.rst @@ -0,0 +1,19 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(C) 2019 Marvell International Ltd. + +Event Device Supported Functionality Matrices +============================================= + +Event Device Supported Feature Flags +------------------------------------ + +.. _table_eventdev_pmd_features: + +.. include:: overview_feature_table.txt + +Adapter Supported Feature Flags +------------------------------- + +.. _table_adapter_features: + +.. include:: overview_adptr_feature_table.txt diff --git a/doc/guides/eventdevs/overview_adptr_feature_table.txt b/doc/guides/eventdevs/overview_adptr_feature_table.txt new file mode 100644 index 000000000..a2e2c0ab3 --- /dev/null +++ b/doc/guides/eventdevs/overview_adptr_feature_table.txt @@ -0,0 +1,81 @@ + +.. raw:: html + + <style> + .wy-nav-content { + opacity: .99; + } + table#id1 { + cursor: default; + overflow: hidden; + } + table#id1 th, table#id1 td { + text-align: center; + } + table#id1 th { + font-size: 72%; + white-space: pre-wrap; + vertical-align: top; + padding: 0.5em 0; + min-width: 0.9em; + width: 2em; + } + table#id1 col:first-child { + width: 0; + } + table#id1 th:first-child { + vertical-align: bottom; + } + table#id1 td { + font-size: 70%; + padding: 1px; + } + table#id1 td:first-child { + padding-left: 1em; + text-align: left; + } + table#id1 tr:nth-child(2n-1) td { + background-color: rgba(210, 210, 210, 0.2); + } + table#id1 th:not(:first-child):hover, + table#id1 td:not(:first-child):hover { + position: relative; + } + table#id1 th:not(:first-child):hover::after, + table#id1 td:not(:first-child):hover::after { + content: ''; + height: 6000px; + top: -3000px; + width: 100%; + left: 0; + position: absolute; + z-index: -1; + background-color: #ffb; + } + table#id1 tr:hover td { + background-color: #ffb; + } + </style> + +.. table:: Features availability for adapters + + ========================================== = = = = = = = + Feature d d d o o o s + p p s c c p w + a a w t t d + a a e e l + 2 o o + n n + t t + x x + 2 + ========================================== = = = = = = = + Eth Rx/Tx adapter on internal port + Multiple event queues per ethdev + Override flow ID + Crypto adapter new event enqueue + Crypto adapter forwarded event enqueue + Crypto queue pair mapping to event queue + Crypto adapter session data store/retrieve + Timer adapter support in H/W + ========================================== = = = = = = = diff --git a/doc/guides/eventdevs/overview_feature_table.txt b/doc/guides/eventdevs/overview_feature_table.txt new file mode 100644 index 000000000..c2e9bd289 --- /dev/null +++ b/doc/guides/eventdevs/overview_feature_table.txt @@ -0,0 +1,82 @@ + +.. raw:: html + + <style> + .wy-nav-content { + opacity: .99; + } + table#id1 { + cursor: default; + overflow: hidden; + } + table#id1 th, table#id1 td { + text-align: center; + } + table#id1 th { + font-size: 72%; + white-space: pre-wrap; + vertical-align: top; + padding: 0.5em 0; + min-width: 0.9em; + width: 2em; + } + table#id1 col:first-child { + width: 0; + } + table#id1 th:first-child { + vertical-align: bottom; + } + table#id1 td { + font-size: 70%; + padding: 1px; + } + table#id1 td:first-child { + padding-left: 1em; + text-align: left; + } + table#id1 tr:nth-child(2n-1) td { + background-color: rgba(210, 210, 210, 0.2); + } + table#id1 th:not(:first-child):hover, + table#id1 td:not(:first-child):hover { + position: relative; + } + table#id1 th:not(:first-child):hover::after, + table#id1 td:not(:first-child):hover::after { + content: ''; + height: 6000px; + top: -3000px; + width: 100%; + left: 0; + position: absolute; + z-index: -1; + background-color: #ffb; + } + table#id1 tr:hover td { + background-color: #ffb; + } + </style> + +.. table:: Features availability in eventdev drivers + + ===================================== = = = = = = = + Feature d d d o o o s + p p s c c p w + a a w t t d + a a e e l + 2 o o + n n + t t + x x + 2 + ===================================== = = = = = = = + Event queue priority based scheduling + Event priority based scheduling + Event device distributed scheduling + Event device non sequential mode + Event queue all types + Burst mode enqueue/dequeue + Event port implicit release disable + Runtime event queue/port linking + Multi queue linking per port + ===================================== = = = = = = = -- 2.17.1
Patch updates eventdev and adapters feature matrices for octeontx2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx2.ini | 17 +++++++++++++++++ .../eventdevs/overview_adptr_feature_table.txt | 6 +++--- doc/guides/eventdevs/overview_feature_table.txt | 12 ++++++------ 3 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 doc/guides/eventdevs/features/octeontx2.ini diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini new file mode 100644 index 000000000..4c50b2125 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -0,0 +1,17 @@ +; +; Supported features of the 'octeontx2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] +Event queue priority based scheduling = Y +Event device distributed scheduling = Y +Event device non sequential mode = Y +Event queue all types = Y +Runtime event queue/port linking = Y +Multi queue linking per port = Y + +[Adapter Features] +Eth Rx/Tx adapter on internal port = Y +Multiple event queues per ethdev = Y +Timer adapter support in H/W = Y diff --git a/doc/guides/eventdevs/overview_adptr_feature_table.txt b/doc/guides/eventdevs/overview_adptr_feature_table.txt index a2e2c0ab3..9aac52069 100644 --- a/doc/guides/eventdevs/overview_adptr_feature_table.txt +++ b/doc/guides/eventdevs/overview_adptr_feature_table.txt @@ -70,12 +70,12 @@ x x 2 ========================================== = = = = = = = - Eth Rx/Tx adapter on internal port - Multiple event queues per ethdev + Eth Rx/Tx adapter on internal port Y + Multiple event queues per ethdev Y Override flow ID Crypto adapter new event enqueue Crypto adapter forwarded event enqueue Crypto queue pair mapping to event queue Crypto adapter session data store/retrieve - Timer adapter support in H/W + Timer adapter support in H/W Y ========================================== = = = = = = = diff --git a/doc/guides/eventdevs/overview_feature_table.txt b/doc/guides/eventdevs/overview_feature_table.txt index c2e9bd289..c4d3bd6d4 100644 --- a/doc/guides/eventdevs/overview_feature_table.txt +++ b/doc/guides/eventdevs/overview_feature_table.txt @@ -70,13 +70,13 @@ x x 2 ===================================== = = = = = = = - Event queue priority based scheduling + Event queue priority based scheduling Y Event priority based scheduling - Event device distributed scheduling - Event device non sequential mode - Event queue all types + Event device distributed scheduling Y + Event device non sequential mode Y + Event queue all types Y Burst mode enqueue/dequeue Event port implicit release disable - Runtime event queue/port linking - Multi queue linking per port + Runtime event queue/port linking Y + Multi queue linking per port Y ===================================== = = = = = = = -- 2.17.1
Patch updates eventdev and adapters feature matrices for octeontx platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx.ini | 16 ++++++++++++++++ .../eventdevs/overview_adptr_feature_table.txt | 4 ++-- doc/guides/eventdevs/overview_feature_table.txt | 12 ++++++------ 3 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 doc/guides/eventdevs/features/octeontx.ini diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini new file mode 100644 index 000000000..27cde77cd --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -0,0 +1,16 @@ +; +; Supported features of the 'octeontx2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] +Event queue priority based scheduling = Y +Event device distributed scheduling = Y +Event device non sequential mode = Y +Event queue all types = Y +Runtime event queue/port linking = Y +Multi queue linking per port = Y + +[Adapter Features] +Eth Rx/Tx adapter on internal port = Y +Timer adapter support in H/W = Y diff --git a/doc/guides/eventdevs/overview_adptr_feature_table.txt b/doc/guides/eventdevs/overview_adptr_feature_table.txt index 9aac52069..6ebdc098f 100644 --- a/doc/guides/eventdevs/overview_adptr_feature_table.txt +++ b/doc/guides/eventdevs/overview_adptr_feature_table.txt @@ -70,12 +70,12 @@ x x 2 ========================================== = = = = = = = - Eth Rx/Tx adapter on internal port Y + Eth Rx/Tx adapter on internal port Y Y Multiple event queues per ethdev Y Override flow ID Crypto adapter new event enqueue Crypto adapter forwarded event enqueue Crypto queue pair mapping to event queue Crypto adapter session data store/retrieve - Timer adapter support in H/W Y + Timer adapter support in H/W Y Y ========================================== = = = = = = = diff --git a/doc/guides/eventdevs/overview_feature_table.txt b/doc/guides/eventdevs/overview_feature_table.txt index c4d3bd6d4..e48893378 100644 --- a/doc/guides/eventdevs/overview_feature_table.txt +++ b/doc/guides/eventdevs/overview_feature_table.txt @@ -70,13 +70,13 @@ x x 2 ===================================== = = = = = = = - Event queue priority based scheduling Y + Event queue priority based scheduling Y Y Event priority based scheduling - Event device distributed scheduling Y - Event device non sequential mode Y - Event queue all types Y + Event device distributed scheduling Y Y + Event device non sequential mode Y Y + Event queue all types Y Y Burst mode enqueue/dequeue Event port implicit release disable - Runtime event queue/port linking Y - Multi queue linking per port Y + Runtime event queue/port linking Y Y + Multi queue linking per port Y Y ===================================== = = = = = = = -- 2.17.1
21/11/2019 08:44, Sunil Kumar Kori: > Patch adds skeleton for feature matrices for event dev > and Rx/Tx adapters. [...] > +.. table:: Features availability in eventdev drivers > + > + ===================================== = = = = = = = > + Feature d d d o o o s > + p p s c c p w > + a a w t t d > + a a e e l > + 2 o o > + n n > + t t > + x x > + 2 > + ===================================== = = = = = = = > + Event queue priority based scheduling > + Event priority based scheduling > + Event device distributed scheduling > + Event device non sequential mode > + Event queue all types > + Burst mode enqueue/dequeue > + Event port implicit release disable > + Runtime event queue/port linking > + Multi queue linking per port > + ===================================== = = = = = = = This table should be automatically generated from conf.py. (Ideally we should have a custom sphinx class for it) Please rework and do not commit such .txt file, thanks
Patch adds skeleton for feature matrices for event dev and Rx/Tx adapters. Along with, .ini files are added for all supported PMDs. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated .gitignore | 2 ++ doc/guides/conf.py | 12 ++++++++- doc/guides/eventdevs/features/default.ini | 30 +++++++++++++++++++++ doc/guides/eventdevs/features/dpaa.ini | 8 ++++++ doc/guides/eventdevs/features/dpaa2.ini | 8 ++++++ doc/guides/eventdevs/features/dsw.ini | 8 ++++++ doc/guides/eventdevs/features/octeontx.ini | 8 ++++++ doc/guides/eventdevs/features/octeontx2.ini | 8 ++++++ doc/guides/eventdevs/features/opdl.ini | 8 ++++++ doc/guides/eventdevs/features/sw.ini | 8 ++++++ doc/guides/eventdevs/index.rst | 1 + doc/guides/eventdevs/overview.rst | 19 +++++++++++++ 12 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 doc/guides/eventdevs/features/default.ini create mode 100644 doc/guides/eventdevs/features/dpaa.ini create mode 100644 doc/guides/eventdevs/features/dpaa2.ini create mode 100644 doc/guides/eventdevs/features/dsw.ini create mode 100644 doc/guides/eventdevs/features/octeontx.ini create mode 100644 doc/guides/eventdevs/features/octeontx2.ini create mode 100644 doc/guides/eventdevs/features/opdl.ini create mode 100644 doc/guides/eventdevs/features/sw.ini create mode 100644 doc/guides/eventdevs/overview.rst diff --git a/.gitignore b/.gitignore index 9741ba076..e0299a2e1 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,8 @@ doc/guides/cryptodevs/overview_auth_table.txt doc/guides/cryptodevs/overview_aead_table.txt doc/guides/cryptodevs/overview_asym_table.txt doc/guides/compressdevs/overview_feature_table.txt +doc/guides/eventdevs/overview_feature_table.txt +doc/guides/eventdevs/overview_adptr_feature_table.txt # ignore generated ctags/cscope files cscope.out.po diff --git a/doc/guides/conf.py b/doc/guides/conf.py index e2b52e2df..ba2833d03 100644 --- a/doc/guides/conf.py +++ b/doc/guides/conf.py @@ -47,7 +47,7 @@ master_doc = 'index' # Maximum feature description string length -feature_str_len = 25 +feature_str_len = 45 # Figures, tables and code-blocks automatically numbered if they have caption numfig = True @@ -401,6 +401,16 @@ def setup(app): 'Features', 'Features availability in compression drivers', 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_feature_table.txt' + generate_overview_table(table_file, 1, + 'Features', + 'Features availability in eventdev drivers', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_adptr_feature_table.txt' + generate_overview_table(table_file, 2, + 'Adapter Features', + 'Features availability for adapters', + 'Feature') if LooseVersion(sphinx_version) < LooseVersion('1.3.1'): print('Upgrade sphinx to version >= 1.3.1 for ' diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini new file mode 100644 index 000000000..d007d7a69 --- /dev/null +++ b/doc/guides/eventdevs/features/default.ini @@ -0,0 +1,30 @@ +; +; Features of a default eventdev driver. +; +; This file defines the features that are valid for inclusion in +; the other driver files and also the order that they appear in +; the features table in the documentation. +; +[Features] +Event queue priority based scheduling = +Event priority based scheduling = +Event device distributed scheduling = +Event device non sequential mode = +Event queue all types = +Burst mode enqueue/dequeue = +Event port implicit release disable = +Runtime event queue/port linking = +Multi queue linking per port = + +; +; Features of a default adapter. +; +[Adapter Features] +Eth Rx/Tx adapter on internal port = +Multiple event queues per ethdev = +Override flow ID = +Crypto adapter new event enqueue = +Crypto adapter forwarded event enqueue = +Crypto queue pair mapping to event queue = +Crypto adapter session data store/retrieve = +Timer adapter support in H/W = diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini new file mode 100644 index 000000000..3cf172f40 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'dpaa' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini new file mode 100644 index 000000000..822a82ef3 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa2.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'dpaa2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini new file mode 100644 index 000000000..230737045 --- /dev/null +++ b/doc/guides/eventdevs/features/dsw.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'distributed software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini new file mode 100644 index 000000000..d1b1fe6d6 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'octeontx' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini new file mode 100644 index 000000000..96f1af0dc --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'octeontx2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini new file mode 100644 index 000000000..020808fce --- /dev/null +++ b/doc/guides/eventdevs/features/opdl.ini @@ -0,0 +1,8 @@ +; +; Supported features of 'Ordered Packet Distribution Library' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini new file mode 100644 index 000000000..a5789f56d --- /dev/null +++ b/doc/guides/eventdevs/features/sw.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index 570905b81..540ac762c 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -11,6 +11,7 @@ application trough the eventdev API. :maxdepth: 2 :numbered: + overview dpaa dpaa2 dsw diff --git a/doc/guides/eventdevs/overview.rst b/doc/guides/eventdevs/overview.rst new file mode 100644 index 000000000..6825b9007 --- /dev/null +++ b/doc/guides/eventdevs/overview.rst @@ -0,0 +1,19 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(C) 2019 Marvell International Ltd. + +Event Device Supported Functionality Matrices +============================================= + +Event Device Supported Feature Flags +------------------------------------ + +.. _table_eventdev_pmd_features: + +.. include:: overview_feature_table.txt + +Adapter Supported Feature Flags +------------------------------- + +.. _table_adapter_features: + +.. include:: overview_adptr_feature_table.txt -- 2.17.1
Patch updates eventdev and adapters feature matrices for octeontx2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v3: - Removed .txt files to generate tables. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx2.ini | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini index 96f1af0dc..4c50b2125 100644 --- a/doc/guides/eventdevs/features/octeontx2.ini +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -4,5 +4,14 @@ ; Refer to default.ini for the full list of available PMD features. ; [Features] +Event queue priority based scheduling = Y +Event device distributed scheduling = Y +Event device non sequential mode = Y +Event queue all types = Y +Runtime event queue/port linking = Y +Multi queue linking per port = Y [Adapter Features] +Eth Rx/Tx adapter on internal port = Y +Multiple event queues per ethdev = Y +Timer adapter support in H/W = Y -- 2.17.1
Patch updates eventdev and adapters feature matrices for octeontx platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v3: - Removed .txt files to generate tables. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx.ini | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini index d1b1fe6d6..a116e7998 100644 --- a/doc/guides/eventdevs/features/octeontx.ini +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -4,5 +4,13 @@ ; Refer to default.ini for the full list of available PMD features. ; [Features] +Event queue priority based scheduling = Y +Event device distributed scheduling = Y +Event device non sequential mode = Y +Event queue all types = Y +Runtime event queue/port linking = Y +Multi queue linking per port = Y [Adapter Features] +Eth Rx/Tx adapter on internal port = Y +Timer adapter support in H/W = Y -- 2.17.1
Patch adds skeleton for feature matrices for event dev and Rx/Tx adapters. Along with, .ini files are added for all supported PMDs. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated .gitignore | 2 ++ doc/guides/conf.py | 12 ++++++++- doc/guides/eventdevs/features/default.ini | 30 +++++++++++++++++++++ doc/guides/eventdevs/features/dpaa.ini | 8 ++++++ doc/guides/eventdevs/features/dpaa2.ini | 8 ++++++ doc/guides/eventdevs/features/dsw.ini | 8 ++++++ doc/guides/eventdevs/features/octeontx.ini | 8 ++++++ doc/guides/eventdevs/features/octeontx2.ini | 8 ++++++ doc/guides/eventdevs/features/opdl.ini | 8 ++++++ doc/guides/eventdevs/features/sw.ini | 8 ++++++ doc/guides/eventdevs/index.rst | 1 + doc/guides/eventdevs/overview.rst | 19 +++++++++++++ 12 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 doc/guides/eventdevs/features/default.ini create mode 100644 doc/guides/eventdevs/features/dpaa.ini create mode 100644 doc/guides/eventdevs/features/dpaa2.ini create mode 100644 doc/guides/eventdevs/features/dsw.ini create mode 100644 doc/guides/eventdevs/features/octeontx.ini create mode 100644 doc/guides/eventdevs/features/octeontx2.ini create mode 100644 doc/guides/eventdevs/features/opdl.ini create mode 100644 doc/guides/eventdevs/features/sw.ini create mode 100644 doc/guides/eventdevs/overview.rst diff --git a/.gitignore b/.gitignore index 2acb45975..5f20b8716 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ doc/guides/cryptodevs/overview_aead_table.txt doc/guides/cryptodevs/overview_asym_table.txt doc/guides/compressdevs/overview_feature_table.txt doc/guides/vdpadevs/overview_feature_table.txt +doc/guides/eventdevs/overview_feature_table.txt +doc/guides/eventdevs/overview_adptr_feature_table.txt # ignore generated ctags/cscope files cscope.out.po diff --git a/doc/guides/conf.py b/doc/guides/conf.py index c368fa51d..a49402b64 100644 --- a/doc/guides/conf.py +++ b/doc/guides/conf.py @@ -47,7 +47,7 @@ master_doc = 'index' # Maximum feature description string length -feature_str_len = 25 +feature_str_len = 45 # Figures, tables and code-blocks automatically numbered if they have caption numfig = True @@ -406,6 +406,16 @@ def setup(app): 'Features', 'Features availability in vDPA drivers', 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_feature_table.txt' + generate_overview_table(table_file, 1, + 'Features', + 'Features availability in eventdev drivers', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_adptr_feature_table.txt' + generate_overview_table(table_file, 2, + 'Adapter Features', + 'Features availability for adapters', + 'Feature') if LooseVersion(sphinx_version) < LooseVersion('1.3.1'): print('Upgrade sphinx to version >= 1.3.1 for ' diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini new file mode 100644 index 000000000..d007d7a69 --- /dev/null +++ b/doc/guides/eventdevs/features/default.ini @@ -0,0 +1,30 @@ +; +; Features of a default eventdev driver. +; +; This file defines the features that are valid for inclusion in +; the other driver files and also the order that they appear in +; the features table in the documentation. +; +[Features] +Event queue priority based scheduling = +Event priority based scheduling = +Event device distributed scheduling = +Event device non sequential mode = +Event queue all types = +Burst mode enqueue/dequeue = +Event port implicit release disable = +Runtime event queue/port linking = +Multi queue linking per port = + +; +; Features of a default adapter. +; +[Adapter Features] +Eth Rx/Tx adapter on internal port = +Multiple event queues per ethdev = +Override flow ID = +Crypto adapter new event enqueue = +Crypto adapter forwarded event enqueue = +Crypto queue pair mapping to event queue = +Crypto adapter session data store/retrieve = +Timer adapter support in H/W = diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini new file mode 100644 index 000000000..3cf172f40 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'dpaa' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini new file mode 100644 index 000000000..822a82ef3 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa2.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'dpaa2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini new file mode 100644 index 000000000..230737045 --- /dev/null +++ b/doc/guides/eventdevs/features/dsw.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'distributed software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini new file mode 100644 index 000000000..d1b1fe6d6 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'octeontx' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini new file mode 100644 index 000000000..96f1af0dc --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'octeontx2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini new file mode 100644 index 000000000..020808fce --- /dev/null +++ b/doc/guides/eventdevs/features/opdl.ini @@ -0,0 +1,8 @@ +; +; Supported features of 'Ordered Packet Distribution Library' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini new file mode 100644 index 000000000..a5789f56d --- /dev/null +++ b/doc/guides/eventdevs/features/sw.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index 570905b81..540ac762c 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -11,6 +11,7 @@ application trough the eventdev API. :maxdepth: 2 :numbered: + overview dpaa dpaa2 dsw diff --git a/doc/guides/eventdevs/overview.rst b/doc/guides/eventdevs/overview.rst new file mode 100644 index 000000000..6825b9007 --- /dev/null +++ b/doc/guides/eventdevs/overview.rst @@ -0,0 +1,19 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(C) 2019 Marvell International Ltd. + +Event Device Supported Functionality Matrices +============================================= + +Event Device Supported Feature Flags +------------------------------------ + +.. _table_eventdev_pmd_features: + +.. include:: overview_feature_table.txt + +Adapter Supported Feature Flags +------------------------------- + +.. _table_adapter_features: + +.. include:: overview_adptr_feature_table.txt -- 2.17.1
Patch updates eventdev and adapters feature matrices for octeontx2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx2.ini | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini index 96f1af0dc..4c50b2125 100644 --- a/doc/guides/eventdevs/features/octeontx2.ini +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -4,5 +4,14 @@ ; Refer to default.ini for the full list of available PMD features. ; [Features] +Event queue priority based scheduling = Y +Event device distributed scheduling = Y +Event device non sequential mode = Y +Event queue all types = Y +Runtime event queue/port linking = Y +Multi queue linking per port = Y [Adapter Features] +Eth Rx/Tx adapter on internal port = Y +Multiple event queues per ethdev = Y +Timer adapter support in H/W = Y -- 2.17.1
Patch updates eventdev and adapters feature matrices for octeontx platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx.ini | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini index d1b1fe6d6..a116e7998 100644 --- a/doc/guides/eventdevs/features/octeontx.ini +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -4,5 +4,13 @@ ; Refer to default.ini for the full list of available PMD features. ; [Features] +Event queue priority based scheduling = Y +Event device distributed scheduling = Y +Event device non sequential mode = Y +Event queue all types = Y +Runtime event queue/port linking = Y +Multi queue linking per port = Y [Adapter Features] +Eth Rx/Tx adapter on internal port = Y +Timer adapter support in H/W = Y -- 2.17.1
From: Sunil Kumar Kori <skori@marvell.com> Patch adds skeleton for feature matrices for event dev and Rx/Tx adapters. Along with, .ini files are added for all supported PMDs. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated .gitignore | 2 ++ doc/guides/conf.py | 12 ++++++++- doc/guides/eventdevs/features/cnxk.ini | 8 ++++++ doc/guides/eventdevs/features/default.ini | 30 +++++++++++++++++++++ doc/guides/eventdevs/features/dpaa.ini | 8 ++++++ doc/guides/eventdevs/features/dpaa2.ini | 8 ++++++ doc/guides/eventdevs/features/dsw.ini | 8 ++++++ doc/guides/eventdevs/features/octeontx.ini | 8 ++++++ doc/guides/eventdevs/features/octeontx2.ini | 8 ++++++ doc/guides/eventdevs/features/opdl.ini | 8 ++++++ doc/guides/eventdevs/features/sw.ini | 8 ++++++ doc/guides/eventdevs/index.rst | 1 + doc/guides/eventdevs/overview.rst | 19 +++++++++++++ 13 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 doc/guides/eventdevs/features/cnxk.ini create mode 100644 doc/guides/eventdevs/features/default.ini create mode 100644 doc/guides/eventdevs/features/dpaa.ini create mode 100644 doc/guides/eventdevs/features/dpaa2.ini create mode 100644 doc/guides/eventdevs/features/dsw.ini create mode 100644 doc/guides/eventdevs/features/octeontx.ini create mode 100644 doc/guides/eventdevs/features/octeontx2.ini create mode 100644 doc/guides/eventdevs/features/opdl.ini create mode 100644 doc/guides/eventdevs/features/sw.ini create mode 100644 doc/guides/eventdevs/overview.rst diff --git a/.gitignore b/.gitignore index b19c0717e6..b3fc783945 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,8 @@ doc/guides/compressdevs/overview_feature_table.txt doc/guides/regexdevs/overview_feature_table.txt doc/guides/vdpadevs/overview_feature_table.txt doc/guides/bbdevs/overview_feature_table.txt +doc/guides/eventdevs/overview_feature_table.txt +doc/guides/eventdevs/overview_adptr_feature_table.txt # ignore generated ctags/cscope files cscope.out.po diff --git a/doc/guides/conf.py b/doc/guides/conf.py index 67d2dd62c7..9d8e20e5fc 100644 --- a/doc/guides/conf.py +++ b/doc/guides/conf.py @@ -41,7 +41,7 @@ master_doc = 'index' # Maximum feature description string length -feature_str_len = 30 +feature_str_len = 45 # Figures, tables and code-blocks automatically numbered if they have caption numfig = True @@ -388,6 +388,16 @@ def setup(app): 'Features', 'Features availability in bbdev drivers', 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_feature_table.txt' + generate_overview_table(table_file, 1, + 'Features', + 'Features availability in eventdev drivers', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_adptr_feature_table.txt' + generate_overview_table(table_file, 2, + 'Adapter Features', + 'Features availability for adapters', + 'Feature') if LooseVersion(sphinx_version) < LooseVersion('1.3.1'): print('Upgrade sphinx to version >= 1.3.1 for ' diff --git a/doc/guides/eventdevs/features/cnxk.ini b/doc/guides/eventdevs/features/cnxk.ini new file mode 100644 index 0000000000..a461966d69 --- /dev/null +++ b/doc/guides/eventdevs/features/cnxk.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'cnxk' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini new file mode 100644 index 0000000000..d007d7a69e --- /dev/null +++ b/doc/guides/eventdevs/features/default.ini @@ -0,0 +1,30 @@ +; +; Features of a default eventdev driver. +; +; This file defines the features that are valid for inclusion in +; the other driver files and also the order that they appear in +; the features table in the documentation. +; +[Features] +Event queue priority based scheduling = +Event priority based scheduling = +Event device distributed scheduling = +Event device non sequential mode = +Event queue all types = +Burst mode enqueue/dequeue = +Event port implicit release disable = +Runtime event queue/port linking = +Multi queue linking per port = + +; +; Features of a default adapter. +; +[Adapter Features] +Eth Rx/Tx adapter on internal port = +Multiple event queues per ethdev = +Override flow ID = +Crypto adapter new event enqueue = +Crypto adapter forwarded event enqueue = +Crypto queue pair mapping to event queue = +Crypto adapter session data store/retrieve = +Timer adapter support in H/W = diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini new file mode 100644 index 0000000000..3cf172f408 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'dpaa' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini new file mode 100644 index 0000000000..822a82ef3e --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa2.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'dpaa2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini new file mode 100644 index 0000000000..230737045b --- /dev/null +++ b/doc/guides/eventdevs/features/dsw.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'distributed software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini new file mode 100644 index 0000000000..d1b1fe6d62 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'octeontx' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini new file mode 100644 index 0000000000..96f1af0dca --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'octeontx2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini new file mode 100644 index 0000000000..020808fced --- /dev/null +++ b/doc/guides/eventdevs/features/opdl.ini @@ -0,0 +1,8 @@ +; +; Supported features of 'Ordered Packet Distribution Library' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini new file mode 100644 index 0000000000..a5789f56d4 --- /dev/null +++ b/doc/guides/eventdevs/features/sw.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] + +[Adapter Features] diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index 2143025390..b11657f7ae 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -11,6 +11,7 @@ application through the eventdev API. :maxdepth: 2 :numbered: + overview cnxk dlb2 dpaa diff --git a/doc/guides/eventdevs/overview.rst b/doc/guides/eventdevs/overview.rst new file mode 100644 index 0000000000..5d34d2c57b --- /dev/null +++ b/doc/guides/eventdevs/overview.rst @@ -0,0 +1,19 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(C) 2021 Marvell. + +Event Device Supported Functionality Matrices +============================================= + +Event Device Supported Feature Flags +------------------------------------ + +.. _table_eventdev_pmd_features: + +.. include:: overview_feature_table.txt + +Adapter Supported Feature Flags +------------------------------- + +.. _table_adapter_features: + +.. include:: overview_adptr_feature_table.txt -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for octeontx2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx2.ini | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini index 96f1af0dca..4c50b2125f 100644 --- a/doc/guides/eventdevs/features/octeontx2.ini +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -4,5 +4,14 @@ ; Refer to default.ini for the full list of available PMD features. ; [Features] +Event queue priority based scheduling = Y +Event device distributed scheduling = Y +Event device non sequential mode = Y +Event queue all types = Y +Runtime event queue/port linking = Y +Multi queue linking per port = Y [Adapter Features] +Eth Rx/Tx adapter on internal port = Y +Multiple event queues per ethdev = Y +Timer adapter support in H/W = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for octeontx platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx.ini | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini index d1b1fe6d62..a116e79980 100644 --- a/doc/guides/eventdevs/features/octeontx.ini +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -4,5 +4,13 @@ ; Refer to default.ini for the full list of available PMD features. ; [Features] +Event queue priority based scheduling = Y +Event device distributed scheduling = Y +Event device non sequential mode = Y +Event queue all types = Y +Runtime event queue/port linking = Y +Multi queue linking per port = Y [Adapter Features] +Eth Rx/Tx adapter on internal port = Y +Timer adapter support in H/W = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for cnxk platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/cnxk.ini | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/guides/eventdevs/features/cnxk.ini b/doc/guides/eventdevs/features/cnxk.ini index a461966d69..76ade8fce8 100644 --- a/doc/guides/eventdevs/features/cnxk.ini +++ b/doc/guides/eventdevs/features/cnxk.ini @@ -4,5 +4,14 @@ ; Refer to default.ini for the full list of available PMD features. ; [Features] +Event queue priority based scheduling = Y +Event device distributed scheduling = Y +Event device non sequential mode = Y +Event queue all types = Y +Runtime event queue/port linking = Y +Multi queue linking per port = Y [Adapter Features] +Eth Rx/Tx adapter on internal port = Y +Multiple event queues per ethdev = Y +Timer adapter support in H/W = Y -- 2.25.1
On Fri, Oct 22, 2021 at 1:18 PM <skori@marvell.com> wrote: > > From: Sunil Kumar Kori <skori@marvell.com> > > Patch adds skeleton for feature matrices for event dev > and Rx/Tx adapters. > > Along with, .ini files are added for all supported PMDs. > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> + Tree maintainers and eventdev adapter maintainers 1) Please rebase to dpdk-next-eventdev 2) Please update devtools/check-doc-vs-code.sh You can use search _CAP_ and != CAP_REQUIRES_ to detect the capability change or so. 3) Update the .ini for all the eventdev drivers, not just Marvell ones. > > # Maximum feature description string length > -feature_str_len = 30 > +feature_str_len = 45 I hope this OK. I understand that without this it gives errors and feature-length is not enough > diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini > new file mode 100644 > index 0000000000..d007d7a69e > --- /dev/null > +++ b/doc/guides/eventdevs/features/default.ini > @@ -0,0 +1,30 @@ > +; > +; Features of a default eventdev driver. > +; > +; This file defines the features that are valid for inclusion in > +; the other driver files and also the order that they appear in > +; the features table in the documentation. > +; > +[Features] > +Event queue priority based scheduling = > +Event priority based scheduling = > +Event device distributed scheduling = > +Event device non sequential mode = > +Event queue all types = > +Burst mode enqueue/dequeue = > +Event port implicit release disable = > +Runtime event queue/port linking = > +Multi queue linking per port = 1) Please sync the doc order with flag definition order in header file[1] 2) You can remove RTE_EVENT_DEV_CAP_REQUIRES_MAINT from the list(*CAP_REQUIRES*) as this is limitation. [1] RTE_EVENT_DEV_CAP_QUEUE_QOS RTE_EVENT_DEV_CAP_EVENT_QOS RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES RTE_EVENT_DEV_CAP_BURST_MODE RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE RTE_EVENT_DEV_CAP_NONSEQ_MODE RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT RTE_EVENT_DEV_CAP_CARRY_FLOW_ID > + > +; > +; Features of a default adapter. > +; > +[Adapter Features] Please make this as [Eth Rx adapter Features] > +Eth Rx/Tx adapter on internal port = You can remove Eth Rx/Tx adapter as new subject has [Eth Rx adapter] > +Multiple event queues per ethdev = > +Override flow ID = Missing RTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR Add new section for Tx adapter and add RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT RTE_EVENT_ETH_TX_ADAPTER_CAP_EVENT_VECTOR Add new section for Crypto adapter > +Crypto adapter new event enqueue = > +Crypto adapter forwarded event enqueue = > +Crypto queue pair mapping to event queue = > +Crypto adapter session data store/retrieve = Add new section for timer adapter > +Timer adapter support in H/W = Missing RTE_EVENT_TIMER_ADAPTER_CAP_PERIODIC
09/11/2021 11:11, Jerin Jacob:
> On Fri, Oct 22, 2021 at 1:18 PM <skori@marvell.com> wrote:
> > # Maximum feature description string length
> > -feature_str_len = 30
> > +feature_str_len = 45
>
> I hope this OK. I understand that without this it gives errors and
> feature-length is not enough
I don't think this is OK, because it would enlarge the size of all tables.
Please confirm (especially for NICs table).
Is there a way to make the feature names smaller?
On 2021-11-09 11:11, Jerin Jacob wrote: > On Fri, Oct 22, 2021 at 1:18 PM <skori@marvell.com> wrote: >> >> From: Sunil Kumar Kori <skori@marvell.com> >> >> Patch adds skeleton for feature matrices for event dev >> and Rx/Tx adapters. >> >> Along with, .ini files are added for all supported PMDs. >> >> Signed-off-by: Sunil Kumar Kori <skori@marvell.com> > > > + Tree maintainers and eventdev adapter maintainers > > 1) Please rebase to dpdk-next-eventdev > 2) Please update devtools/check-doc-vs-code.sh > You can use search _CAP_ and != CAP_REQUIRES_ to detect the capability > change or so. > 3) Update the .ini for all the eventdev drivers, not just Marvell ones. > >> >> # Maximum feature description string length >> -feature_str_len = 30 >> +feature_str_len = 45 > > I hope this OK. I understand that without this it gives errors and > feature-length is not enough > >> diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini >> new file mode 100644 >> index 0000000000..d007d7a69e >> --- /dev/null >> +++ b/doc/guides/eventdevs/features/default.ini >> @@ -0,0 +1,30 @@ >> +; >> +; Features of a default eventdev driver. >> +; >> +; This file defines the features that are valid for inclusion in >> +; the other driver files and also the order that they appear in >> +; the features table in the documentation. >> +; >> +[Features] >> +Event queue priority based scheduling = >> +Event priority based scheduling = >> +Event device distributed scheduling = >> +Event device non sequential mode = >> +Event queue all types = >> +Burst mode enqueue/dequeue = >> +Event port implicit release disable = >> +Runtime event queue/port linking = >> +Multi queue linking per port = > > 1) Please sync the doc order with flag definition order in header file[1] > 2) You can remove RTE_EVENT_DEV_CAP_REQUIRES_MAINT from the > list(*CAP_REQUIRES*) as this > is limitation. > > Maybe we should negate RTE_EVENT_DEV_CAP_REQUIRES_MAINT to make it fit better with the other capabilities? To be more in line with how the API has been adapted to cope with various eventdev hardware limitations (e.g., RTE_EVENT_DEV_CAP_CARRY_FLOW_ID). RTE_EVENT_DEV_CAP_MAINTENANCE_FREE All event devices/drivers would set this except DSW. If this make sense and it's not too late to tweak the API, I can create a patch. > [1] > RTE_EVENT_DEV_CAP_QUEUE_QOS > RTE_EVENT_DEV_CAP_EVENT_QOS > RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED > RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES > RTE_EVENT_DEV_CAP_BURST_MODE > RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE > RTE_EVENT_DEV_CAP_NONSEQ_MODE > RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK > RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT > RTE_EVENT_DEV_CAP_CARRY_FLOW_ID > > > >> + >> +; >> +; Features of a default adapter. >> +; >> +[Adapter Features] > > Please make this as [Eth Rx adapter Features] > >> +Eth Rx/Tx adapter on internal port = > You can remove Eth Rx/Tx adapter as new subject has [Eth Rx adapter] > >> +Multiple event queues per ethdev = >> +Override flow ID = > > Missing RTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR > > > Add new section for Tx adapter > and add > RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT > RTE_EVENT_ETH_TX_ADAPTER_CAP_EVENT_VECTOR > > > Add new section for Crypto adapter > >> +Crypto adapter new event enqueue = >> +Crypto adapter forwarded event enqueue = >> +Crypto queue pair mapping to event queue = >> +Crypto adapter session data store/retrieve = > > > Add new section for timer adapter > >> +Timer adapter support in H/W = > > Missing RTE_EVENT_TIMER_ADAPTER_CAP_PERIODIC >
> > 1) Please sync the doc order with flag definition order in header file[1] > > 2) You can remove RTE_EVENT_DEV_CAP_REQUIRES_MAINT from the > > list(*CAP_REQUIRES*) as this > > is limitation. > > > > > > Maybe we should negate RTE_EVENT_DEV_CAP_REQUIRES_MAINT to make it > fit > better with the other capabilities? To be more in line with how the API > has been adapted to cope with various eventdev hardware limitations > (e.g., RTE_EVENT_DEV_CAP_CARRY_FLOW_ID). > > RTE_EVENT_DEV_CAP_MAINTENANCE_FREE > > All event devices/drivers would set this except DSW. > > If this make sense and it's not too late to tweak the API, I can create > a patch. Makes sense. Just add those cap in !dsw drivers. Please send it now, I will merge it soon. > > > [1] > > RTE_EVENT_DEV_CAP_QUEUE_QOS > > RTE_EVENT_DEV_CAP_EVENT_QOS > > RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED > > RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES > > RTE_EVENT_DEV_CAP_BURST_MODE > > RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE > > RTE_EVENT_DEV_CAP_NONSEQ_MODE > > RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK > > RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT > > RTE_EVENT_DEV_CAP_CARRY_FLOW_ID > > > > > > > >> + > >> +; > >> +; Features of a default adapter. > >> +; > >> +[Adapter Features] > > > > Please make this as [Eth Rx adapter Features] > > > >> +Eth Rx/Tx adapter on internal port = > > You can remove Eth Rx/Tx adapter as new subject has [Eth Rx adapter] > > > >> +Multiple event queues per ethdev = > >> +Override flow ID = > > > > Missing RTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR > > > > > > Add new section for Tx adapter > > and add > > RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT > > RTE_EVENT_ETH_TX_ADAPTER_CAP_EVENT_VECTOR > > > > > > Add new section for Crypto adapter > > > >> +Crypto adapter new event enqueue = > >> +Crypto adapter forwarded event enqueue = > >> +Crypto queue pair mapping to event queue = > >> +Crypto adapter session data store/retrieve = > > > > > > Add new section for timer adapter > > > >> +Timer adapter support in H/W = > > > > Missing RTE_EVENT_TIMER_ADAPTER_CAP_PERIODIC > >
Replace RTE_EVENT_DEV_CAP_REQUIRES_MAINT, which signaled the need for the application to call rte_event_maintain(), with RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, which does the opposite (i.e., signifies that the event device does not require maintenance). This approach is more in line with how other eventdev hardware and/or software limitations are handled in the Eventdev API. Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> --- doc/guides/eventdevs/dsw.rst | 4 ++-- drivers/event/cnxk/cnxk_eventdev.c | 3 ++- drivers/event/dlb2/dlb2.c | 3 ++- drivers/event/dpaa/dpaa_eventdev.c | 3 ++- drivers/event/dpaa2/dpaa2_eventdev.c | 3 ++- drivers/event/dsw/dsw_evdev.c | 3 +-- drivers/event/octeontx/ssovf_evdev.c | 3 ++- drivers/event/octeontx2/otx2_evdev.c | 3 ++- drivers/event/opdl/opdl_evdev.c | 1 + drivers/event/skeleton/skeleton_eventdev.c | 3 ++- drivers/event/sw/sw_evdev.c | 3 ++- lib/eventdev/rte_eventdev.h | 19 ++++++++++--------- 12 files changed, 30 insertions(+), 21 deletions(-) diff --git a/doc/guides/eventdevs/dsw.rst b/doc/guides/eventdevs/dsw.rst index 18f7e9588f..5c6b51f65f 100644 --- a/doc/guides/eventdevs/dsw.rst +++ b/doc/guides/eventdevs/dsw.rst @@ -44,8 +44,8 @@ Port Maintenance ~~~~~~~~~~~~~~~~ The distributed software eventdev uses an internal signaling scheme -between the ports to achieve load balancing. Therefore, it sets the -``RTE_EVENT_DEV_CAP_REQUIRES_MAINT`` flag. +between the ports to achieve load balancing. Therefore, it does not +set the ``RTE_EVENT_DEV_CAP_MAINTENANCE_FREE`` flag. During periods when the application thread using a particular port is neither attempting to enqueue nor to dequeue events, it must diff --git a/drivers/event/cnxk/cnxk_eventdev.c b/drivers/event/cnxk/cnxk_eventdev.c index 50d5c351bc..f7a5026250 100644 --- a/drivers/event/cnxk/cnxk_eventdev.c +++ b/drivers/event/cnxk/cnxk_eventdev.c @@ -119,7 +119,8 @@ cnxk_sso_info_get(struct cnxk_sso_evdev *dev, RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } int diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c index 0dbe85762c..16e9764dbf 100644 --- a/drivers/event/dlb2/dlb2.c +++ b/drivers/event/dlb2/dlb2.c @@ -66,7 +66,8 @@ static struct rte_event_dev_info evdev_dlb2_default_info = { RTE_EVENT_DEV_CAP_BURST_MODE | RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED | RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE | - RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES), + RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE), }; struct process_local_port_data diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c index eec4bc62b7..ff6cc0be18 100644 --- a/drivers/event/dpaa/dpaa_eventdev.c +++ b/drivers/event/dpaa/dpaa_eventdev.c @@ -356,7 +356,8 @@ dpaa_event_dev_info_get(struct rte_eventdev *dev, RTE_EVENT_DEV_CAP_BURST_MODE | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } static int diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index 710156ad14..4d94c315d2 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.c +++ b/drivers/event/dpaa2/dpaa2_eventdev.c @@ -408,7 +408,8 @@ dpaa2_eventdev_info_get(struct rte_eventdev *dev, RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c index 5ff8fcc6a9..ffabf0d23d 100644 --- a/drivers/event/dsw/dsw_evdev.c +++ b/drivers/event/dsw/dsw_evdev.c @@ -222,8 +222,7 @@ dsw_info_get(struct rte_eventdev *dev __rte_unused, RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED| RTE_EVENT_DEV_CAP_NONSEQ_MODE| RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT| - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID| - RTE_EVENT_DEV_CAP_REQUIRES_MAINT + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID }; } diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c index 366b6d356b..9e14e35d10 100644 --- a/drivers/event/octeontx/ssovf_evdev.c +++ b/drivers/event/octeontx/ssovf_evdev.c @@ -155,7 +155,8 @@ ssovf_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *dev_info) RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } diff --git a/drivers/event/octeontx2/otx2_evdev.c b/drivers/event/octeontx2/otx2_evdev.c index f26bed334f..ccf28b678b 100644 --- a/drivers/event/octeontx2/otx2_evdev.c +++ b/drivers/event/octeontx2/otx2_evdev.c @@ -505,7 +505,8 @@ otx2_sso_info_get(struct rte_eventdev *event_dev, RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } static void diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c index 5007e9a7bf..787ee4713d 100644 --- a/drivers/event/opdl/opdl_evdev.c +++ b/drivers/event/opdl/opdl_evdev.c @@ -376,6 +376,7 @@ opdl_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *info) .max_num_events = OPDL_INFLIGHT_EVENTS_TOTAL, .event_dev_cap = RTE_EVENT_DEV_CAP_BURST_MODE | RTE_EVENT_DEV_CAP_CARRY_FLOW_ID, + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, }; *info = evdev_opdl_info; diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c index af0efb3302..bf3b01ebc8 100644 --- a/drivers/event/skeleton/skeleton_eventdev.c +++ b/drivers/event/skeleton/skeleton_eventdev.c @@ -102,7 +102,8 @@ skeleton_eventdev_info_get(struct rte_eventdev *dev, dev_info->event_dev_cap = RTE_EVENT_DEV_CAP_QUEUE_QOS | RTE_EVENT_DEV_CAP_BURST_MODE | RTE_EVENT_DEV_CAP_EVENT_QOS | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } static int diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c index 070a4802e9..808f59d1e5 100644 --- a/drivers/event/sw/sw_evdev.c +++ b/drivers/event/sw/sw_evdev.c @@ -609,7 +609,8 @@ sw_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *info) RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID), + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE), }; *info = evdev_sw_info; diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h index e026486ca5..4119f51fa0 100644 --- a/lib/eventdev/rte_eventdev.h +++ b/lib/eventdev/rte_eventdev.h @@ -299,13 +299,14 @@ struct rte_event; * the content of this field is implementation dependent. */ -#define RTE_EVENT_DEV_CAP_REQUIRES_MAINT (1ULL << 10) -/**< Event device requires calls to rte_event_maintain() during - * periods when neither rte_event_dequeue_burst() nor - * rte_event_enqueue_burst() are called on a port. This will allow the - * event device to perform internal processing, such as flushing - * buffered events, return credits to a global pool, or process - * signaling related to load balancing. +#define RTE_EVENT_DEV_CAP_MAINTENANCE_FREE (1ULL << 10) +/**< Event device *does not* require calls to rte_event_maintain(). + * An event device that does not set this flag requires calls to + * rte_event_maintain() during periods when neither + * rte_event_dequeue_burst() nor rte_event_enqueue_burst() are called + * on a port. This will allow the event device to perform internal + * processing, such as flushing buffered events, return credits to a + * global pool, or process signaling related to load balancing. */ /* Event device priority levels */ @@ -2082,8 +2083,8 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], /** * Maintain an event device. * - * This function is only relevant for event devices which have the - * @ref RTE_EVENT_DEV_CAP_REQUIRES_MAINT flag set. Such devices + * This function is only relevant for event devices which do not have + * the @ref RTE_EVENT_DEV_CAP_MAINTENANCE_FREE flag set. Such devices * require an application thread using a particular port to * periodically call rte_event_maintain() on that port during periods * which it is neither attempting to enqueue events to nor dequeue -- 2.25.1
> -----Original Message----- > From: Mattias Rönnblom <mattias.ronnblom@ericsson.com> > Sent: Wednesday, November 10, 2021 9:29 AM > To: jerinj@marvell.com; Jerin Jacob <jerinjacobk@gmail.com>; Sunil Kumar Kori > <skori@marvell.com> > Cc: dev@dpdk.org; Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>; > Hemant Agrawal <hemant.agrawal@nxp.com>; Nipun Gupta > <nipun.gupta@nxp.com>; Van Haaren, Harry <harry.van.haaren@intel.com>; > Thomas Monjalon <thomas@monjalon.net>; David Marchand > <david.marchand@redhat.com>; Gujjar, Abhinandan S > <abhinandan.gujjar@intel.com>; Carrillo, Erik G <erik.g.carrillo@intel.com>; > Jayatheerthan, Jay <jay.jayatheerthan@intel.com>; Yigit, Ferruh > <ferruh.yigit@intel.com>; Akhil Goyal <gakhil@marvell.com>; mattias.ronnblom > <mattias.ronnblom@ericsson.com> > Subject: [PATCH] eventdev: negate maintenance capability flag > > Replace RTE_EVENT_DEV_CAP_REQUIRES_MAINT, which signaled the need > for the application to call rte_event_maintain(), with > RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, which does the opposite (i.e., > signifies that the event device does not require maintenance). > > This approach is more in line with how other eventdev hardware and/or > software limitations are handled in the Eventdev API. > > Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Generally patch looks fine to me, but on testing I got a strange warning from the compiler on the OPDL driver: In file included from ../drivers/event/opdl/opdl_evdev.h:8, from ../drivers/event/opdl/opdl_evdev.c:15: ../drivers/event/opdl/opdl_evdev.c: In function ‘opdl_info_get’: ../lib/eventdev/rte_eventdev.h:302:44: warning: conversion from ‘long long unsigned int’ to ‘un signed char’ changes value from ‘1024’ to ‘0’ [-Woverflow] 302 | #define RTE_EVENT_DEV_CAP_MAINTENANCE_FREE (1ULL << 10) | ^ ../drivers/event/opdl/opdl_evdev.c:379:34: note: in expansion of macro ‘RTE_EVENT_DEV_CAP_MAINT ENANCE_FREE’ 379 | RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Investigating, RTE_EVENT_DEV_CAP_* are assigned to struct rte_event_dev_info::event_dev_cap, which is a uint32_t. The error suggests that the variable being assigned to is a "unsigned char"? <snip> > static void > diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c > index 5007e9a7bf..787ee4713d 100644 > --- a/drivers/event/opdl/opdl_evdev.c > +++ b/drivers/event/opdl/opdl_evdev.c > @@ -376,6 +376,7 @@ opdl_info_get(struct rte_eventdev *dev, struct > rte_event_dev_info *info) > .max_num_events = OPDL_INFLIGHT_EVENTS_TOTAL, > .event_dev_cap = RTE_EVENT_DEV_CAP_BURST_MODE | > RTE_EVENT_DEV_CAP_CARRY_FLOW_ID, > + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, > }; Aha! Replace: > RTE_EVENT_DEV_CAP_CARRY_FLOW_ID, with: > RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | The "," character was causing the _FREE flag to not be combined with the previous flags field, instead being its own (unnamed?) assignment to the struct rte_event_dev_info. With that , to | change, all looks good to me. -Harry
Replace RTE_EVENT_DEV_CAP_REQUIRES_MAINT, which signaled the need for the application to call rte_event_maintain(), with RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, which does the opposite (i.e., signifies that the event device does not require maintenance). This approach is more in line with how other eventdev hardware and/or software limitations are handled in the Eventdev API. v2: New flag was not properly set in opdl_evdev.c Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> --- doc/guides/eventdevs/dsw.rst | 4 ++-- drivers/event/cnxk/cnxk_eventdev.c | 3 ++- drivers/event/dlb2/dlb2.c | 3 ++- drivers/event/dpaa/dpaa_eventdev.c | 3 ++- drivers/event/dpaa2/dpaa2_eventdev.c | 3 ++- drivers/event/dsw/dsw_evdev.c | 3 +-- drivers/event/octeontx/ssovf_evdev.c | 3 ++- drivers/event/octeontx2/otx2_evdev.c | 3 ++- drivers/event/opdl/opdl_evdev.c | 3 ++- drivers/event/skeleton/skeleton_eventdev.c | 3 ++- drivers/event/sw/sw_evdev.c | 3 ++- lib/eventdev/rte_eventdev.h | 19 ++++++++++--------- 12 files changed, 31 insertions(+), 22 deletions(-) diff --git a/doc/guides/eventdevs/dsw.rst b/doc/guides/eventdevs/dsw.rst index 18f7e9588f..5c6b51f65f 100644 --- a/doc/guides/eventdevs/dsw.rst +++ b/doc/guides/eventdevs/dsw.rst @@ -44,8 +44,8 @@ Port Maintenance ~~~~~~~~~~~~~~~~ The distributed software eventdev uses an internal signaling scheme -between the ports to achieve load balancing. Therefore, it sets the -``RTE_EVENT_DEV_CAP_REQUIRES_MAINT`` flag. +between the ports to achieve load balancing. Therefore, it does not +set the ``RTE_EVENT_DEV_CAP_MAINTENANCE_FREE`` flag. During periods when the application thread using a particular port is neither attempting to enqueue nor to dequeue events, it must diff --git a/drivers/event/cnxk/cnxk_eventdev.c b/drivers/event/cnxk/cnxk_eventdev.c index 50d5c351bc..f7a5026250 100644 --- a/drivers/event/cnxk/cnxk_eventdev.c +++ b/drivers/event/cnxk/cnxk_eventdev.c @@ -119,7 +119,8 @@ cnxk_sso_info_get(struct cnxk_sso_evdev *dev, RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } int diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c index 0dbe85762c..16e9764dbf 100644 --- a/drivers/event/dlb2/dlb2.c +++ b/drivers/event/dlb2/dlb2.c @@ -66,7 +66,8 @@ static struct rte_event_dev_info evdev_dlb2_default_info = { RTE_EVENT_DEV_CAP_BURST_MODE | RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED | RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE | - RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES), + RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE), }; struct process_local_port_data diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c index eec4bc62b7..ff6cc0be18 100644 --- a/drivers/event/dpaa/dpaa_eventdev.c +++ b/drivers/event/dpaa/dpaa_eventdev.c @@ -356,7 +356,8 @@ dpaa_event_dev_info_get(struct rte_eventdev *dev, RTE_EVENT_DEV_CAP_BURST_MODE | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } static int diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index 710156ad14..4d94c315d2 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.c +++ b/drivers/event/dpaa2/dpaa2_eventdev.c @@ -408,7 +408,8 @@ dpaa2_eventdev_info_get(struct rte_eventdev *dev, RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c index 5ff8fcc6a9..ffabf0d23d 100644 --- a/drivers/event/dsw/dsw_evdev.c +++ b/drivers/event/dsw/dsw_evdev.c @@ -222,8 +222,7 @@ dsw_info_get(struct rte_eventdev *dev __rte_unused, RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED| RTE_EVENT_DEV_CAP_NONSEQ_MODE| RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT| - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID| - RTE_EVENT_DEV_CAP_REQUIRES_MAINT + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID }; } diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c index 366b6d356b..9e14e35d10 100644 --- a/drivers/event/octeontx/ssovf_evdev.c +++ b/drivers/event/octeontx/ssovf_evdev.c @@ -155,7 +155,8 @@ ssovf_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *dev_info) RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } diff --git a/drivers/event/octeontx2/otx2_evdev.c b/drivers/event/octeontx2/otx2_evdev.c index f26bed334f..ccf28b678b 100644 --- a/drivers/event/octeontx2/otx2_evdev.c +++ b/drivers/event/octeontx2/otx2_evdev.c @@ -505,7 +505,8 @@ otx2_sso_info_get(struct rte_eventdev *event_dev, RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } static void diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c index 5007e9a7bf..15c10240b0 100644 --- a/drivers/event/opdl/opdl_evdev.c +++ b/drivers/event/opdl/opdl_evdev.c @@ -375,7 +375,8 @@ opdl_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *info) .max_event_port_enqueue_depth = MAX_OPDL_CONS_Q_DEPTH, .max_num_events = OPDL_INFLIGHT_EVENTS_TOTAL, .event_dev_cap = RTE_EVENT_DEV_CAP_BURST_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID, + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, }; *info = evdev_opdl_info; diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c index af0efb3302..bf3b01ebc8 100644 --- a/drivers/event/skeleton/skeleton_eventdev.c +++ b/drivers/event/skeleton/skeleton_eventdev.c @@ -102,7 +102,8 @@ skeleton_eventdev_info_get(struct rte_eventdev *dev, dev_info->event_dev_cap = RTE_EVENT_DEV_CAP_QUEUE_QOS | RTE_EVENT_DEV_CAP_BURST_MODE | RTE_EVENT_DEV_CAP_EVENT_QOS | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } static int diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c index 070a4802e9..808f59d1e5 100644 --- a/drivers/event/sw/sw_evdev.c +++ b/drivers/event/sw/sw_evdev.c @@ -609,7 +609,8 @@ sw_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *info) RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID), + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE), }; *info = evdev_sw_info; diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h index e026486ca5..4119f51fa0 100644 --- a/lib/eventdev/rte_eventdev.h +++ b/lib/eventdev/rte_eventdev.h @@ -299,13 +299,14 @@ struct rte_event; * the content of this field is implementation dependent. */ -#define RTE_EVENT_DEV_CAP_REQUIRES_MAINT (1ULL << 10) -/**< Event device requires calls to rte_event_maintain() during - * periods when neither rte_event_dequeue_burst() nor - * rte_event_enqueue_burst() are called on a port. This will allow the - * event device to perform internal processing, such as flushing - * buffered events, return credits to a global pool, or process - * signaling related to load balancing. +#define RTE_EVENT_DEV_CAP_MAINTENANCE_FREE (1ULL << 10) +/**< Event device *does not* require calls to rte_event_maintain(). + * An event device that does not set this flag requires calls to + * rte_event_maintain() during periods when neither + * rte_event_dequeue_burst() nor rte_event_enqueue_burst() are called + * on a port. This will allow the event device to perform internal + * processing, such as flushing buffered events, return credits to a + * global pool, or process signaling related to load balancing. */ /* Event device priority levels */ @@ -2082,8 +2083,8 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], /** * Maintain an event device. * - * This function is only relevant for event devices which have the - * @ref RTE_EVENT_DEV_CAP_REQUIRES_MAINT flag set. Such devices + * This function is only relevant for event devices which do not have + * the @ref RTE_EVENT_DEV_CAP_MAINTENANCE_FREE flag set. Such devices * require an application thread using a particular port to * periodically call rte_event_maintain() on that port during periods * which it is neither attempting to enqueue events to nor dequeue -- 2.25.1
On 2021-11-10 10:55, Van Haaren, Harry wrote:
>> -----Original Message-----
>> From: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
>> Sent: Wednesday, November 10, 2021 9:29 AM
>> To: jerinj@marvell.com; Jerin Jacob <jerinjacobk@gmail.com>; Sunil Kumar Kori
>> <skori@marvell.com>
>> Cc: dev@dpdk.org; Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>;
>> Hemant Agrawal <hemant.agrawal@nxp.com>; Nipun Gupta
>> <nipun.gupta@nxp.com>; Van Haaren, Harry <harry.van.haaren@intel.com>;
>> Thomas Monjalon <thomas@monjalon.net>; David Marchand
>> <david.marchand@redhat.com>; Gujjar, Abhinandan S
>> <abhinandan.gujjar@intel.com>; Carrillo, Erik G <erik.g.carrillo@intel.com>;
>> Jayatheerthan, Jay <jay.jayatheerthan@intel.com>; Yigit, Ferruh
>> <ferruh.yigit@intel.com>; Akhil Goyal <gakhil@marvell.com>; mattias.ronnblom
>> <mattias.ronnblom@ericsson.com>
>> Subject: [PATCH] eventdev: negate maintenance capability flag
>>
>> Replace RTE_EVENT_DEV_CAP_REQUIRES_MAINT, which signaled the need
>> for the application to call rte_event_maintain(), with
>> RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, which does the opposite (i.e.,
>> signifies that the event device does not require maintenance).
>>
>> This approach is more in line with how other eventdev hardware and/or
>> software limitations are handled in the Eventdev API.
>>
>> Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
> Generally patch looks fine to me, but on testing I got a strange warning from the
> compiler on the OPDL driver:
>
> In file included from ../drivers/event/opdl/opdl_evdev.h:8,
> from ../drivers/event/opdl/opdl_evdev.c:15:
> ../drivers/event/opdl/opdl_evdev.c: In function ‘opdl_info_get’:
> ../lib/eventdev/rte_eventdev.h:302:44: warning: conversion from ‘long long unsigned int’ to ‘un
> signed char’ changes value from ‘1024’ to ‘0’ [-Woverflow]
> 302 | #define RTE_EVENT_DEV_CAP_MAINTENANCE_FREE (1ULL << 10)
> | ^
> ../drivers/event/opdl/opdl_evdev.c:379:34: note: in expansion of macro ‘RTE_EVENT_DEV_CAP_MAINT
> ENANCE_FREE’
> 379 | RTE_EVENT_DEV_CAP_MAINTENANCE_FREE,
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Investigating, RTE_EVENT_DEV_CAP_* are assigned to struct rte_event_dev_info::event_dev_cap,
> which is a uint32_t. The error suggests that the variable being assigned to is a "unsigned char"?
>
> <snip>
>
>> static void
>> diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c
>> index 5007e9a7bf..787ee4713d 100644
>> --- a/drivers/event/opdl/opdl_evdev.c
>> +++ b/drivers/event/opdl/opdl_evdev.c
>> @@ -376,6 +376,7 @@ opdl_info_get(struct rte_eventdev *dev, struct
>> rte_event_dev_info *info)
>> .max_num_events = OPDL_INFLIGHT_EVENTS_TOTAL,
>> .event_dev_cap = RTE_EVENT_DEV_CAP_BURST_MODE |
>> RTE_EVENT_DEV_CAP_CARRY_FLOW_ID,
>> + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE,
>> };
> Aha! Replace:
>> RTE_EVENT_DEV_CAP_CARRY_FLOW_ID,
> with:
>> RTE_EVENT_DEV_CAP_CARRY_FLOW_ID |
> The "," character was causing the _FREE flag to not be combined with the previous
> flags field, instead being its own (unnamed?) assignment to the struct rte_event_dev_info.
>
> With that , to | change, all looks good to me. -Harry
>
>
I sent a v2. Thanks!
On Wed, Nov 10, 2021 at 3:37 PM Mattias Rönnblom <mattias.ronnblom@ericsson.com> wrote: > > On 2021-11-10 10:55, Van Haaren, Harry wrote: > >> -----Original Message----- > >> From: Mattias Rönnblom <mattias.ronnblom@ericsson.com> > >> Sent: Wednesday, November 10, 2021 9:29 AM > >> To: jerinj@marvell.com; Jerin Jacob <jerinjacobk@gmail.com>; Sunil Kumar Kori > >> <skori@marvell.com> > >> Cc: dev@dpdk.org; Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>; > >> Hemant Agrawal <hemant.agrawal@nxp.com>; Nipun Gupta > >> <nipun.gupta@nxp.com>; Van Haaren, Harry <harry.van.haaren@intel.com>; > >> Thomas Monjalon <thomas@monjalon.net>; David Marchand > >> <david.marchand@redhat.com>; Gujjar, Abhinandan S > >> <abhinandan.gujjar@intel.com>; Carrillo, Erik G <erik.g.carrillo@intel.com>; > >> Jayatheerthan, Jay <jay.jayatheerthan@intel.com>; Yigit, Ferruh > >> <ferruh.yigit@intel.com>; Akhil Goyal <gakhil@marvell.com>; mattias.ronnblom > >> <mattias.ronnblom@ericsson.com> > >> Subject: [PATCH] eventdev: negate maintenance capability flag > >> > >> Replace RTE_EVENT_DEV_CAP_REQUIRES_MAINT, which signaled the need > >> for the application to call rte_event_maintain(), with > >> RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, which does the opposite (i.e., > >> signifies that the event device does not require maintenance). > >> > >> This approach is more in line with how other eventdev hardware and/or > >> software limitations are handled in the Eventdev API. > >> > >> Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> > > Generally patch looks fine to me, but on testing I got a strange warning from the > > compiler on the OPDL driver: > > > > In file included from ../drivers/event/opdl/opdl_evdev.h:8, > > from ../drivers/event/opdl/opdl_evdev.c:15: > > ../drivers/event/opdl/opdl_evdev.c: In function ‘opdl_info_get’: > > ../lib/eventdev/rte_eventdev.h:302:44: warning: conversion from ‘long long unsigned int’ to ‘un > > signed char’ changes value from ‘1024’ to ‘0’ [-Woverflow] > > 302 | #define RTE_EVENT_DEV_CAP_MAINTENANCE_FREE (1ULL << 10) > > | ^ > > ../drivers/event/opdl/opdl_evdev.c:379:34: note: in expansion of macro ‘RTE_EVENT_DEV_CAP_MAINT > > ENANCE_FREE’ > > 379 | RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > Investigating, RTE_EVENT_DEV_CAP_* are assigned to struct rte_event_dev_info::event_dev_cap, > > which is a uint32_t. The error suggests that the variable being assigned to is a "unsigned char"? > > > > <snip> > > > >> static void > >> diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c > >> index 5007e9a7bf..787ee4713d 100644 > >> --- a/drivers/event/opdl/opdl_evdev.c > >> +++ b/drivers/event/opdl/opdl_evdev.c > >> @@ -376,6 +376,7 @@ opdl_info_get(struct rte_eventdev *dev, struct > >> rte_event_dev_info *info) > >> .max_num_events = OPDL_INFLIGHT_EVENTS_TOTAL, > >> .event_dev_cap = RTE_EVENT_DEV_CAP_BURST_MODE | > >> RTE_EVENT_DEV_CAP_CARRY_FLOW_ID, > >> + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, > >> }; > > Aha! Replace: > >> RTE_EVENT_DEV_CAP_CARRY_FLOW_ID, > > with: > >> RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | > > The "," character was causing the _FREE flag to not be combined with the previous > > flags field, instead being its own (unnamed?) assignment to the struct rte_event_dev_info. > > > > With that , to | change, all looks good to me. -Harry > > > > > I sent a v2. Thanks! v2 has doc build error. Please send v3 http://mails.dpdk.org/archives/test-report/2021-November/241649.html >
In the Eventdev Ethernet RX Adapter, correctly handle the case where the circular enqueue buffer head and last index point to the same element. This bug may be triggered in case there is backpressure from the event device to the RX adapter. v2: * Corrected bug description Fixes: 8113fd15e229 ("eventdev/eth_rx: make enqueue buffer circular") Cc: ganapati.kundapura@intel.com Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> --- lib/eventdev/rte_event_eth_rx_adapter.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c index 56318b5a6f..809416d9b7 100644 --- a/lib/eventdev/rte_event_eth_rx_adapter.c +++ b/lib/eventdev/rte_event_eth_rx_adapter.c @@ -777,19 +777,25 @@ rxa_flush_event_buffer(struct event_eth_rx_adapter *rx_adapter, struct eth_event_enqueue_buffer *buf, struct rte_event_eth_rx_adapter_stats *stats) { - uint16_t count = buf->last ? buf->last - buf->head : buf->count; + uint16_t count = buf->count; + uint16_t n = 0; if (!count) return 0; - uint16_t n = rte_event_enqueue_new_burst(rx_adapter->eventdev_id, - rx_adapter->event_port_id, - &buf->events[buf->head], - count); - if (n != count) - stats->rx_enq_retry++; + if (buf->last) + count = buf->last - buf->head; + + if (count) { + n = rte_event_enqueue_new_burst(rx_adapter->eventdev_id, + rx_adapter->event_port_id, + &buf->events[buf->head], + count); + if (n != count) + stats->rx_enq_retry++; - buf->head += n; + buf->head += n; + } if (buf->last && n == count) { uint16_t n1; -- 2.25.1
Looks good. Thanks for posting this change!
Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com>
> -----Original Message-----
> From: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
> Sent: Wednesday, November 10, 2021 4:44 PM
> To: jerinjacobk@gmail.com; Jayatheerthan, Jay <jay.jayatheerthan@intel.com>; Kundapura, Ganapati
> <ganapati.kundapura@intel.com>; jerinj@marvell.com
> Cc: dev @ dpdk . org <dev@dpdk.org>; mattias.ronnblom <mattias.ronnblom@ericsson.com>
> Subject: [PATCH v2] eventdev: fix Rx adapter stalls on event device backpressure
>
> In the Eventdev Ethernet RX Adapter, correctly handle the case where
> the circular enqueue buffer head and last index point to the same
> element.
>
> This bug may be triggered in case there is backpressure from the event
> device to the RX adapter.
>
> v2:
> * Corrected bug description
>
> Fixes: 8113fd15e229 ("eventdev/eth_rx: make enqueue buffer circular")
> Cc: ganapati.kundapura@intel.com
>
> Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
> ---
> lib/eventdev/rte_event_eth_rx_adapter.c | 22 ++++++++++++++--------
> 1 file changed, 14 insertions(+), 8 deletions(-)
>
> diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c
> index 56318b5a6f..809416d9b7 100644
> --- a/lib/eventdev/rte_event_eth_rx_adapter.c
> +++ b/lib/eventdev/rte_event_eth_rx_adapter.c
> @@ -777,19 +777,25 @@ rxa_flush_event_buffer(struct event_eth_rx_adapter *rx_adapter,
> struct eth_event_enqueue_buffer *buf,
> struct rte_event_eth_rx_adapter_stats *stats)
> {
> - uint16_t count = buf->last ? buf->last - buf->head : buf->count;
> + uint16_t count = buf->count;
> + uint16_t n = 0;
>
> if (!count)
> return 0;
>
> - uint16_t n = rte_event_enqueue_new_burst(rx_adapter->eventdev_id,
> - rx_adapter->event_port_id,
> - &buf->events[buf->head],
> - count);
> - if (n != count)
> - stats->rx_enq_retry++;
> + if (buf->last)
> + count = buf->last - buf->head;
> +
> + if (count) {
> + n = rte_event_enqueue_new_burst(rx_adapter->eventdev_id,
> + rx_adapter->event_port_id,
> + &buf->events[buf->head],
> + count);
> + if (n != count)
> + stats->rx_enq_retry++;
>
> - buf->head += n;
> + buf->head += n;
> + }
>
> if (buf->last && n == count) {
> uint16_t n1;
> --
> 2.25.1
Replace RTE_EVENT_DEV_CAP_REQUIRES_MAINT, which signaled the need for the application to call rte_event_maintain(), with RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, which does the opposite (i.e., signifies that the event device does not require maintenance). This approach is more in line with how other eventdev hardware and/or software limitations are handled in the Eventdev API. v3: Fix invalid references in the API documentation v2: New flag was not properly set in opdl_evdev.c Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> --- doc/guides/eventdevs/dsw.rst | 4 ++-- drivers/event/cnxk/cnxk_eventdev.c | 3 ++- drivers/event/dlb2/dlb2.c | 3 ++- drivers/event/dpaa/dpaa_eventdev.c | 3 ++- drivers/event/dpaa2/dpaa2_eventdev.c | 3 ++- drivers/event/dsw/dsw_evdev.c | 3 +-- drivers/event/octeontx/ssovf_evdev.c | 3 ++- drivers/event/octeontx2/otx2_evdev.c | 3 ++- drivers/event/opdl/opdl_evdev.c | 3 ++- drivers/event/skeleton/skeleton_eventdev.c | 3 ++- drivers/event/sw/sw_evdev.c | 3 ++- lib/eventdev/rte_eventdev.h | 27 +++++++++++----------- 12 files changed, 35 insertions(+), 26 deletions(-) diff --git a/doc/guides/eventdevs/dsw.rst b/doc/guides/eventdevs/dsw.rst index 18f7e9588f..5c6b51f65f 100644 --- a/doc/guides/eventdevs/dsw.rst +++ b/doc/guides/eventdevs/dsw.rst @@ -44,8 +44,8 @@ Port Maintenance ~~~~~~~~~~~~~~~~ The distributed software eventdev uses an internal signaling scheme -between the ports to achieve load balancing. Therefore, it sets the -``RTE_EVENT_DEV_CAP_REQUIRES_MAINT`` flag. +between the ports to achieve load balancing. Therefore, it does not +set the ``RTE_EVENT_DEV_CAP_MAINTENANCE_FREE`` flag. During periods when the application thread using a particular port is neither attempting to enqueue nor to dequeue events, it must diff --git a/drivers/event/cnxk/cnxk_eventdev.c b/drivers/event/cnxk/cnxk_eventdev.c index 50d5c351bc..f7a5026250 100644 --- a/drivers/event/cnxk/cnxk_eventdev.c +++ b/drivers/event/cnxk/cnxk_eventdev.c @@ -119,7 +119,8 @@ cnxk_sso_info_get(struct cnxk_sso_evdev *dev, RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } int diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c index 0dbe85762c..16e9764dbf 100644 --- a/drivers/event/dlb2/dlb2.c +++ b/drivers/event/dlb2/dlb2.c @@ -66,7 +66,8 @@ static struct rte_event_dev_info evdev_dlb2_default_info = { RTE_EVENT_DEV_CAP_BURST_MODE | RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED | RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE | - RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES), + RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE), }; struct process_local_port_data diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c index eec4bc62b7..ff6cc0be18 100644 --- a/drivers/event/dpaa/dpaa_eventdev.c +++ b/drivers/event/dpaa/dpaa_eventdev.c @@ -356,7 +356,8 @@ dpaa_event_dev_info_get(struct rte_eventdev *dev, RTE_EVENT_DEV_CAP_BURST_MODE | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } static int diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index 710156ad14..4d94c315d2 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.c +++ b/drivers/event/dpaa2/dpaa2_eventdev.c @@ -408,7 +408,8 @@ dpaa2_eventdev_info_get(struct rte_eventdev *dev, RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c index 5ff8fcc6a9..ffabf0d23d 100644 --- a/drivers/event/dsw/dsw_evdev.c +++ b/drivers/event/dsw/dsw_evdev.c @@ -222,8 +222,7 @@ dsw_info_get(struct rte_eventdev *dev __rte_unused, RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED| RTE_EVENT_DEV_CAP_NONSEQ_MODE| RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT| - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID| - RTE_EVENT_DEV_CAP_REQUIRES_MAINT + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID }; } diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c index 366b6d356b..9e14e35d10 100644 --- a/drivers/event/octeontx/ssovf_evdev.c +++ b/drivers/event/octeontx/ssovf_evdev.c @@ -155,7 +155,8 @@ ssovf_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *dev_info) RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } diff --git a/drivers/event/octeontx2/otx2_evdev.c b/drivers/event/octeontx2/otx2_evdev.c index f26bed334f..ccf28b678b 100644 --- a/drivers/event/octeontx2/otx2_evdev.c +++ b/drivers/event/octeontx2/otx2_evdev.c @@ -505,7 +505,8 @@ otx2_sso_info_get(struct rte_eventdev *event_dev, RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } static void diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c index 5007e9a7bf..15c10240b0 100644 --- a/drivers/event/opdl/opdl_evdev.c +++ b/drivers/event/opdl/opdl_evdev.c @@ -375,7 +375,8 @@ opdl_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *info) .max_event_port_enqueue_depth = MAX_OPDL_CONS_Q_DEPTH, .max_num_events = OPDL_INFLIGHT_EVENTS_TOTAL, .event_dev_cap = RTE_EVENT_DEV_CAP_BURST_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID, + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, }; *info = evdev_opdl_info; diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c index af0efb3302..bf3b01ebc8 100644 --- a/drivers/event/skeleton/skeleton_eventdev.c +++ b/drivers/event/skeleton/skeleton_eventdev.c @@ -102,7 +102,8 @@ skeleton_eventdev_info_get(struct rte_eventdev *dev, dev_info->event_dev_cap = RTE_EVENT_DEV_CAP_QUEUE_QOS | RTE_EVENT_DEV_CAP_BURST_MODE | RTE_EVENT_DEV_CAP_EVENT_QOS | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; } static int diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c index 070a4802e9..808f59d1e5 100644 --- a/drivers/event/sw/sw_evdev.c +++ b/drivers/event/sw/sw_evdev.c @@ -609,7 +609,8 @@ sw_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *info) RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | RTE_EVENT_DEV_CAP_NONSEQ_MODE | - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID), + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE), }; *info = evdev_sw_info; diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h index e026486ca5..eef47d8acc 100644 --- a/lib/eventdev/rte_eventdev.h +++ b/lib/eventdev/rte_eventdev.h @@ -299,13 +299,14 @@ struct rte_event; * the content of this field is implementation dependent. */ -#define RTE_EVENT_DEV_CAP_REQUIRES_MAINT (1ULL << 10) -/**< Event device requires calls to rte_event_maintain() during - * periods when neither rte_event_dequeue_burst() nor - * rte_event_enqueue_burst() are called on a port. This will allow the - * event device to perform internal processing, such as flushing - * buffered events, return credits to a global pool, or process - * signaling related to load balancing. +#define RTE_EVENT_DEV_CAP_MAINTENANCE_FREE (1ULL << 10) +/**< Event device *does not* require calls to rte_event_maintain(). + * An event device that does not set this flag requires calls to + * rte_event_maintain() during periods when neither + * rte_event_dequeue_burst() nor rte_event_enqueue_burst() are called + * on a port. This will allow the event device to perform internal + * processing, such as flushing buffered events, return credits to a + * global pool, or process signaling related to load balancing. */ /* Event device priority levels */ @@ -2082,8 +2083,8 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], /** * Maintain an event device. * - * This function is only relevant for event devices which have the - * @ref RTE_EVENT_DEV_CAP_REQUIRES_MAINT flag set. Such devices + * This function is only relevant for event devices which do not have + * the @ref RTE_EVENT_DEV_CAP_MAINTENANCE_FREE flag set. Such devices * require an application thread using a particular port to * periodically call rte_event_maintain() on that port during periods * which it is neither attempting to enqueue events to nor dequeue @@ -2098,9 +2099,9 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], * or dequeue functions are being called, at the cost of a slight * increase in overhead. * - * rte_event_maintain() may be called on event devices which haven't - * set @ref RTE_EVENT_DEV_CAP_REQUIRES_MAINT flag, in which case it is - * a no-operation. + * rte_event_maintain() may be called on event devices which have set + * @ref RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, in which case it is a + * no-operation. * * @param dev_id * The identifier of the device. @@ -2112,7 +2113,7 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], * - 0 on success. * - -EINVAL if *dev_id*, *port_id*, or *op* is invalid. * - * @see RTE_EVENT_DEV_CAP_REQUIRES_MAINT + * @see RTE_EVENT_DEV_CAP_MAINTENANCE_FREE */ __rte_experimental static inline int -- 2.25.1
On Wed, Nov 10, 2021 at 5:02 PM Mattias Rönnblom <mattias.ronnblom@ericsson.com> wrote: > > Replace RTE_EVENT_DEV_CAP_REQUIRES_MAINT, which signaled the need > for the application to call rte_event_maintain(), with > RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, which does the opposite (i.e., > signifies that the event device does not require maintenance). > > This approach is more in line with how other eventdev hardware and/or > software limitations are handled in the Eventdev API. > > v3: Fix invalid references in the API documentation > v2: New flag was not properly set in opdl_evdev.c > > Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Acked-by: Jerin Jacob <jerinj@marvell.com> Applied to dpdk-next-net-eventdev/for-main. Thanks > --- > doc/guides/eventdevs/dsw.rst | 4 ++-- > drivers/event/cnxk/cnxk_eventdev.c | 3 ++- > drivers/event/dlb2/dlb2.c | 3 ++- > drivers/event/dpaa/dpaa_eventdev.c | 3 ++- > drivers/event/dpaa2/dpaa2_eventdev.c | 3 ++- > drivers/event/dsw/dsw_evdev.c | 3 +-- > drivers/event/octeontx/ssovf_evdev.c | 3 ++- > drivers/event/octeontx2/otx2_evdev.c | 3 ++- > drivers/event/opdl/opdl_evdev.c | 3 ++- > drivers/event/skeleton/skeleton_eventdev.c | 3 ++- > drivers/event/sw/sw_evdev.c | 3 ++- > lib/eventdev/rte_eventdev.h | 27 +++++++++++----------- > 12 files changed, 35 insertions(+), 26 deletions(-) > > diff --git a/doc/guides/eventdevs/dsw.rst b/doc/guides/eventdevs/dsw.rst > index 18f7e9588f..5c6b51f65f 100644 > --- a/doc/guides/eventdevs/dsw.rst > +++ b/doc/guides/eventdevs/dsw.rst > @@ -44,8 +44,8 @@ Port Maintenance > ~~~~~~~~~~~~~~~~ > > The distributed software eventdev uses an internal signaling scheme > -between the ports to achieve load balancing. Therefore, it sets the > -``RTE_EVENT_DEV_CAP_REQUIRES_MAINT`` flag. > +between the ports to achieve load balancing. Therefore, it does not > +set the ``RTE_EVENT_DEV_CAP_MAINTENANCE_FREE`` flag. > > During periods when the application thread using a particular port is > neither attempting to enqueue nor to dequeue events, it must > diff --git a/drivers/event/cnxk/cnxk_eventdev.c b/drivers/event/cnxk/cnxk_eventdev.c > index 50d5c351bc..f7a5026250 100644 > --- a/drivers/event/cnxk/cnxk_eventdev.c > +++ b/drivers/event/cnxk/cnxk_eventdev.c > @@ -119,7 +119,8 @@ cnxk_sso_info_get(struct cnxk_sso_evdev *dev, > RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | > RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | > RTE_EVENT_DEV_CAP_NONSEQ_MODE | > - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; > + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | > + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; > } > > int > diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c > index 0dbe85762c..16e9764dbf 100644 > --- a/drivers/event/dlb2/dlb2.c > +++ b/drivers/event/dlb2/dlb2.c > @@ -66,7 +66,8 @@ static struct rte_event_dev_info evdev_dlb2_default_info = { > RTE_EVENT_DEV_CAP_BURST_MODE | > RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED | > RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE | > - RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES), > + RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES | > + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE), > }; > > struct process_local_port_data > diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c > index eec4bc62b7..ff6cc0be18 100644 > --- a/drivers/event/dpaa/dpaa_eventdev.c > +++ b/drivers/event/dpaa/dpaa_eventdev.c > @@ -356,7 +356,8 @@ dpaa_event_dev_info_get(struct rte_eventdev *dev, > RTE_EVENT_DEV_CAP_BURST_MODE | > RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | > RTE_EVENT_DEV_CAP_NONSEQ_MODE | > - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; > + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | > + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; > } > > static int > diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c > index 710156ad14..4d94c315d2 100644 > --- a/drivers/event/dpaa2/dpaa2_eventdev.c > +++ b/drivers/event/dpaa2/dpaa2_eventdev.c > @@ -408,7 +408,8 @@ dpaa2_eventdev_info_get(struct rte_eventdev *dev, > RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | > RTE_EVENT_DEV_CAP_NONSEQ_MODE | > RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES | > - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; > + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | > + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; > > } > > diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c > index 5ff8fcc6a9..ffabf0d23d 100644 > --- a/drivers/event/dsw/dsw_evdev.c > +++ b/drivers/event/dsw/dsw_evdev.c > @@ -222,8 +222,7 @@ dsw_info_get(struct rte_eventdev *dev __rte_unused, > RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED| > RTE_EVENT_DEV_CAP_NONSEQ_MODE| > RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT| > - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID| > - RTE_EVENT_DEV_CAP_REQUIRES_MAINT > + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID > }; > } > > diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c > index 366b6d356b..9e14e35d10 100644 > --- a/drivers/event/octeontx/ssovf_evdev.c > +++ b/drivers/event/octeontx/ssovf_evdev.c > @@ -155,7 +155,8 @@ ssovf_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *dev_info) > RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | > RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | > RTE_EVENT_DEV_CAP_NONSEQ_MODE | > - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; > + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | > + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; > > } > > diff --git a/drivers/event/octeontx2/otx2_evdev.c b/drivers/event/octeontx2/otx2_evdev.c > index f26bed334f..ccf28b678b 100644 > --- a/drivers/event/octeontx2/otx2_evdev.c > +++ b/drivers/event/octeontx2/otx2_evdev.c > @@ -505,7 +505,8 @@ otx2_sso_info_get(struct rte_eventdev *event_dev, > RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | > RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | > RTE_EVENT_DEV_CAP_NONSEQ_MODE | > - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; > + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | > + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; > } > > static void > diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c > index 5007e9a7bf..15c10240b0 100644 > --- a/drivers/event/opdl/opdl_evdev.c > +++ b/drivers/event/opdl/opdl_evdev.c > @@ -375,7 +375,8 @@ opdl_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *info) > .max_event_port_enqueue_depth = MAX_OPDL_CONS_Q_DEPTH, > .max_num_events = OPDL_INFLIGHT_EVENTS_TOTAL, > .event_dev_cap = RTE_EVENT_DEV_CAP_BURST_MODE | > - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID, > + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | > + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, > }; > > *info = evdev_opdl_info; > diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c > index af0efb3302..bf3b01ebc8 100644 > --- a/drivers/event/skeleton/skeleton_eventdev.c > +++ b/drivers/event/skeleton/skeleton_eventdev.c > @@ -102,7 +102,8 @@ skeleton_eventdev_info_get(struct rte_eventdev *dev, > dev_info->event_dev_cap = RTE_EVENT_DEV_CAP_QUEUE_QOS | > RTE_EVENT_DEV_CAP_BURST_MODE | > RTE_EVENT_DEV_CAP_EVENT_QOS | > - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID; > + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | > + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE; > } > > static int > diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c > index 070a4802e9..808f59d1e5 100644 > --- a/drivers/event/sw/sw_evdev.c > +++ b/drivers/event/sw/sw_evdev.c > @@ -609,7 +609,8 @@ sw_info_get(struct rte_eventdev *dev, struct rte_event_dev_info *info) > RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK | > RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT | > RTE_EVENT_DEV_CAP_NONSEQ_MODE | > - RTE_EVENT_DEV_CAP_CARRY_FLOW_ID), > + RTE_EVENT_DEV_CAP_CARRY_FLOW_ID | > + RTE_EVENT_DEV_CAP_MAINTENANCE_FREE), > }; > > *info = evdev_sw_info; > diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h > index e026486ca5..eef47d8acc 100644 > --- a/lib/eventdev/rte_eventdev.h > +++ b/lib/eventdev/rte_eventdev.h > @@ -299,13 +299,14 @@ struct rte_event; > * the content of this field is implementation dependent. > */ > > -#define RTE_EVENT_DEV_CAP_REQUIRES_MAINT (1ULL << 10) > -/**< Event device requires calls to rte_event_maintain() during > - * periods when neither rte_event_dequeue_burst() nor > - * rte_event_enqueue_burst() are called on a port. This will allow the > - * event device to perform internal processing, such as flushing > - * buffered events, return credits to a global pool, or process > - * signaling related to load balancing. > +#define RTE_EVENT_DEV_CAP_MAINTENANCE_FREE (1ULL << 10) > +/**< Event device *does not* require calls to rte_event_maintain(). > + * An event device that does not set this flag requires calls to > + * rte_event_maintain() during periods when neither > + * rte_event_dequeue_burst() nor rte_event_enqueue_burst() are called > + * on a port. This will allow the event device to perform internal > + * processing, such as flushing buffered events, return credits to a > + * global pool, or process signaling related to load balancing. > */ > > /* Event device priority levels */ > @@ -2082,8 +2083,8 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], > /** > * Maintain an event device. > * > - * This function is only relevant for event devices which have the > - * @ref RTE_EVENT_DEV_CAP_REQUIRES_MAINT flag set. Such devices > + * This function is only relevant for event devices which do not have > + * the @ref RTE_EVENT_DEV_CAP_MAINTENANCE_FREE flag set. Such devices > * require an application thread using a particular port to > * periodically call rte_event_maintain() on that port during periods > * which it is neither attempting to enqueue events to nor dequeue > @@ -2098,9 +2099,9 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], > * or dequeue functions are being called, at the cost of a slight > * increase in overhead. > * > - * rte_event_maintain() may be called on event devices which haven't > - * set @ref RTE_EVENT_DEV_CAP_REQUIRES_MAINT flag, in which case it is > - * a no-operation. > + * rte_event_maintain() may be called on event devices which have set > + * @ref RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, in which case it is a > + * no-operation. > * > * @param dev_id > * The identifier of the device. > @@ -2112,7 +2113,7 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], > * - 0 on success. > * - -EINVAL if *dev_id*, *port_id*, or *op* is invalid. > * > - * @see RTE_EVENT_DEV_CAP_REQUIRES_MAINT > + * @see RTE_EVENT_DEV_CAP_MAINTENANCE_FREE > */ > __rte_experimental > static inline int > -- > 2.25.1 >
On Wed, Nov 10, 2021 at 4:53 PM Jayatheerthan, Jay <jay.jayatheerthan@intel.com> wrote: > > Looks good. Thanks for posting this change! > > Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com> Changed the subject to: eventdev/eth_rx: fix stalls on event device backpressure Applied to dpdk-next-net-eventdev/for-main. Thanks > > > -----Original Message----- > > From: Mattias Rönnblom <mattias.ronnblom@ericsson.com> > > Sent: Wednesday, November 10, 2021 4:44 PM > > To: jerinjacobk@gmail.com; Jayatheerthan, Jay <jay.jayatheerthan@intel.com>; Kundapura, Ganapati > > <ganapati.kundapura@intel.com>; jerinj@marvell.com > > Cc: dev @ dpdk . org <dev@dpdk.org>; mattias.ronnblom <mattias.ronnblom@ericsson.com> > > Subject: [PATCH v2] eventdev: fix Rx adapter stalls on event device backpressure > > > > In the Eventdev Ethernet RX Adapter, correctly handle the case where > > the circular enqueue buffer head and last index point to the same > > element. > > > > This bug may be triggered in case there is backpressure from the event > > device to the RX adapter. > > > > v2: > > * Corrected bug description > > > > Fixes: 8113fd15e229 ("eventdev/eth_rx: make enqueue buffer circular") > > Cc: ganapati.kundapura@intel.com > > > > Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> > > --- > > lib/eventdev/rte_event_eth_rx_adapter.c | 22 ++++++++++++++-------- > > 1 file changed, 14 insertions(+), 8 deletions(-) > > > > diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c > > index 56318b5a6f..809416d9b7 100644 > > --- a/lib/eventdev/rte_event_eth_rx_adapter.c > > +++ b/lib/eventdev/rte_event_eth_rx_adapter.c > > @@ -777,19 +777,25 @@ rxa_flush_event_buffer(struct event_eth_rx_adapter *rx_adapter, > > struct eth_event_enqueue_buffer *buf, > > struct rte_event_eth_rx_adapter_stats *stats) > > { > > - uint16_t count = buf->last ? buf->last - buf->head : buf->count; > > + uint16_t count = buf->count; > > + uint16_t n = 0; > > > > if (!count) > > return 0; > > > > - uint16_t n = rte_event_enqueue_new_burst(rx_adapter->eventdev_id, > > - rx_adapter->event_port_id, > > - &buf->events[buf->head], > > - count); > > - if (n != count) > > - stats->rx_enq_retry++; > > + if (buf->last) > > + count = buf->last - buf->head; > > + > > + if (count) { > > + n = rte_event_enqueue_new_burst(rx_adapter->eventdev_id, > > + rx_adapter->event_port_id, > > + &buf->events[buf->head], > > + count); > > + if (n != count) > > + stats->rx_enq_retry++; > > > > - buf->head += n; > > + buf->head += n; > > + } > > > > if (buf->last && n == count) { > > uint16_t n1; > > -- > > 2.25.1 >
>-----Original Message-----
>From: Thomas Monjalon <thomas@monjalon.net>
>Sent: Tuesday, November 9, 2021 5:05 PM
>To: Sunil Kumar Kori <skori@marvell.com>; Jerin Jacob
><jerinjacobk@gmail.com>
>Cc: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Nikhil Rao
><nikhil.rao@intel.com>; Pavan Nikhilesh Bhagavatula
><pbhagavatula@marvell.com>; Hemant Agrawal
><hemant.agrawal@nxp.com>; Nipun Gupta <nipun.gupta@nxp.com>; Van
>Haaren, Harry <harry.van.haaren@intel.com>; Mattias Rönnblom
><mattias.ronnblom@ericsson.com>; Liang Ma <liang.j.ma@intel.com>; dpdk-
>dev <dev@dpdk.org>; David Marchand <david.marchand@redhat.com>;
>Gujjar, Abhinandan S <abhinandan.gujjar@intel.com>; Erik Gabriel Carrillo
><erik.g.carrillo@intel.com>; Jayatheerthan, Jay
><jay.jayatheerthan@intel.com>; Ferruh Yigit <ferruh.yigit@intel.com>; Akhil
>Goyal <gakhil@marvell.com>
>Subject: [EXT] Re: [dpdk-dev] [PATCH v5 1/4] doc: add skeleton for eventdevs
>feature matrices
>
>External Email
>
>----------------------------------------------------------------------
>09/11/2021 11:11, Jerin Jacob:
>> On Fri, Oct 22, 2021 at 1:18 PM <skori@marvell.com> wrote:
>> > # Maximum feature description string length -feature_str_len = 30
>> > +feature_str_len = 45
>>
>> I hope this OK. I understand that without this it gives errors and
>> feature-length is not enough
>
>I don't think this is OK, because it would enlarge the size of all tables.
>Please confirm (especially for NICs table).
>Is there a way to make the feature names smaller?
>
Ack. I will limit the string length up to 30 characters.
From: Sunil Kumar Kori <skori@marvell.com> Patch adds skeleton for feature matrices for event dev and Rx/Tx adapters. Along with, .ini files are added for all supported PMDs. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated .gitignore | 5 ++ doc/guides/conf.py | 25 ++++++++++ doc/guides/eventdevs/features/cn10k.ini | 14 ++++++ doc/guides/eventdevs/features/cn9k.ini | 14 ++++++ doc/guides/eventdevs/features/default.ini | 51 +++++++++++++++++++++ doc/guides/eventdevs/features/dpaa.ini | 14 ++++++ doc/guides/eventdevs/features/dpaa2.ini | 14 ++++++ doc/guides/eventdevs/features/dsw.ini | 14 ++++++ doc/guides/eventdevs/features/octeontx.ini | 14 ++++++ doc/guides/eventdevs/features/octeontx2.ini | 14 ++++++ doc/guides/eventdevs/features/opdl.ini | 14 ++++++ doc/guides/eventdevs/features/sw.ini | 14 ++++++ doc/guides/eventdevs/index.rst | 1 + doc/guides/eventdevs/overview.rst | 40 ++++++++++++++++ 14 files changed, 248 insertions(+) create mode 100644 doc/guides/eventdevs/features/cn10k.ini create mode 100644 doc/guides/eventdevs/features/cn9k.ini create mode 100644 doc/guides/eventdevs/features/default.ini create mode 100644 doc/guides/eventdevs/features/dpaa.ini create mode 100644 doc/guides/eventdevs/features/dpaa2.ini create mode 100644 doc/guides/eventdevs/features/dsw.ini create mode 100644 doc/guides/eventdevs/features/octeontx.ini create mode 100644 doc/guides/eventdevs/features/octeontx2.ini create mode 100644 doc/guides/eventdevs/features/opdl.ini create mode 100644 doc/guides/eventdevs/features/sw.ini create mode 100644 doc/guides/eventdevs/overview.rst diff --git a/.gitignore b/.gitignore index b98a43a601..212c7aa28e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,11 @@ doc/guides/regexdevs/overview_feature_table.txt doc/guides/vdpadevs/overview_feature_table.txt doc/guides/bbdevs/overview_feature_table.txt doc/guides/gpus/overview_feature_table.txt +doc/guides/eventdevs/overview_feature_table.txt +doc/guides/eventdevs/overview_rx_adptr_feature_table.txt +doc/guides/eventdevs/overview_tx_adptr_feature_table.txt +doc/guides/eventdevs/overview_crypto_adptr_feature_table.txt +doc/guides/eventdevs/overview_timer_adptr_feature_table.txt # ignore generated ctags/cscope files cscope.out.po diff --git a/doc/guides/conf.py b/doc/guides/conf.py index e6ce929bc8..1743ce301f 100644 --- a/doc/guides/conf.py +++ b/doc/guides/conf.py @@ -401,6 +401,31 @@ def setup(app): 'Features', 'Features availability in GPU drivers', 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_feature_table.txt' + generate_overview_table(table_file, 1, + 'Scheduling Features', + 'Features availability in eventdev drivers', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_rx_adptr_feature_table.txt' + generate_overview_table(table_file, 2, + 'Eth Rx adapter Features', + 'Features availability for Ethdev Rx adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_tx_adptr_feature_table.txt' + generate_overview_table(table_file, 3, + 'Eth Tx adapter Features', + 'Features availability for Ethdev Tx adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_crypto_adptr_feature_table.txt' + generate_overview_table(table_file, 4, + 'Crypto adapter Features', + 'Features availability for Crypto adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_timer_adptr_feature_table.txt' + generate_overview_table(table_file, 5, + 'Timer adapter Features', + 'Features availability for Timer adapters', + 'Feature') if LooseVersion(sphinx_version) < LooseVersion('1.3.1'): print('Upgrade sphinx to version >= 1.3.1 for ' diff --git a/doc/guides/eventdevs/features/cn10k.ini b/doc/guides/eventdevs/features/cn10k.ini new file mode 100644 index 0000000000..c7ddde5a65 --- /dev/null +++ b/doc/guides/eventdevs/features/cn10k.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'cn10k' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/cn9k.ini b/doc/guides/eventdevs/features/cn9k.ini new file mode 100644 index 0000000000..4b87ca93df --- /dev/null +++ b/doc/guides/eventdevs/features/cn9k.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'cn9k' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini new file mode 100644 index 0000000000..5b16c45193 --- /dev/null +++ b/doc/guides/eventdevs/features/default.ini @@ -0,0 +1,51 @@ +; +; Features of a default eventdev driver. +; +; This file defines the features that are valid for inclusion in +; the other driver files and also the order that they appear in +; the features table in the documentation. +; +[Scheduling Features] +queue_qos = +event_qos = +distributed_sched = +queue_all_types = +burst_mode = +implicit_release_disable = +nonseq_mode = +runtime_port_link = +multiple_queue_port = +carry_flow_id = +maintenance_free = + +; +; Features of a default Ethernet Rx adapter. +; +[Eth Rx adapter Features] +internal_port = +multi_eventq = +override_flow_id = +event_vector = + +; +; Features of a default Ethernet Tx adapter. +; +[Eth Tx adapter Features] +internal_port = +event_vector = + +; +; Features of a default Crypto adapter. +; +[Crypto adapter Features] +internal_port_op_new = +internal_port_op_fwd = +internal_port_qp_ev_bind = +session_private_data = + +; +; Features of a default Timer adapter. +; +[Timer adapter Features] +internal_port = +periodic = diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini new file mode 100644 index 0000000000..2a88b81e05 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'dpaa' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini new file mode 100644 index 0000000000..67988af042 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa2.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'dpaa2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini new file mode 100644 index 0000000000..7de3f7b91b --- /dev/null +++ b/doc/guides/eventdevs/features/dsw.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'distributed software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini new file mode 100644 index 0000000000..ac06d43d03 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'octeontx' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini new file mode 100644 index 0000000000..3bce593858 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'octeontx2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini new file mode 100644 index 0000000000..73922ca79f --- /dev/null +++ b/doc/guides/eventdevs/features/opdl.ini @@ -0,0 +1,14 @@ +; +; Supported features of 'Ordered Packet Distribution Library' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini new file mode 100644 index 0000000000..5d787a6220 --- /dev/null +++ b/doc/guides/eventdevs/features/sw.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index 2143025390..b11657f7ae 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -11,6 +11,7 @@ application through the eventdev API. :maxdepth: 2 :numbered: + overview cnxk dlb2 dpaa diff --git a/doc/guides/eventdevs/overview.rst b/doc/guides/eventdevs/overview.rst new file mode 100644 index 0000000000..3c5ee515f8 --- /dev/null +++ b/doc/guides/eventdevs/overview.rst @@ -0,0 +1,40 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(C) 2021 Marvell. + +Event Device Supported Functionality Matrices +============================================= + +Event device supported features +------------------------------- + +.. _table_eventdev_pmd_features: + +.. include:: overview_feature_table.txt + +Ethernet Rx adapter supported features +-------------------------------------- + +.. _table_eventdev_rx_adapter_features: + +.. include:: overview_rx_adptr_feature_table.txt + +Ethernet Tx adapter supported features +-------------------------------------- + +.. _table_eventdev_tx_adapter_features: + +.. include:: overview_tx_adptr_feature_table.txt + +Crypto device adapter supported features +---------------------------------------- + +.. _table_cryptodev_adapter_features: + +.. include:: overview_crypto_adptr_feature_table.txt + +Timer adapter supported features +-------------------------------- + +.. _table_timer_adapter_features: + +.. include:: overview_timer_adptr_feature_table.txt -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for octeontx platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx.ini | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini index ac06d43d03..ec044e6289 100644 --- a/doc/guides/eventdevs/features/octeontx.ini +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -4,11 +4,24 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_fwd = Y +session_private_data = Y [Timer adapter Features] +internal_port = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for octeontx2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx2.ini | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini index 3bce593858..05b84beb6e 100644 --- a/doc/guides/eventdevs/features/octeontx2.ini +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -4,11 +4,27 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_new = Y +internal_port_op_fwd = Y +internal_port_qp_ev_bind = Y [Timer adapter Features] +internal_port = Y +periodic = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for cn9k platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/cn9k.ini | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/guides/eventdevs/features/cn9k.ini b/doc/guides/eventdevs/features/cn9k.ini index 4b87ca93df..7a3ab4c533 100644 --- a/doc/guides/eventdevs/features/cn9k.ini +++ b/doc/guides/eventdevs/features/cn9k.ini @@ -4,11 +4,26 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_fwd = Y +session_private_data = Y [Timer adapter Features] +internal_port = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for cn10k platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/cn10k.ini | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/doc/guides/eventdevs/features/cn10k.ini b/doc/guides/eventdevs/features/cn10k.ini index c7ddde5a65..f57bccbdc6 100644 --- a/doc/guides/eventdevs/features/cn10k.ini +++ b/doc/guides/eventdevs/features/cn10k.ini @@ -4,11 +4,28 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y +event_vector = Y [Eth Tx adapter Features] +internal_port = Y +event_vector = Y [Crypto adapter Features] +internal_port_op_fwd = Y +session_private_data = Y [Timer adapter Features] +internal_port = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for dpaa platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/dpaa.ini | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini index 2a88b81e05..b73bfa02e5 100644 --- a/doc/guides/eventdevs/features/dpaa.ini +++ b/doc/guides/eventdevs/features/dpaa.ini @@ -4,11 +4,24 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +distributed_sched = Y +burst_mode = Y +nonseq_mode = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_new = Y +internal_port_qp_ev_bind = Y +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for dpaa2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/dpaa2.ini | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini index 67988af042..c935bd0cfc 100644 --- a/doc/guides/eventdevs/features/dpaa2.ini +++ b/doc/guides/eventdevs/features/dpaa2.ini @@ -4,11 +4,26 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +distributed_sched = Y +queue_all_types = Y +burst_mode = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_new = Y +internal_port_qp_ev_bind = Y +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for sw platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/sw.ini | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini index 5d787a6220..fe83088300 100644 --- a/doc/guides/eventdevs/features/sw.ini +++ b/doc/guides/eventdevs/features/sw.ini @@ -4,11 +4,26 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +event_qos = Y +burst_mode = Y +implicit_release_disable = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +multi_eventq = Y +override_flow_id = Y +event_vector = Y [Eth Tx adapter Features] +internal_port = Y +event_vector = Y [Crypto adapter Features] +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for opdl platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/opdl.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini index 73922ca79f..5cc35d3c77 100644 --- a/doc/guides/eventdevs/features/opdl.ini +++ b/doc/guides/eventdevs/features/opdl.ini @@ -4,11 +4,15 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +burst_mode = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] [Eth Tx adapter Features] [Crypto adapter Features] +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for dsw platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/dsw.ini | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini index 7de3f7b91b..c8bc6b3f1d 100644 --- a/doc/guides/eventdevs/features/dsw.ini +++ b/doc/guides/eventdevs/features/dsw.ini @@ -4,11 +4,20 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +distributed_sched = Y +burst_mode = Y +nonseq_mode = Y +multiple_queue_port = Y +carry_flow_id = Y [Eth Rx adapter Features] +multi_eventq = Y +override_flow_id = Y +event_vector = Y [Eth Tx adapter Features] [Crypto adapter Features] +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> In this commit, check is added for event device, Rx, Tx, Crypto and Timer adapters tables for all supported drivers. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated devtools/check-doc-vs-code.sh | 35 ++++++++ devtools/parse-event-support.sh | 149 ++++++++++++++++++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100755 devtools/parse-event-support.sh diff --git a/devtools/check-doc-vs-code.sh b/devtools/check-doc-vs-code.sh index c58c239c87..608d6e0e2e 100755 --- a/devtools/check-doc-vs-code.sh +++ b/devtools/check-doc-vs-code.sh @@ -66,11 +66,35 @@ check_rte_flow() # <driver> fi } +all_event_drivers() +{ + find $rootdir/drivers/event -mindepth 1 -maxdepth 1 -type d | + sed 's,.*/,,' | + sort +} + +check_event_dev() # <driver> +{ + code=$rootdir/drivers/event/$1 + doc=$rootdir/doc/guides/eventdevs/features/$1.ini + [ -d $code ] || return 0 + [ -f $doc ] || return 0 + report=$($selfdir/parse-event-support.sh $code $doc) + if [ -n "$report" ]; then + error "doc out of sync for $1" + echo "$report" | sed 's,^,\t,' + fi +} + if [ -z "$trusted_commit" ]; then # check all for driver in $(all_net_drivers); do check_rte_flow $driver done + + for driver in $(all_event_drivers); do + check_event_dev $driver + done exit $result fi @@ -81,4 +105,15 @@ if has_code_change 'RTE_FLOW_.*_TYPE_' || check_rte_flow $driver done fi + +if has_code_change 'RTE_EVENT_DEV_CAP_*' || + has_code_change 'RTE_EVENT_ETH_RX_ADAPTER_CAP_*' || + has_code_change 'RTE_EVENT_ETH_TX_ADAPTER_CAP_*' || + has_code_change 'RTE_EVENT_CRYPTO_ADAPTER_CAP_*' || + has_code_change 'RTE_EVENT_TIMER_ADAPTER_CAP_*' || + has_file_change 'doc/guides/eventdevs/features'; then + for driver in $(all_event_drivers); do + check_event_dev $driver + done +fi exit $result diff --git a/devtools/parse-event-support.sh b/devtools/parse-event-support.sh new file mode 100755 index 0000000000..d756977eec --- /dev/null +++ b/devtools/parse-event-support.sh @@ -0,0 +1,149 @@ +#! /bin/sh -e +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(C) 2021 Marvell. + +# Parse event dev support of a driver directory, +# and optionally show difference with a doc file in .ini format. + +dir=$1 # drivers/event/foo +ref=$2 # doc/guides/eventdevs/features/foo.ini + +if [ -z "$dir" ]; then + echo "directory argument is required" >&2 + exit 1 +fi + +# sorting order +export LC_COLLATE=C + +# generate INI section +list() # <title> <pattern> +{ + echo "[$1]" + git grep -who "$2[[:alnum:]_]*" $dir | sort -u | + awk 'sub(/'$2'/, "") {printf "%-20s = Y\n", tolower($0)}' +} + +event_dev_sched_support() +{ + title="Scheduling Features" + pattern=$(echo "RTE_EVENT_DEV_CAP_" | awk '{print toupper($0)}') + list "$title" "$pattern" | grep -vwE 'void|indirect|end' +} + +event_dev_rx_adptr_support() +{ + title="Eth Rx adapter Features" + pattern=$(echo "RTE_EVENT_ETH_RX_ADAPTER_CAP_" | + awk '{print toupper($0)}') + list "$title" "$pattern" | grep -vwE 'void|indirect|end' +} + +event_dev_tx_adptr_support() +{ + title="Eth Tx adapter Features" + pattern=$(echo "RTE_EVENT_ETH_TX_ADAPTER_CAP_" | + awk '{print toupper($0)}') + list "$title" "$pattern" | grep -vwE 'void|indirect|end' +} + +event_dev_crypto_adptr_support() +{ + title="Crypto adapter Features" + pattern=$(echo "RTE_EVENT_CRYPTO_ADAPTER_CAP_" | + awk '{print toupper($0)}') + list "$title" "$pattern" | grep -vwE 'void|indirect|end' +} + +event_dev_timer_adptr_support() +{ + title="Timer adapter Features" + pattern=$(echo "RTE_EVENT_TIMER_ADAPTER_CAP_" | + awk '{print toupper($0)}') + list "$title" "$pattern" | grep -vwE 'void|indirect|end' +} + +if [ -z "$ref" ]; then # generate full tables + event_dev_sched_support + echo + event_dev_rx_adptr_support + echo + event_dev_tx_adptr_support + echo + event_dev_crypto_adptr_support + echo + event_dev_timer_adptr_support + exit 0 +fi + +# compare with reference input +event_dev_sched_compare() +{ + section="Scheduling Features]" + { + event_dev_sched_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Scheduling Features ," # prefix with category name +} + +event_dev_rx_adptr_compare() +{ + section="Eth Rx adapter Features]" + { + event_dev_rx_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Eth Rx adapter Features ," # prefix with category name +} + +event_dev_tx_adptr_compare() +{ + section="Eth Tx adapter Features]" + { + event_dev_tx_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Eth Tx adapter Features ," # prefix with category name +} + +event_dev_crypto_adptr_compare() +{ + section="Crypto adapter Features]" + { + event_dev_crypto_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Crypto adapter Features ," # prefix with category name +} + +event_dev_crypto_adptr_compare() +{ + section="Timer adapter Features]" + { + event_dev_timer_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Timer adapter Features ," # prefix with category name +} + +event_dev_sched_compare +event_dev_rx_adptr_compare +event_dev_tx_adptr_compare +event_dev_crypto_adptr_compare +event_dev_crypto_adptr_compare -- 2.25.1
On Fri, Oct 22, 2021 at 1:18 PM <skori@marvell.com> wrote: > > From: Sunil Kumar Kori <skori@marvell.com> > > Patch adds skeleton for feature matrices for event dev > and Rx/Tx adapters. > > Along with, .ini files are added for all supported PMDs. > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Please fix the below. doc out of sync for dsw Eth Rx adapter Features event_vector Eth Rx adapter Features multi_eventq Eth Rx adapter Features override_flow_id doc out of sync for sw Eth Rx adapter Features event_vector Eth Rx adapter Features multi_eventq Eth Rx adapter Features override_flow_id Eth Tx adapter Features event_vector Eth Tx adapter Features internal_port > --- > v5: > - Rebased to 21.11 > - Added feature matrix for cnxk. > v4: > - Rebased to 20.02 > v3: > - Removed .txt files to generate tables. > - Use conf.py script to generate tables. > - Add .ini file for all supported PMDs. > v2: > - Review comments incorporated > > .gitignore | 2 ++ > doc/guides/conf.py | 12 ++++++++- > doc/guides/eventdevs/features/cnxk.ini | 8 ++++++ > doc/guides/eventdevs/features/default.ini | 30 +++++++++++++++++++++ > doc/guides/eventdevs/features/dpaa.ini | 8 ++++++ > doc/guides/eventdevs/features/dpaa2.ini | 8 ++++++ > doc/guides/eventdevs/features/dsw.ini | 8 ++++++ > doc/guides/eventdevs/features/octeontx.ini | 8 ++++++ > doc/guides/eventdevs/features/octeontx2.ini | 8 ++++++ > doc/guides/eventdevs/features/opdl.ini | 8 ++++++ > doc/guides/eventdevs/features/sw.ini | 8 ++++++ > doc/guides/eventdevs/index.rst | 1 + > doc/guides/eventdevs/overview.rst | 19 +++++++++++++ > 13 files changed, 127 insertions(+), 1 deletion(-) > create mode 100644 doc/guides/eventdevs/features/cnxk.ini > create mode 100644 doc/guides/eventdevs/features/default.ini > create mode 100644 doc/guides/eventdevs/features/dpaa.ini > create mode 100644 doc/guides/eventdevs/features/dpaa2.ini > create mode 100644 doc/guides/eventdevs/features/dsw.ini > create mode 100644 doc/guides/eventdevs/features/octeontx.ini > create mode 100644 doc/guides/eventdevs/features/octeontx2.ini > create mode 100644 doc/guides/eventdevs/features/opdl.ini > create mode 100644 doc/guides/eventdevs/features/sw.ini > create mode 100644 doc/guides/eventdevs/overview.rst > > diff --git a/.gitignore b/.gitignore > index b19c0717e6..b3fc783945 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -14,6 +14,8 @@ doc/guides/compressdevs/overview_feature_table.txt > doc/guides/regexdevs/overview_feature_table.txt > doc/guides/vdpadevs/overview_feature_table.txt > doc/guides/bbdevs/overview_feature_table.txt > +doc/guides/eventdevs/overview_feature_table.txt > +doc/guides/eventdevs/overview_adptr_feature_table.txt > > # ignore generated ctags/cscope files > cscope.out.po > diff --git a/doc/guides/conf.py b/doc/guides/conf.py > index 67d2dd62c7..9d8e20e5fc 100644 > --- a/doc/guides/conf.py > +++ b/doc/guides/conf.py > @@ -41,7 +41,7 @@ > master_doc = 'index' > > # Maximum feature description string length > -feature_str_len = 30 > +feature_str_len = 45 > > # Figures, tables and code-blocks automatically numbered if they have caption > numfig = True > @@ -388,6 +388,16 @@ def setup(app): > 'Features', > 'Features availability in bbdev drivers', > 'Feature') > + table_file = dirname(__file__) + '/eventdevs/overview_feature_table.txt' > + generate_overview_table(table_file, 1, > + 'Features', > + 'Features availability in eventdev drivers', > + 'Feature') > + table_file = dirname(__file__) + '/eventdevs/overview_adptr_feature_table.txt' > + generate_overview_table(table_file, 2, > + 'Adapter Features', > + 'Features availability for adapters', > + 'Feature') > > if LooseVersion(sphinx_version) < LooseVersion('1.3.1'): > print('Upgrade sphinx to version >= 1.3.1 for ' > diff --git a/doc/guides/eventdevs/features/cnxk.ini b/doc/guides/eventdevs/features/cnxk.ini > new file mode 100644 > index 0000000000..a461966d69 > --- /dev/null > +++ b/doc/guides/eventdevs/features/cnxk.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'cnxk' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini > new file mode 100644 > index 0000000000..d007d7a69e > --- /dev/null > +++ b/doc/guides/eventdevs/features/default.ini > @@ -0,0 +1,30 @@ > +; > +; Features of a default eventdev driver. > +; > +; This file defines the features that are valid for inclusion in > +; the other driver files and also the order that they appear in > +; the features table in the documentation. > +; > +[Features] > +Event queue priority based scheduling = > +Event priority based scheduling = > +Event device distributed scheduling = > +Event device non sequential mode = > +Event queue all types = > +Burst mode enqueue/dequeue = > +Event port implicit release disable = > +Runtime event queue/port linking = > +Multi queue linking per port = > + > +; > +; Features of a default adapter. > +; > +[Adapter Features] > +Eth Rx/Tx adapter on internal port = > +Multiple event queues per ethdev = > +Override flow ID = > +Crypto adapter new event enqueue = > +Crypto adapter forwarded event enqueue = > +Crypto queue pair mapping to event queue = > +Crypto adapter session data store/retrieve = > +Timer adapter support in H/W = > diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini > new file mode 100644 > index 0000000000..3cf172f408 > --- /dev/null > +++ b/doc/guides/eventdevs/features/dpaa.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'dpaa' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini > new file mode 100644 > index 0000000000..822a82ef3e > --- /dev/null > +++ b/doc/guides/eventdevs/features/dpaa2.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'dpaa2' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini > new file mode 100644 > index 0000000000..230737045b > --- /dev/null > +++ b/doc/guides/eventdevs/features/dsw.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'distributed software' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini > new file mode 100644 > index 0000000000..d1b1fe6d62 > --- /dev/null > +++ b/doc/guides/eventdevs/features/octeontx.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'octeontx' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini > new file mode 100644 > index 0000000000..96f1af0dca > --- /dev/null > +++ b/doc/guides/eventdevs/features/octeontx2.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'octeontx2' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini > new file mode 100644 > index 0000000000..020808fced > --- /dev/null > +++ b/doc/guides/eventdevs/features/opdl.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of 'Ordered Packet Distribution Library' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini > new file mode 100644 > index 0000000000..a5789f56d4 > --- /dev/null > +++ b/doc/guides/eventdevs/features/sw.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'software' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst > index 2143025390..b11657f7ae 100644 > --- a/doc/guides/eventdevs/index.rst > +++ b/doc/guides/eventdevs/index.rst > @@ -11,6 +11,7 @@ application through the eventdev API. > :maxdepth: 2 > :numbered: > > + overview > cnxk > dlb2 > dpaa > diff --git a/doc/guides/eventdevs/overview.rst b/doc/guides/eventdevs/overview.rst > new file mode 100644 > index 0000000000..5d34d2c57b > --- /dev/null > +++ b/doc/guides/eventdevs/overview.rst > @@ -0,0 +1,19 @@ > +.. SPDX-License-Identifier: BSD-3-Clause > + Copyright(C) 2021 Marvell. > + > +Event Device Supported Functionality Matrices > +============================================= > + > +Event Device Supported Feature Flags > +------------------------------------ > + > +.. _table_eventdev_pmd_features: > + > +.. include:: overview_feature_table.txt > + > +Adapter Supported Feature Flags > +------------------------------- > + > +.. _table_adapter_features: > + > +.. include:: overview_adptr_feature_table.txt > -- > 2.25.1 >
From: Sunil Kumar Kori <skori@marvell.com> Patch adds skeleton for feature matrices for event dev and Rx/Tx adapters. Along with, .ini files are added for all supported PMDs. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated .gitignore | 5 ++ doc/guides/conf.py | 25 ++++++++++ doc/guides/eventdevs/features/cn10k.ini | 14 ++++++ doc/guides/eventdevs/features/cn9k.ini | 14 ++++++ doc/guides/eventdevs/features/default.ini | 51 +++++++++++++++++++++ doc/guides/eventdevs/features/dpaa.ini | 14 ++++++ doc/guides/eventdevs/features/dpaa2.ini | 14 ++++++ doc/guides/eventdevs/features/dsw.ini | 14 ++++++ doc/guides/eventdevs/features/octeontx.ini | 14 ++++++ doc/guides/eventdevs/features/octeontx2.ini | 14 ++++++ doc/guides/eventdevs/features/opdl.ini | 14 ++++++ doc/guides/eventdevs/features/sw.ini | 14 ++++++ doc/guides/eventdevs/index.rst | 1 + doc/guides/eventdevs/overview.rst | 40 ++++++++++++++++ 14 files changed, 248 insertions(+) create mode 100644 doc/guides/eventdevs/features/cn10k.ini create mode 100644 doc/guides/eventdevs/features/cn9k.ini create mode 100644 doc/guides/eventdevs/features/default.ini create mode 100644 doc/guides/eventdevs/features/dpaa.ini create mode 100644 doc/guides/eventdevs/features/dpaa2.ini create mode 100644 doc/guides/eventdevs/features/dsw.ini create mode 100644 doc/guides/eventdevs/features/octeontx.ini create mode 100644 doc/guides/eventdevs/features/octeontx2.ini create mode 100644 doc/guides/eventdevs/features/opdl.ini create mode 100644 doc/guides/eventdevs/features/sw.ini create mode 100644 doc/guides/eventdevs/overview.rst diff --git a/.gitignore b/.gitignore index b98a43a601..212c7aa28e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,11 @@ doc/guides/regexdevs/overview_feature_table.txt doc/guides/vdpadevs/overview_feature_table.txt doc/guides/bbdevs/overview_feature_table.txt doc/guides/gpus/overview_feature_table.txt +doc/guides/eventdevs/overview_feature_table.txt +doc/guides/eventdevs/overview_rx_adptr_feature_table.txt +doc/guides/eventdevs/overview_tx_adptr_feature_table.txt +doc/guides/eventdevs/overview_crypto_adptr_feature_table.txt +doc/guides/eventdevs/overview_timer_adptr_feature_table.txt # ignore generated ctags/cscope files cscope.out.po diff --git a/doc/guides/conf.py b/doc/guides/conf.py index e6ce929bc8..1743ce301f 100644 --- a/doc/guides/conf.py +++ b/doc/guides/conf.py @@ -401,6 +401,31 @@ def setup(app): 'Features', 'Features availability in GPU drivers', 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_feature_table.txt' + generate_overview_table(table_file, 1, + 'Scheduling Features', + 'Features availability in eventdev drivers', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_rx_adptr_feature_table.txt' + generate_overview_table(table_file, 2, + 'Eth Rx adapter Features', + 'Features availability for Ethdev Rx adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_tx_adptr_feature_table.txt' + generate_overview_table(table_file, 3, + 'Eth Tx adapter Features', + 'Features availability for Ethdev Tx adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_crypto_adptr_feature_table.txt' + generate_overview_table(table_file, 4, + 'Crypto adapter Features', + 'Features availability for Crypto adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_timer_adptr_feature_table.txt' + generate_overview_table(table_file, 5, + 'Timer adapter Features', + 'Features availability for Timer adapters', + 'Feature') if LooseVersion(sphinx_version) < LooseVersion('1.3.1'): print('Upgrade sphinx to version >= 1.3.1 for ' diff --git a/doc/guides/eventdevs/features/cn10k.ini b/doc/guides/eventdevs/features/cn10k.ini new file mode 100644 index 0000000000..c7ddde5a65 --- /dev/null +++ b/doc/guides/eventdevs/features/cn10k.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'cn10k' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/cn9k.ini b/doc/guides/eventdevs/features/cn9k.ini new file mode 100644 index 0000000000..4b87ca93df --- /dev/null +++ b/doc/guides/eventdevs/features/cn9k.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'cn9k' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini new file mode 100644 index 0000000000..5b16c45193 --- /dev/null +++ b/doc/guides/eventdevs/features/default.ini @@ -0,0 +1,51 @@ +; +; Features of a default eventdev driver. +; +; This file defines the features that are valid for inclusion in +; the other driver files and also the order that they appear in +; the features table in the documentation. +; +[Scheduling Features] +queue_qos = +event_qos = +distributed_sched = +queue_all_types = +burst_mode = +implicit_release_disable = +nonseq_mode = +runtime_port_link = +multiple_queue_port = +carry_flow_id = +maintenance_free = + +; +; Features of a default Ethernet Rx adapter. +; +[Eth Rx adapter Features] +internal_port = +multi_eventq = +override_flow_id = +event_vector = + +; +; Features of a default Ethernet Tx adapter. +; +[Eth Tx adapter Features] +internal_port = +event_vector = + +; +; Features of a default Crypto adapter. +; +[Crypto adapter Features] +internal_port_op_new = +internal_port_op_fwd = +internal_port_qp_ev_bind = +session_private_data = + +; +; Features of a default Timer adapter. +; +[Timer adapter Features] +internal_port = +periodic = diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini new file mode 100644 index 0000000000..2a88b81e05 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'dpaa' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini new file mode 100644 index 0000000000..67988af042 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa2.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'dpaa2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini new file mode 100644 index 0000000000..7de3f7b91b --- /dev/null +++ b/doc/guides/eventdevs/features/dsw.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'distributed software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini new file mode 100644 index 0000000000..ac06d43d03 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'octeontx' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini new file mode 100644 index 0000000000..3bce593858 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'octeontx2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini new file mode 100644 index 0000000000..73922ca79f --- /dev/null +++ b/doc/guides/eventdevs/features/opdl.ini @@ -0,0 +1,14 @@ +; +; Supported features of 'Ordered Packet Distribution Library' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini new file mode 100644 index 0000000000..5d787a6220 --- /dev/null +++ b/doc/guides/eventdevs/features/sw.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index 2143025390..b11657f7ae 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -11,6 +11,7 @@ application through the eventdev API. :maxdepth: 2 :numbered: + overview cnxk dlb2 dpaa diff --git a/doc/guides/eventdevs/overview.rst b/doc/guides/eventdevs/overview.rst new file mode 100644 index 0000000000..3c5ee515f8 --- /dev/null +++ b/doc/guides/eventdevs/overview.rst @@ -0,0 +1,40 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(C) 2021 Marvell. + +Event Device Supported Functionality Matrices +============================================= + +Event device supported features +------------------------------- + +.. _table_eventdev_pmd_features: + +.. include:: overview_feature_table.txt + +Ethernet Rx adapter supported features +-------------------------------------- + +.. _table_eventdev_rx_adapter_features: + +.. include:: overview_rx_adptr_feature_table.txt + +Ethernet Tx adapter supported features +-------------------------------------- + +.. _table_eventdev_tx_adapter_features: + +.. include:: overview_tx_adptr_feature_table.txt + +Crypto device adapter supported features +---------------------------------------- + +.. _table_cryptodev_adapter_features: + +.. include:: overview_crypto_adptr_feature_table.txt + +Timer adapter supported features +-------------------------------- + +.. _table_timer_adapter_features: + +.. include:: overview_timer_adptr_feature_table.txt -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for octeontx platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx.ini | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini index ac06d43d03..ec044e6289 100644 --- a/doc/guides/eventdevs/features/octeontx.ini +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -4,11 +4,24 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_fwd = Y +session_private_data = Y [Timer adapter Features] +internal_port = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for octeontx2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx2.ini | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini index 3bce593858..05b84beb6e 100644 --- a/doc/guides/eventdevs/features/octeontx2.ini +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -4,11 +4,27 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_new = Y +internal_port_op_fwd = Y +internal_port_qp_ev_bind = Y [Timer adapter Features] +internal_port = Y +periodic = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for cn9k platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/cn9k.ini | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/guides/eventdevs/features/cn9k.ini b/doc/guides/eventdevs/features/cn9k.ini index 4b87ca93df..7a3ab4c533 100644 --- a/doc/guides/eventdevs/features/cn9k.ini +++ b/doc/guides/eventdevs/features/cn9k.ini @@ -4,11 +4,26 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_fwd = Y +session_private_data = Y [Timer adapter Features] +internal_port = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for cn10k platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/cn10k.ini | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/doc/guides/eventdevs/features/cn10k.ini b/doc/guides/eventdevs/features/cn10k.ini index c7ddde5a65..f57bccbdc6 100644 --- a/doc/guides/eventdevs/features/cn10k.ini +++ b/doc/guides/eventdevs/features/cn10k.ini @@ -4,11 +4,28 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y +event_vector = Y [Eth Tx adapter Features] +internal_port = Y +event_vector = Y [Crypto adapter Features] +internal_port_op_fwd = Y +session_private_data = Y [Timer adapter Features] +internal_port = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for dpaa platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/dpaa.ini | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini index 2a88b81e05..b73bfa02e5 100644 --- a/doc/guides/eventdevs/features/dpaa.ini +++ b/doc/guides/eventdevs/features/dpaa.ini @@ -4,11 +4,24 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +distributed_sched = Y +burst_mode = Y +nonseq_mode = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_new = Y +internal_port_qp_ev_bind = Y +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for dpaa2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/dpaa2.ini | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini index 67988af042..c935bd0cfc 100644 --- a/doc/guides/eventdevs/features/dpaa2.ini +++ b/doc/guides/eventdevs/features/dpaa2.ini @@ -4,11 +4,26 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +distributed_sched = Y +queue_all_types = Y +burst_mode = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_new = Y +internal_port_qp_ev_bind = Y +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for sw platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/sw.ini | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini index 5d787a6220..8c89d3b8d2 100644 --- a/doc/guides/eventdevs/features/sw.ini +++ b/doc/guides/eventdevs/features/sw.ini @@ -4,11 +4,24 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +event_qos = Y +burst_mode = Y +implicit_release_disable = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +multi_eventq = Y +override_flow_id = Y +event_vector = Y [Eth Tx adapter Features] [Crypto adapter Features] +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for opdl platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/opdl.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini index 73922ca79f..5cc35d3c77 100644 --- a/doc/guides/eventdevs/features/opdl.ini +++ b/doc/guides/eventdevs/features/opdl.ini @@ -4,11 +4,15 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +burst_mode = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] [Eth Tx adapter Features] [Crypto adapter Features] +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for dsw platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/dsw.ini | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini index 7de3f7b91b..c8bc6b3f1d 100644 --- a/doc/guides/eventdevs/features/dsw.ini +++ b/doc/guides/eventdevs/features/dsw.ini @@ -4,11 +4,20 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +distributed_sched = Y +burst_mode = Y +nonseq_mode = Y +multiple_queue_port = Y +carry_flow_id = Y [Eth Rx adapter Features] +multi_eventq = Y +override_flow_id = Y +event_vector = Y [Eth Tx adapter Features] [Crypto adapter Features] +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> In this commit, check is added for event device, Rx, Tx, Crypto and Timer adapters tables for all supported drivers. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated devtools/check-doc-vs-code.sh | 35 ++++++++ devtools/parse-event-support.sh | 149 ++++++++++++++++++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100755 devtools/parse-event-support.sh diff --git a/devtools/check-doc-vs-code.sh b/devtools/check-doc-vs-code.sh index c58c239c87..608d6e0e2e 100755 --- a/devtools/check-doc-vs-code.sh +++ b/devtools/check-doc-vs-code.sh @@ -66,11 +66,35 @@ check_rte_flow() # <driver> fi } +all_event_drivers() +{ + find $rootdir/drivers/event -mindepth 1 -maxdepth 1 -type d | + sed 's,.*/,,' | + sort +} + +check_event_dev() # <driver> +{ + code=$rootdir/drivers/event/$1 + doc=$rootdir/doc/guides/eventdevs/features/$1.ini + [ -d $code ] || return 0 + [ -f $doc ] || return 0 + report=$($selfdir/parse-event-support.sh $code $doc) + if [ -n "$report" ]; then + error "doc out of sync for $1" + echo "$report" | sed 's,^,\t,' + fi +} + if [ -z "$trusted_commit" ]; then # check all for driver in $(all_net_drivers); do check_rte_flow $driver done + + for driver in $(all_event_drivers); do + check_event_dev $driver + done exit $result fi @@ -81,4 +105,15 @@ if has_code_change 'RTE_FLOW_.*_TYPE_' || check_rte_flow $driver done fi + +if has_code_change 'RTE_EVENT_DEV_CAP_*' || + has_code_change 'RTE_EVENT_ETH_RX_ADAPTER_CAP_*' || + has_code_change 'RTE_EVENT_ETH_TX_ADAPTER_CAP_*' || + has_code_change 'RTE_EVENT_CRYPTO_ADAPTER_CAP_*' || + has_code_change 'RTE_EVENT_TIMER_ADAPTER_CAP_*' || + has_file_change 'doc/guides/eventdevs/features'; then + for driver in $(all_event_drivers); do + check_event_dev $driver + done +fi exit $result diff --git a/devtools/parse-event-support.sh b/devtools/parse-event-support.sh new file mode 100755 index 0000000000..d756977eec --- /dev/null +++ b/devtools/parse-event-support.sh @@ -0,0 +1,149 @@ +#! /bin/sh -e +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(C) 2021 Marvell. + +# Parse event dev support of a driver directory, +# and optionally show difference with a doc file in .ini format. + +dir=$1 # drivers/event/foo +ref=$2 # doc/guides/eventdevs/features/foo.ini + +if [ -z "$dir" ]; then + echo "directory argument is required" >&2 + exit 1 +fi + +# sorting order +export LC_COLLATE=C + +# generate INI section +list() # <title> <pattern> +{ + echo "[$1]" + git grep -who "$2[[:alnum:]_]*" $dir | sort -u | + awk 'sub(/'$2'/, "") {printf "%-20s = Y\n", tolower($0)}' +} + +event_dev_sched_support() +{ + title="Scheduling Features" + pattern=$(echo "RTE_EVENT_DEV_CAP_" | awk '{print toupper($0)}') + list "$title" "$pattern" | grep -vwE 'void|indirect|end' +} + +event_dev_rx_adptr_support() +{ + title="Eth Rx adapter Features" + pattern=$(echo "RTE_EVENT_ETH_RX_ADAPTER_CAP_" | + awk '{print toupper($0)}') + list "$title" "$pattern" | grep -vwE 'void|indirect|end' +} + +event_dev_tx_adptr_support() +{ + title="Eth Tx adapter Features" + pattern=$(echo "RTE_EVENT_ETH_TX_ADAPTER_CAP_" | + awk '{print toupper($0)}') + list "$title" "$pattern" | grep -vwE 'void|indirect|end' +} + +event_dev_crypto_adptr_support() +{ + title="Crypto adapter Features" + pattern=$(echo "RTE_EVENT_CRYPTO_ADAPTER_CAP_" | + awk '{print toupper($0)}') + list "$title" "$pattern" | grep -vwE 'void|indirect|end' +} + +event_dev_timer_adptr_support() +{ + title="Timer adapter Features" + pattern=$(echo "RTE_EVENT_TIMER_ADAPTER_CAP_" | + awk '{print toupper($0)}') + list "$title" "$pattern" | grep -vwE 'void|indirect|end' +} + +if [ -z "$ref" ]; then # generate full tables + event_dev_sched_support + echo + event_dev_rx_adptr_support + echo + event_dev_tx_adptr_support + echo + event_dev_crypto_adptr_support + echo + event_dev_timer_adptr_support + exit 0 +fi + +# compare with reference input +event_dev_sched_compare() +{ + section="Scheduling Features]" + { + event_dev_sched_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Scheduling Features ," # prefix with category name +} + +event_dev_rx_adptr_compare() +{ + section="Eth Rx adapter Features]" + { + event_dev_rx_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Eth Rx adapter Features ," # prefix with category name +} + +event_dev_tx_adptr_compare() +{ + section="Eth Tx adapter Features]" + { + event_dev_tx_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Eth Tx adapter Features ," # prefix with category name +} + +event_dev_crypto_adptr_compare() +{ + section="Crypto adapter Features]" + { + event_dev_crypto_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Crypto adapter Features ," # prefix with category name +} + +event_dev_crypto_adptr_compare() +{ + section="Timer adapter Features]" + { + event_dev_timer_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Timer adapter Features ," # prefix with category name +} + +event_dev_sched_compare +event_dev_rx_adptr_compare +event_dev_tx_adptr_compare +event_dev_crypto_adptr_compare +event_dev_crypto_adptr_compare -- 2.25.1
On Mon, Nov 22, 2021 at 1:24 PM <skori@marvell.com> wrote:
>
> From: Sunil Kumar Kori <skori@marvell.com>
>
> Patch updates eventdev and adapters feature matrices for
> cn10k platform.
>
> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
> ---
> v7:
> - Rebased to 21.11 rc3
> - Fix Tx adapter capabilities for SW driver
> v6:
> - Rebased to 21.11 rc2
> - Added feature matrices for all supported drivers
> - Added doc vs code check script
>
> v5:
> - Rebased to 21.11
> - Added feature matrix for cnxk.
> v4:
> - Rebased to 20.02
> v3:
> - Removed .txt files to generate tables.
> - Use conf.py script to generate tables.
> - Add .ini file for all supported PMDs.
> v2:
> - Review comments incorporated
>
> doc/guides/eventdevs/features/cn10k.ini | 17 +++++++++++++++++
devtools/parse-event-support.sh scripts looks for
doc/guides/eventdevs/features/cnxk.ini
based on driver file. Please converge cn9k.ini and cn10k.ini as cnxk.ini
On Mon, Nov 22, 2021 at 1:33 PM <skori@marvell.com> wrote: > > From: Sunil Kumar Kori <skori@marvell.com> > > In this commit, check is added for event device, Rx, > Tx, Crypto and Timer adapters tables for all supported > drivers. > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Following errors[2] need to be taken care in devtools/parse-event-support.sh by detecting it is using a common Rx adapter or not? I have spent some time fixing it, Please find below a test patch for same[1]. Please send the next version with fix. I am planning to merge all doc patches(1-10) to next-event-dev tree and delegate this patch(11/11) to Thomas as he is the maintainer for tooling. [2] doc out of sync for dsw Eth Rx adapter Features event_vector Eth Rx adapter Features multi_eventq Eth Rx adapter Features override_flow_id doc out of sync for sw Eth Rx adapter Features event_vector Eth Rx adapter Features multi_eventq Eth Rx adapter Features override_flow_id > --- > v7: > - Rebased to 21.11 rc3 > - Fix Tx adapter capabilities for SW driver > v6: > - Rebased to 21.11 rc2 > - Added feature matrices for all supported drivers > - Added doc vs code check script > > v5: > - Rebased to 21.11 > - Added feature matrix for cnxk. > v4: > - Rebased to 20.02 > v3: > - Removed .txt files to generate tables. > - Use conf.py script to generate tables. > - Add .ini file for all supported PMDs. > v2: > - Review comments incorporated > > devtools/check-doc-vs-code.sh | 35 ++++++++ > devtools/parse-event-support.sh | 149 ++++++++++++++++++++++++++++++++ > 2 files changed, 184 insertions(+) > create mode 100755 devtools/parse-event-support.sh > > diff --git a/devtools/check-doc-vs-code.sh b/devtools/check-doc-vs-code.sh > index c58c239c87..608d6e0e2e 100755 > --- a/devtools/check-doc-vs-code.sh > +++ b/devtools/check-doc-vs-code.sh > @@ -66,11 +66,35 @@ check_rte_flow() # <driver> > fi > } > > +all_event_drivers() > +{ > + find $rootdir/drivers/event -mindepth 1 -maxdepth 1 -type d | > + sed 's,.*/,,' | > + sort > +} > + > +check_event_dev() # <driver> > +{ > + code=$rootdir/drivers/event/$1 > + doc=$rootdir/doc/guides/eventdevs/features/$1.ini > + [ -d $code ] || return 0 > + [ -f $doc ] || return 0 > + report=$($selfdir/parse-event-support.sh $code $doc) > + if [ -n "$report" ]; then > + error "doc out of sync for $1" > + echo "$report" | sed 's,^,\t,' > + fi > +} > + > if [ -z "$trusted_commit" ]; then > # check all > for driver in $(all_net_drivers); do > check_rte_flow $driver > done > + > + for driver in $(all_event_drivers); do > + check_event_dev $driver > + done > exit $result > fi > > @@ -81,4 +105,15 @@ if has_code_change 'RTE_FLOW_.*_TYPE_' || > check_rte_flow $driver > done > fi > + > +if has_code_change 'RTE_EVENT_DEV_CAP_*' || > + has_code_change 'RTE_EVENT_ETH_RX_ADAPTER_CAP_*' || > + has_code_change 'RTE_EVENT_ETH_TX_ADAPTER_CAP_*' || > + has_code_change 'RTE_EVENT_CRYPTO_ADAPTER_CAP_*' || > + has_code_change 'RTE_EVENT_TIMER_ADAPTER_CAP_*' || > + has_file_change 'doc/guides/eventdevs/features'; then > + for driver in $(all_event_drivers); do > + check_event_dev $driver > + done > +fi > exit $result > diff --git a/devtools/parse-event-support.sh b/devtools/parse-event-support.sh > new file mode 100755 > index 0000000000..d756977eec > --- /dev/null > +++ b/devtools/parse-event-support.sh > @@ -0,0 +1,149 @@ > +#! /bin/sh -e > +# SPDX-License-Identifier: BSD-3-Clause > +# Copyright(C) 2021 Marvell. > + > +# Parse event dev support of a driver directory, > +# and optionally show difference with a doc file in .ini format. > + > +dir=$1 # drivers/event/foo > +ref=$2 # doc/guides/eventdevs/features/foo.ini > + > +if [ -z "$dir" ]; then > + echo "directory argument is required" >&2 > + exit 1 > +fi > + > +# sorting order > +export LC_COLLATE=C > + > +# generate INI section > +list() # <title> <pattern> > +{ > + echo "[$1]" > + git grep -who "$2[[:alnum:]_]*" $dir | sort -u | > + awk 'sub(/'$2'/, "") {printf "%-20s = Y\n", tolower($0)}' > +} > + > +event_dev_sched_support() > +{ > + title="Scheduling Features" > + pattern=$(echo "RTE_EVENT_DEV_CAP_" | awk '{print toupper($0)}') > + list "$title" "$pattern" | grep -vwE 'void|indirect|end' void| in... copy-paste issue from rte_flow. > +} > + > +event_dev_rx_adptr_support() > +{ > + title="Eth Rx adapter Features" > + pattern=$(echo "RTE_EVENT_ETH_RX_ADAPTER_CAP_" | > + awk '{print toupper($0)}') > + list "$title" "$pattern" | grep -vwE 'void|indirect|end' > +} > + > +event_dev_tx_adptr_support() > +{ > + title="Eth Tx adapter Features" > + pattern=$(echo "RTE_EVENT_ETH_TX_ADAPTER_CAP_" | > + awk '{print toupper($0)}') > + list "$title" "$pattern" | grep -vwE 'void|indirect|end' > +} > + > +event_dev_crypto_adptr_support() > +{ > + title="Crypto adapter Features" > + pattern=$(echo "RTE_EVENT_CRYPTO_ADAPTER_CAP_" | > + awk '{print toupper($0)}') > + list "$title" "$pattern" | grep -vwE 'void|indirect|end' > +} > + > +event_dev_timer_adptr_support() > +{ > + title="Timer adapter Features" > + pattern=$(echo "RTE_EVENT_TIMER_ADAPTER_CAP_" | > + awk '{print toupper($0)}') > + list "$title" "$pattern" | grep -vwE 'void|indirect|end' > +} > + > +if [ -z "$ref" ]; then # generate full tables > + event_dev_sched_support > + echo > + event_dev_rx_adptr_support > + echo > + event_dev_tx_adptr_support > + echo > + event_dev_crypto_adptr_support > + echo > + event_dev_timer_adptr_support > + exit 0 > +fi > + > +# compare with reference input > +event_dev_sched_compare() > +{ > + section="Scheduling Features]" > + { > + event_dev_sched_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Scheduling Features ," # prefix with category name > +} > + > +event_dev_rx_adptr_compare() > +{ > + section="Eth Rx adapter Features]" > + { > + event_dev_rx_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Eth Rx adapter Features ," # prefix with category name > +} > + > +event_dev_tx_adptr_compare() > +{ > + section="Eth Tx adapter Features]" > + { > + event_dev_tx_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Eth Tx adapter Features ," # prefix with category name > +} > + > +event_dev_crypto_adptr_compare() > +{ > + section="Crypto adapter Features]" > + { > + event_dev_crypto_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Crypto adapter Features ," # prefix with category name > +} > + > +event_dev_crypto_adptr_compare() event_dev_crypto_timer_compare > +{ > + section="Timer adapter Features]" > + { > + event_dev_timer_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Timer adapter Features ," # prefix with category name > +} > + > +event_dev_sched_compare > +event_dev_rx_adptr_compare > +event_dev_tx_adptr_compare > +event_dev_crypto_adptr_compare > +event_dev_crypto_adptr_compare event_dev_crypto_timer_compare [1 event_dev_crypto_adptr_support() @@ -52,7 +65,7 @@ event_dev_crypto_adptr_support() title="Crypto adapter Features" pattern=$(echo "RTE_EVENT_CRYPTO_ADAPTER_CAP_" | awk '{print toupper($0)}') - list "$title" "$pattern" | grep -vwE 'void|indirect|end' + list "$title" "$pattern" "" } event_dev_timer_adptr_support() @@ -60,7 +73,7 @@ event_dev_timer_adptr_support() title="Timer adapter Features" pattern=$(echo "RTE_EVENT_TIMER_ADAPTER_CAP_" | awk '{print toupper($0)}') - list "$title" "$pattern" | grep -vwE 'void|indirect|end' + list "$title" "$pattern" "" } if [ -z "$ref" ]; then # generate full tables @@ -129,7 +142,7 @@ event_dev_crypto_adptr_compare() sed "s,^,Crypto adapter Features ," # prefix with category name } -event_dev_crypto_adptr_compare() +event_dev_timer_adptr_compare() { section="Timer adapter Features]" { @@ -146,4 +159,4 @@ event_dev_sched_compare event_dev_rx_adptr_compare event_dev_tx_adptr_compare event_dev_crypto_adptr_compare -event_dev_crypto_adptr_compare +event_dev_timer_adptr_compare] diff --git a/devtools/parse-event-support.sh b/devtools/parse-event-support.sh index d756977eec..f8e6bb0db2 100755 --- a/devtools/parse-event-support.sh +++ b/devtools/parse-event-support.sh @@ -16,19 +16,31 @@ fi # sorting order export LC_COLLATE=C +check_sw_capa() +{ + driver=$(echo "$dir" | cut -d / -f 3) + if [ "$driver" == "dsw" ] || [ "$driver" == "sw" ] ; then + return 1 + else + return 0 + fi +} + # generate INI section -list() # <title> <pattern> +list() # <title> <pattern> <extra_patterns> { echo "[$1]" - git grep -who "$2[[:alnum:]_]*" $dir | sort -u | - awk 'sub(/'$2'/, "") {printf "%-20s = Y\n", tolower($0)}' + words=$(git grep -who "$2[[:alnum:]_]*" $dir) + words+=$(echo -e "$3") + echo "$words" | sort -u | + awk 'sub(/'$2'/, "") {printf "%-20s = Y\n", tolower($0)}' } event_dev_sched_support() { title="Scheduling Features" pattern=$(echo "RTE_EVENT_DEV_CAP_" | awk '{print toupper($0)}') - list "$title" "$pattern" | grep -vwE 'void|indirect|end' + list "$title" "$pattern" "" } event_dev_rx_adptr_support() @@ -36,7 +48,8 @@ event_dev_rx_adptr_support() title="Eth Rx adapter Features" pattern=$(echo "RTE_EVENT_ETH_RX_ADAPTER_CAP_" | awk '{print toupper($0)}') - list "$title" "$pattern" | grep -vwE 'void|indirect|end' + check_sw_capa || extra='RTE_EVENT_ETH_RX_ADAPTER_CAP_OVERRIDE_FLOW_ID\nRTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ\nRTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR\n' + list "$title" "$pattern" "$extra" } event_dev_tx_adptr_support() @@ -44,7 +57,7 @@ event_dev_tx_adptr_support() title="Eth Tx adapter Features" pattern=$(echo "RTE_EVENT_ETH_TX_ADAPTER_CAP_" | awk '{print toupper($0)}') - list "$title" "$pattern" | grep -vwE 'void|indirect|end' + list "$title" "$pattern" "" } > -- > 2.25.1 >
From: Sunil Kumar Kori <skori@marvell.com> Patch adds skeleton for feature matrices for event dev and Rx/Tx adapters. Along with, .ini files are added for all supported PMDs. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v8: - Fix script dump for dsw and SW driver - Review comments incorporated v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated .gitignore | 5 ++ doc/guides/conf.py | 25 ++++++++++ doc/guides/eventdevs/features/cnxk.ini | 14 ++++++ doc/guides/eventdevs/features/default.ini | 51 +++++++++++++++++++++ doc/guides/eventdevs/features/dpaa.ini | 14 ++++++ doc/guides/eventdevs/features/dpaa2.ini | 14 ++++++ doc/guides/eventdevs/features/dsw.ini | 14 ++++++ doc/guides/eventdevs/features/octeontx.ini | 14 ++++++ doc/guides/eventdevs/features/octeontx2.ini | 14 ++++++ doc/guides/eventdevs/features/opdl.ini | 14 ++++++ doc/guides/eventdevs/features/sw.ini | 14 ++++++ doc/guides/eventdevs/index.rst | 1 + doc/guides/eventdevs/overview.rst | 40 ++++++++++++++++ 13 files changed, 234 insertions(+) create mode 100644 doc/guides/eventdevs/features/cnxk.ini create mode 100644 doc/guides/eventdevs/features/default.ini create mode 100644 doc/guides/eventdevs/features/dpaa.ini create mode 100644 doc/guides/eventdevs/features/dpaa2.ini create mode 100644 doc/guides/eventdevs/features/dsw.ini create mode 100644 doc/guides/eventdevs/features/octeontx.ini create mode 100644 doc/guides/eventdevs/features/octeontx2.ini create mode 100644 doc/guides/eventdevs/features/opdl.ini create mode 100644 doc/guides/eventdevs/features/sw.ini create mode 100644 doc/guides/eventdevs/overview.rst diff --git a/.gitignore b/.gitignore index b98a43a601..212c7aa28e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,11 @@ doc/guides/regexdevs/overview_feature_table.txt doc/guides/vdpadevs/overview_feature_table.txt doc/guides/bbdevs/overview_feature_table.txt doc/guides/gpus/overview_feature_table.txt +doc/guides/eventdevs/overview_feature_table.txt +doc/guides/eventdevs/overview_rx_adptr_feature_table.txt +doc/guides/eventdevs/overview_tx_adptr_feature_table.txt +doc/guides/eventdevs/overview_crypto_adptr_feature_table.txt +doc/guides/eventdevs/overview_timer_adptr_feature_table.txt # ignore generated ctags/cscope files cscope.out.po diff --git a/doc/guides/conf.py b/doc/guides/conf.py index e6ce929bc8..1743ce301f 100644 --- a/doc/guides/conf.py +++ b/doc/guides/conf.py @@ -401,6 +401,31 @@ def setup(app): 'Features', 'Features availability in GPU drivers', 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_feature_table.txt' + generate_overview_table(table_file, 1, + 'Scheduling Features', + 'Features availability in eventdev drivers', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_rx_adptr_feature_table.txt' + generate_overview_table(table_file, 2, + 'Eth Rx adapter Features', + 'Features availability for Ethdev Rx adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_tx_adptr_feature_table.txt' + generate_overview_table(table_file, 3, + 'Eth Tx adapter Features', + 'Features availability for Ethdev Tx adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_crypto_adptr_feature_table.txt' + generate_overview_table(table_file, 4, + 'Crypto adapter Features', + 'Features availability for Crypto adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_timer_adptr_feature_table.txt' + generate_overview_table(table_file, 5, + 'Timer adapter Features', + 'Features availability for Timer adapters', + 'Feature') if LooseVersion(sphinx_version) < LooseVersion('1.3.1'): print('Upgrade sphinx to version >= 1.3.1 for ' diff --git a/doc/guides/eventdevs/features/cnxk.ini b/doc/guides/eventdevs/features/cnxk.ini new file mode 100644 index 0000000000..480b5d03c6 --- /dev/null +++ b/doc/guides/eventdevs/features/cnxk.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'cnxk' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini new file mode 100644 index 0000000000..5b16c45193 --- /dev/null +++ b/doc/guides/eventdevs/features/default.ini @@ -0,0 +1,51 @@ +; +; Features of a default eventdev driver. +; +; This file defines the features that are valid for inclusion in +; the other driver files and also the order that they appear in +; the features table in the documentation. +; +[Scheduling Features] +queue_qos = +event_qos = +distributed_sched = +queue_all_types = +burst_mode = +implicit_release_disable = +nonseq_mode = +runtime_port_link = +multiple_queue_port = +carry_flow_id = +maintenance_free = + +; +; Features of a default Ethernet Rx adapter. +; +[Eth Rx adapter Features] +internal_port = +multi_eventq = +override_flow_id = +event_vector = + +; +; Features of a default Ethernet Tx adapter. +; +[Eth Tx adapter Features] +internal_port = +event_vector = + +; +; Features of a default Crypto adapter. +; +[Crypto adapter Features] +internal_port_op_new = +internal_port_op_fwd = +internal_port_qp_ev_bind = +session_private_data = + +; +; Features of a default Timer adapter. +; +[Timer adapter Features] +internal_port = +periodic = diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini new file mode 100644 index 0000000000..2a88b81e05 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'dpaa' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini new file mode 100644 index 0000000000..67988af042 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa2.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'dpaa2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini new file mode 100644 index 0000000000..7de3f7b91b --- /dev/null +++ b/doc/guides/eventdevs/features/dsw.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'distributed software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini new file mode 100644 index 0000000000..ac06d43d03 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'octeontx' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini new file mode 100644 index 0000000000..3bce593858 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'octeontx2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini new file mode 100644 index 0000000000..73922ca79f --- /dev/null +++ b/doc/guides/eventdevs/features/opdl.ini @@ -0,0 +1,14 @@ +; +; Supported features of 'Ordered Packet Distribution Library' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini new file mode 100644 index 0000000000..5d787a6220 --- /dev/null +++ b/doc/guides/eventdevs/features/sw.ini @@ -0,0 +1,14 @@ +; +; Supported features of the 'software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index 2143025390..b11657f7ae 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -11,6 +11,7 @@ application through the eventdev API. :maxdepth: 2 :numbered: + overview cnxk dlb2 dpaa diff --git a/doc/guides/eventdevs/overview.rst b/doc/guides/eventdevs/overview.rst new file mode 100644 index 0000000000..3c5ee515f8 --- /dev/null +++ b/doc/guides/eventdevs/overview.rst @@ -0,0 +1,40 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(C) 2021 Marvell. + +Event Device Supported Functionality Matrices +============================================= + +Event device supported features +------------------------------- + +.. _table_eventdev_pmd_features: + +.. include:: overview_feature_table.txt + +Ethernet Rx adapter supported features +-------------------------------------- + +.. _table_eventdev_rx_adapter_features: + +.. include:: overview_rx_adptr_feature_table.txt + +Ethernet Tx adapter supported features +-------------------------------------- + +.. _table_eventdev_tx_adapter_features: + +.. include:: overview_tx_adptr_feature_table.txt + +Crypto device adapter supported features +---------------------------------------- + +.. _table_cryptodev_adapter_features: + +.. include:: overview_crypto_adptr_feature_table.txt + +Timer adapter supported features +-------------------------------- + +.. _table_timer_adapter_features: + +.. include:: overview_timer_adptr_feature_table.txt -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for octeontx platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v8: - Fix script dump for dsw and SW driver - Review comments incorporated v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx.ini | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini index ac06d43d03..ec044e6289 100644 --- a/doc/guides/eventdevs/features/octeontx.ini +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -4,11 +4,24 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_fwd = Y +session_private_data = Y [Timer adapter Features] +internal_port = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for octeontx2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v8: - Fix script dump for dsw and SW driver - Review comments incorporated v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/octeontx2.ini | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini index 3bce593858..05b84beb6e 100644 --- a/doc/guides/eventdevs/features/octeontx2.ini +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -4,11 +4,27 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_new = Y +internal_port_op_fwd = Y +internal_port_qp_ev_bind = Y [Timer adapter Features] +internal_port = Y +periodic = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for cnxk platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v8: - Fix script dump for dsw and SW driver - Review comments incorporated v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/cnxk.ini | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/doc/guides/eventdevs/features/cnxk.ini b/doc/guides/eventdevs/features/cnxk.ini index 480b5d03c6..7633c6e3a2 100644 --- a/doc/guides/eventdevs/features/cnxk.ini +++ b/doc/guides/eventdevs/features/cnxk.ini @@ -4,11 +4,28 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y +event_vector = Y [Eth Tx adapter Features] +internal_port = Y +event_vector = Y [Crypto adapter Features] +internal_port_op_fwd = Y +session_private_data = Y [Timer adapter Features] +internal_port = Y -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for dpaa platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v8: - Fix script dump for dsw and SW driver - Review comments incorporated v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/dpaa.ini | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini index 2a88b81e05..b73bfa02e5 100644 --- a/doc/guides/eventdevs/features/dpaa.ini +++ b/doc/guides/eventdevs/features/dpaa.ini @@ -4,11 +4,24 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +distributed_sched = Y +burst_mode = Y +nonseq_mode = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_new = Y +internal_port_qp_ev_bind = Y +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for dpaa2 platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v8: - Fix script dump for dsw and SW driver - Review comments incorporated v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/dpaa2.ini | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini index 67988af042..c935bd0cfc 100644 --- a/doc/guides/eventdevs/features/dpaa2.ini +++ b/doc/guides/eventdevs/features/dpaa2.ini @@ -4,11 +4,26 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +distributed_sched = Y +queue_all_types = Y +burst_mode = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y [Eth Tx adapter Features] +internal_port = Y [Crypto adapter Features] +internal_port_op_new = Y +internal_port_qp_ev_bind = Y +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for sw platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v8: - Fix script dump for dsw and SW driver - Review comments incorporated v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/sw.ini | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini index 5d787a6220..8c89d3b8d2 100644 --- a/doc/guides/eventdevs/features/sw.ini +++ b/doc/guides/eventdevs/features/sw.ini @@ -4,11 +4,24 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +queue_qos = Y +event_qos = Y +burst_mode = Y +implicit_release_disable = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] +multi_eventq = Y +override_flow_id = Y +event_vector = Y [Eth Tx adapter Features] [Crypto adapter Features] +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for opdl platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v8: - Fix script dump for dsw and SW driver - Review comments incorporated v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/opdl.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini index 73922ca79f..5cc35d3c77 100644 --- a/doc/guides/eventdevs/features/opdl.ini +++ b/doc/guides/eventdevs/features/opdl.ini @@ -4,11 +4,15 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +burst_mode = Y +carry_flow_id = Y +maintenance_free = Y [Eth Rx adapter Features] [Eth Tx adapter Features] [Crypto adapter Features] +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for dsw platform. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v8: - Fix script dump for dsw and SW driver - Review comments incorporated v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated doc/guides/eventdevs/features/dsw.ini | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini index 7de3f7b91b..c8bc6b3f1d 100644 --- a/doc/guides/eventdevs/features/dsw.ini +++ b/doc/guides/eventdevs/features/dsw.ini @@ -4,11 +4,20 @@ ; Refer to default.ini for the full list of available PMD features. ; [Scheduling Features] +distributed_sched = Y +burst_mode = Y +nonseq_mode = Y +multiple_queue_port = Y +carry_flow_id = Y [Eth Rx adapter Features] +multi_eventq = Y +override_flow_id = Y +event_vector = Y [Eth Tx adapter Features] [Crypto adapter Features] +session_private_data = Y [Timer adapter Features] -- 2.25.1
From: Sunil Kumar Kori <skori@marvell.com> In this commit, check is added for event device, Rx, Tx, Crypto and Timer adapters tables for all supported drivers. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v8: - Fix script dump for dsw and SW driver - Review comments incorporated v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated devtools/check-doc-vs-code.sh | 35 +++++++ devtools/parse-event-support.sh | 165 ++++++++++++++++++++++++++++++++ 2 files changed, 200 insertions(+) create mode 100755 devtools/parse-event-support.sh diff --git a/devtools/check-doc-vs-code.sh b/devtools/check-doc-vs-code.sh index c58c239c87..608d6e0e2e 100755 --- a/devtools/check-doc-vs-code.sh +++ b/devtools/check-doc-vs-code.sh @@ -66,11 +66,35 @@ check_rte_flow() # <driver> fi } +all_event_drivers() +{ + find $rootdir/drivers/event -mindepth 1 -maxdepth 1 -type d | + sed 's,.*/,,' | + sort +} + +check_event_dev() # <driver> +{ + code=$rootdir/drivers/event/$1 + doc=$rootdir/doc/guides/eventdevs/features/$1.ini + [ -d $code ] || return 0 + [ -f $doc ] || return 0 + report=$($selfdir/parse-event-support.sh $code $doc) + if [ -n "$report" ]; then + error "doc out of sync for $1" + echo "$report" | sed 's,^,\t,' + fi +} + if [ -z "$trusted_commit" ]; then # check all for driver in $(all_net_drivers); do check_rte_flow $driver done + + for driver in $(all_event_drivers); do + check_event_dev $driver + done exit $result fi @@ -81,4 +105,15 @@ if has_code_change 'RTE_FLOW_.*_TYPE_' || check_rte_flow $driver done fi + +if has_code_change 'RTE_EVENT_DEV_CAP_*' || + has_code_change 'RTE_EVENT_ETH_RX_ADAPTER_CAP_*' || + has_code_change 'RTE_EVENT_ETH_TX_ADAPTER_CAP_*' || + has_code_change 'RTE_EVENT_CRYPTO_ADAPTER_CAP_*' || + has_code_change 'RTE_EVENT_TIMER_ADAPTER_CAP_*' || + has_file_change 'doc/guides/eventdevs/features'; then + for driver in $(all_event_drivers); do + check_event_dev $driver + done +fi exit $result diff --git a/devtools/parse-event-support.sh b/devtools/parse-event-support.sh new file mode 100755 index 0000000000..f0f6b2392a --- /dev/null +++ b/devtools/parse-event-support.sh @@ -0,0 +1,165 @@ +#! /bin/sh -e +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(C) 2021 Marvell. + +# Parse event dev support of a driver directory, +# and optionally show difference with a doc file in .ini format. + +dir=$1 # drivers/event/foo +ref=$2 # doc/guides/eventdevs/features/foo.ini + +if [ -z "$dir" ]; then + echo "directory argument is required" >&2 + exit 1 +fi + +# sorting order +export LC_COLLATE=C + +check_rx_adptr_sw_capa() +{ + driver=$(echo "$dir" | cut -d / -f 3) + if [ "$driver" = "dsw" ] || [ "$driver" = "sw" ] ; then + return 1 + else + return 0 + fi +} + +# generate INI section +list() # <title> <pattern> <extra_patterns> +{ + echo "[$1]" + word0=$(git grep -who "$2[[:alnum:]_]*" $dir) + word1=$(echo "$3") + words="$word0""$word1" + echo "$words" | sort -u | + awk 'sub(/'$2'/, "") {printf "%-20s = Y\n", tolower($0)}' +} + +event_dev_sched_support() +{ + title="Scheduling Features" + pattern=$(echo "RTE_EVENT_DEV_CAP_" | awk '{print toupper($0)}') + list "$title" "$pattern" "" +} + +event_dev_rx_adptr_support() +{ + title="Eth Rx adapter Features" + pattern=$(echo "RTE_EVENT_ETH_RX_ADAPTER_CAP_" | + awk '{print toupper($0)}') + check_rx_adptr_sw_capa || extra='RTE_EVENT_ETH_RX_ADAPTER_CAP_OVERRIDE_FLOW_ID + RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ + RTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR' + list "$title" "$pattern" "$extra" +} + +event_dev_tx_adptr_support() +{ + title="Eth Tx adapter Features" + pattern=$(echo "RTE_EVENT_ETH_TX_ADAPTER_CAP_" | + awk '{print toupper($0)}') + list "$title" "$pattern" "" +} + +event_dev_crypto_adptr_support() +{ + title="Crypto adapter Features" + pattern=$(echo "RTE_EVENT_CRYPTO_ADAPTER_CAP_" | + awk '{print toupper($0)}') + list "$title" "$pattern" "" +} + +event_dev_timer_adptr_support() +{ + title="Timer adapter Features" + pattern=$(echo "RTE_EVENT_TIMER_ADAPTER_CAP_" | + awk '{print toupper($0)}') + list "$title" "$pattern" "" +} + +if [ -z "$ref" ]; then # generate full tables + event_dev_sched_support + echo + event_dev_rx_adptr_support + echo + event_dev_tx_adptr_support + echo + event_dev_crypto_adptr_support + echo + event_dev_timer_adptr_support + exit 0 +fi + +# compare with reference input +event_dev_sched_compare() +{ + section="Scheduling Features]" + { + event_dev_sched_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Scheduling Features ," # prefix with category name +} + +event_dev_rx_adptr_compare() +{ + section="Eth Rx adapter Features]" + { + event_dev_rx_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Eth Rx adapter Features ," # prefix with category name +} + +event_dev_tx_adptr_compare() +{ + section="Eth Tx adapter Features]" + { + event_dev_tx_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Eth Tx adapter Features ," # prefix with category name +} + +event_dev_crypto_adptr_compare() +{ + section="Crypto adapter Features]" + { + event_dev_crypto_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Crypto adapter Features ," # prefix with category name +} + +event_dev_timer_adptr_compare() +{ + section="Timer adapter Features]" + { + event_dev_timer_adptr_support + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' + } | + sed '/]/d' | # ignore section title + sed 's, *=.*,,' | # ignore value (better in doc than generated one) + sort | uniq -u | # show differences + sed "s,^,Timer adapter Features ," # prefix with category name +} + +event_dev_sched_compare +event_dev_rx_adptr_compare +event_dev_tx_adptr_compare +event_dev_crypto_adptr_compare +event_dev_timer_adptr_compare -- 2.25.1
On Fri, Oct 22, 2021 at 1:18 PM <skori@marvell.com> wrote: > > From: Sunil Kumar Kori <skori@marvell.com> > > Patch adds skeleton for feature matrices for event dev > and Rx/Tx adapters. > > Along with, .ini files are added for all supported PMDs. > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Series Acked-by: Jerin Jacob <jerinj@marvell.com> Series without patch [10/10][1] applied to dpdk-next-net-eventdev/for-main. Thanks [1] http://patches.dpdk.org/project/dpdk/patch/20211123110743.2002557-10-skori@marvell.com/ @Thomas Monjalon Delegated above patch to you as it is for tooling. > --- > v5: > - Rebased to 21.11 > - Added feature matrix for cnxk. > v4: > - Rebased to 20.02 > v3: > - Removed .txt files to generate tables. > - Use conf.py script to generate tables. > - Add .ini file for all supported PMDs. > v2: > - Review comments incorporated > > .gitignore | 2 ++ > doc/guides/conf.py | 12 ++++++++- > doc/guides/eventdevs/features/cnxk.ini | 8 ++++++ > doc/guides/eventdevs/features/default.ini | 30 +++++++++++++++++++++ > doc/guides/eventdevs/features/dpaa.ini | 8 ++++++ > doc/guides/eventdevs/features/dpaa2.ini | 8 ++++++ > doc/guides/eventdevs/features/dsw.ini | 8 ++++++ > doc/guides/eventdevs/features/octeontx.ini | 8 ++++++ > doc/guides/eventdevs/features/octeontx2.ini | 8 ++++++ > doc/guides/eventdevs/features/opdl.ini | 8 ++++++ > doc/guides/eventdevs/features/sw.ini | 8 ++++++ > doc/guides/eventdevs/index.rst | 1 + > doc/guides/eventdevs/overview.rst | 19 +++++++++++++ > 13 files changed, 127 insertions(+), 1 deletion(-) > create mode 100644 doc/guides/eventdevs/features/cnxk.ini > create mode 100644 doc/guides/eventdevs/features/default.ini > create mode 100644 doc/guides/eventdevs/features/dpaa.ini > create mode 100644 doc/guides/eventdevs/features/dpaa2.ini > create mode 100644 doc/guides/eventdevs/features/dsw.ini > create mode 100644 doc/guides/eventdevs/features/octeontx.ini > create mode 100644 doc/guides/eventdevs/features/octeontx2.ini > create mode 100644 doc/guides/eventdevs/features/opdl.ini > create mode 100644 doc/guides/eventdevs/features/sw.ini > create mode 100644 doc/guides/eventdevs/overview.rst > > diff --git a/.gitignore b/.gitignore > index b19c0717e6..b3fc783945 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -14,6 +14,8 @@ doc/guides/compressdevs/overview_feature_table.txt > doc/guides/regexdevs/overview_feature_table.txt > doc/guides/vdpadevs/overview_feature_table.txt > doc/guides/bbdevs/overview_feature_table.txt > +doc/guides/eventdevs/overview_feature_table.txt > +doc/guides/eventdevs/overview_adptr_feature_table.txt > > # ignore generated ctags/cscope files > cscope.out.po > diff --git a/doc/guides/conf.py b/doc/guides/conf.py > index 67d2dd62c7..9d8e20e5fc 100644 > --- a/doc/guides/conf.py > +++ b/doc/guides/conf.py > @@ -41,7 +41,7 @@ > master_doc = 'index' > > # Maximum feature description string length > -feature_str_len = 30 > +feature_str_len = 45 > > # Figures, tables and code-blocks automatically numbered if they have caption > numfig = True > @@ -388,6 +388,16 @@ def setup(app): > 'Features', > 'Features availability in bbdev drivers', > 'Feature') > + table_file = dirname(__file__) + '/eventdevs/overview_feature_table.txt' > + generate_overview_table(table_file, 1, > + 'Features', > + 'Features availability in eventdev drivers', > + 'Feature') > + table_file = dirname(__file__) + '/eventdevs/overview_adptr_feature_table.txt' > + generate_overview_table(table_file, 2, > + 'Adapter Features', > + 'Features availability for adapters', > + 'Feature') > > if LooseVersion(sphinx_version) < LooseVersion('1.3.1'): > print('Upgrade sphinx to version >= 1.3.1 for ' > diff --git a/doc/guides/eventdevs/features/cnxk.ini b/doc/guides/eventdevs/features/cnxk.ini > new file mode 100644 > index 0000000000..a461966d69 > --- /dev/null > +++ b/doc/guides/eventdevs/features/cnxk.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'cnxk' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini > new file mode 100644 > index 0000000000..d007d7a69e > --- /dev/null > +++ b/doc/guides/eventdevs/features/default.ini > @@ -0,0 +1,30 @@ > +; > +; Features of a default eventdev driver. > +; > +; This file defines the features that are valid for inclusion in > +; the other driver files and also the order that they appear in > +; the features table in the documentation. > +; > +[Features] > +Event queue priority based scheduling = > +Event priority based scheduling = > +Event device distributed scheduling = > +Event device non sequential mode = > +Event queue all types = > +Burst mode enqueue/dequeue = > +Event port implicit release disable = > +Runtime event queue/port linking = > +Multi queue linking per port = > + > +; > +; Features of a default adapter. > +; > +[Adapter Features] > +Eth Rx/Tx adapter on internal port = > +Multiple event queues per ethdev = > +Override flow ID = > +Crypto adapter new event enqueue = > +Crypto adapter forwarded event enqueue = > +Crypto queue pair mapping to event queue = > +Crypto adapter session data store/retrieve = > +Timer adapter support in H/W = > diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini > new file mode 100644 > index 0000000000..3cf172f408 > --- /dev/null > +++ b/doc/guides/eventdevs/features/dpaa.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'dpaa' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini > new file mode 100644 > index 0000000000..822a82ef3e > --- /dev/null > +++ b/doc/guides/eventdevs/features/dpaa2.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'dpaa2' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini > new file mode 100644 > index 0000000000..230737045b > --- /dev/null > +++ b/doc/guides/eventdevs/features/dsw.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'distributed software' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini > new file mode 100644 > index 0000000000..d1b1fe6d62 > --- /dev/null > +++ b/doc/guides/eventdevs/features/octeontx.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'octeontx' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini > new file mode 100644 > index 0000000000..96f1af0dca > --- /dev/null > +++ b/doc/guides/eventdevs/features/octeontx2.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'octeontx2' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini > new file mode 100644 > index 0000000000..020808fced > --- /dev/null > +++ b/doc/guides/eventdevs/features/opdl.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of 'Ordered Packet Distribution Library' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini > new file mode 100644 > index 0000000000..a5789f56d4 > --- /dev/null > +++ b/doc/guides/eventdevs/features/sw.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'software' eventdev driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > + > +[Adapter Features] > diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst > index 2143025390..b11657f7ae 100644 > --- a/doc/guides/eventdevs/index.rst > +++ b/doc/guides/eventdevs/index.rst > @@ -11,6 +11,7 @@ application through the eventdev API. > :maxdepth: 2 > :numbered: > > + overview > cnxk > dlb2 > dpaa > diff --git a/doc/guides/eventdevs/overview.rst b/doc/guides/eventdevs/overview.rst > new file mode 100644 > index 0000000000..5d34d2c57b > --- /dev/null > +++ b/doc/guides/eventdevs/overview.rst > @@ -0,0 +1,19 @@ > +.. SPDX-License-Identifier: BSD-3-Clause > + Copyright(C) 2021 Marvell. > + > +Event Device Supported Functionality Matrices > +============================================= > + > +Event Device Supported Feature Flags > +------------------------------------ > + > +.. _table_eventdev_pmd_features: > + > +.. include:: overview_feature_table.txt > + > +Adapter Supported Feature Flags > +------------------------------- > + > +.. _table_adapter_features: > + > +.. include:: overview_adptr_feature_table.txt > -- > 2.25.1 >
23/11/2021 17:44, Jerin Jacob: > On Fri, Oct 22, 2021 at 1:18 PM <skori@marvell.com> wrote: > > > > From: Sunil Kumar Kori <skori@marvell.com> > > > > Patch adds skeleton for feature matrices for event dev > > and Rx/Tx adapters. > > > > Along with, .ini files are added for all supported PMDs. > > > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> > > Series Acked-by: Jerin Jacob <jerinj@marvell.com> > Series without patch [10/10][1] applied to > dpdk-next-net-eventdev/for-main. Thanks Note: you are replying on v5. I assume you applied the v8, right? > [1] > http://patches.dpdk.org/project/dpdk/patch/20211123110743.2002557-10-skori@marvell.com/ > > @Thomas Monjalon Delegated above patch to you as it is for tooling. I'll look at it.
On Wed, Nov 24, 2021 at 1:36 PM Thomas Monjalon <thomas@monjalon.net> wrote: > > 23/11/2021 17:44, Jerin Jacob: > > On Fri, Oct 22, 2021 at 1:18 PM <skori@marvell.com> wrote: > > > > > > From: Sunil Kumar Kori <skori@marvell.com> > > > > > > Patch adds skeleton for feature matrices for event dev > > > and Rx/Tx adapters. > > > > > > Along with, .ini files are added for all supported PMDs. > > > > > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> > > > > Series Acked-by: Jerin Jacob <jerinj@marvell.com> > > Series without patch [10/10][1] applied to > > dpdk-next-net-eventdev/for-main. Thanks > > Note: you are replying on v5. > I assume you applied the v8, right? Yes. Lost in Gmail web threading view. > > > [1] > > http://patches.dpdk.org/project/dpdk/patch/20211123110743.2002557-10-skori@marvell.com/ > > > > @Thomas Monjalon Delegated above patch to you as it is for tooling. > > I'll look at it. Thanks > >
23/11/2021 12:07, skori@marvell.com:
> .gitignore | 5 ++
> doc/guides/conf.py | 25 ++++++++++
> doc/guides/eventdevs/features/cnxk.ini | 14 ++++++
> doc/guides/eventdevs/features/default.ini | 51 +++++++++++++++++++++
> doc/guides/eventdevs/features/dpaa.ini | 14 ++++++
> doc/guides/eventdevs/features/dpaa2.ini | 14 ++++++
> doc/guides/eventdevs/features/dsw.ini | 14 ++++++
> doc/guides/eventdevs/features/octeontx.ini | 14 ++++++
> doc/guides/eventdevs/features/octeontx2.ini | 14 ++++++
> doc/guides/eventdevs/features/opdl.ini | 14 ++++++
> doc/guides/eventdevs/features/sw.ini | 14 ++++++
> doc/guides/eventdevs/index.rst | 1 +
> doc/guides/eventdevs/overview.rst | 40 ++++++++++++++++
> 13 files changed, 234 insertions(+)
Why dlb2 is missing?
>-----Original Message----- >From: Thomas Monjalon <thomas@monjalon.net> >Sent: Wednesday, November 24, 2021 3:34 PM >To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Sunil Kumar Kori ><skori@marvell.com> >Cc: nikhil.rao@intel.com; Pavan Nikhilesh Bhagavatula ><pbhagavatula@marvell.com>; hemant.agrawal@nxp.com; >nipun.gupta@nxp.com; harry.van.haaren@intel.com; >mattias.ronnblom@ericsson.com; liang.j.ma@intel.com; dev@dpdk.org >Subject: [EXT] Re: [PATCH v8 01/10] doc: add skeleton for eventdevs feature >matrices > >External Email > >---------------------------------------------------------------------- >23/11/2021 12:07, skori@marvell.com: >> .gitignore | 5 ++ >> doc/guides/conf.py | 25 ++++++++++ >> doc/guides/eventdevs/features/cnxk.ini | 14 ++++++ >> doc/guides/eventdevs/features/default.ini | 51 +++++++++++++++++++++ >> doc/guides/eventdevs/features/dpaa.ini | 14 ++++++ >> doc/guides/eventdevs/features/dpaa2.ini | 14 ++++++ >> doc/guides/eventdevs/features/dsw.ini | 14 ++++++ >> doc/guides/eventdevs/features/octeontx.ini | 14 ++++++ >> doc/guides/eventdevs/features/octeontx2.ini | 14 ++++++ >> doc/guides/eventdevs/features/opdl.ini | 14 ++++++ >> doc/guides/eventdevs/features/sw.ini | 14 ++++++ >> doc/guides/eventdevs/index.rst | 1 + >> doc/guides/eventdevs/overview.rst | 40 ++++++++++++++++ >> 13 files changed, 234 insertions(+) > >Why dlb2 is missing? No specific reason. It's missed by mistake. I will send a patch to fix it. > > >
24/11/2021 11:30, Sunil Kumar Kori:
> From: Thomas Monjalon <thomas@monjalon.net>
> >23/11/2021 12:07, skori@marvell.com:
> >> .gitignore | 5 ++
> >> doc/guides/conf.py | 25 ++++++++++
> >> doc/guides/eventdevs/features/cnxk.ini | 14 ++++++
> >> doc/guides/eventdevs/features/default.ini | 51 +++++++++++++++++++++
> >> doc/guides/eventdevs/features/dpaa.ini | 14 ++++++
> >> doc/guides/eventdevs/features/dpaa2.ini | 14 ++++++
> >> doc/guides/eventdevs/features/dsw.ini | 14 ++++++
> >> doc/guides/eventdevs/features/octeontx.ini | 14 ++++++
> >> doc/guides/eventdevs/features/octeontx2.ini | 14 ++++++
> >> doc/guides/eventdevs/features/opdl.ini | 14 ++++++
> >> doc/guides/eventdevs/features/sw.ini | 14 ++++++
> >> doc/guides/eventdevs/index.rst | 1 +
> >> doc/guides/eventdevs/overview.rst | 40 ++++++++++++++++
> >> 13 files changed, 234 insertions(+)
> >
> >Why dlb2 is missing?
> No specific reason. It's missed by mistake. I will send a patch to fix it.
I think a v9 is needed.
I am sending other comments.
Note: it can all be in one single patch.
23/11/2021 12:07, skori@marvell.com:
> +[Scheduling Features]
> +queue_qos =
> +event_qos =
> +distributed_sched =
> +queue_all_types =
> +burst_mode =
> +implicit_release_disable =
> +nonseq_mode =
> +runtime_port_link =
> +multiple_queue_port =
> +carry_flow_id =
> +maintenance_free =
> +
> +;
> +; Features of a default Ethernet Rx adapter.
> +;
> +[Eth Rx adapter Features]
> +internal_port =
> +multi_eventq =
> +override_flow_id =
> +event_vector =
> +
> +;
> +; Features of a default Ethernet Tx adapter.
> +;
> +[Eth Tx adapter Features]
> +internal_port =
> +event_vector =
> +
> +;
> +; Features of a default Crypto adapter.
> +;
> +[Crypto adapter Features]
> +internal_port_op_new =
> +internal_port_op_fwd =
> +internal_port_qp_ev_bind =
> +session_private_data =
> +
> +;
> +; Features of a default Timer adapter.
> +;
> +[Timer adapter Features]
> +internal_port =
> +periodic =
Would be better to align the equal signs as done by the script
%-20s =
23/11/2021 12:07, skori@marvell.com: > --- a/devtools/check-doc-vs-code.sh > +++ b/devtools/check-doc-vs-code.sh > +all_event_drivers() > +{ > + find $rootdir/drivers/event -mindepth 1 -maxdepth 1 -type d | > + sed 's,.*/,,' | > + sort > +} > + > +check_event_dev() # <driver> > +{ > + code=$rootdir/drivers/event/$1 > + doc=$rootdir/doc/guides/eventdevs/features/$1.ini > + [ -d $code ] || return 0 > + [ -f $doc ] || return 0 > + report=$($selfdir/parse-event-support.sh $code $doc) > + if [ -n "$report" ]; then > + error "doc out of sync for $1" > + echo "$report" | sed 's,^,\t,' > + fi > +} These 2 functions are mostly copy/paste of rte_flow functions. Given there will be more in future, I would prefer code being factorized. > if [ -z "$trusted_commit" ]; then > # check all > for driver in $(all_net_drivers); do > check_rte_flow $driver > done > + I would remove this blank line. > + for driver in $(all_event_drivers); do > + check_event_dev $driver > + done > exit $result > fi [...] > +if has_code_change 'RTE_EVENT_DEV_CAP_*' || > + has_code_change 'RTE_EVENT_ETH_RX_ADAPTER_CAP_*' || > + has_code_change 'RTE_EVENT_ETH_TX_ADAPTER_CAP_*' || > + has_code_change 'RTE_EVENT_CRYPTO_ADAPTER_CAP_*' || > + has_code_change 'RTE_EVENT_TIMER_ADAPTER_CAP_*' || Can it be a single query? > + has_file_change 'doc/guides/eventdevs/features'; then > + for driver in $(all_event_drivers); do No need to check all drivers. For rte_flow, only changed drivers are checked. > + check_event_dev $driver > + done > +fi [...] > +# generate INI section > +list() # <title> <pattern> <extra_patterns> > +{ > + echo "[$1]" > + word0=$(git grep -who "$2[[:alnum:]_]*" $dir) > + word1=$(echo "$3") Why echo? > + words="$word0""$word1" Why so many quotes? > + echo "$words" | sort -u | > + awk 'sub(/'$2'/, "") {printf "%-20s = Y\n", tolower($0)}' > +} [...] > +event_dev_rx_adptr_support() > +{ > + title="Eth Rx adapter Features" > + pattern=$(echo "RTE_EVENT_ETH_RX_ADAPTER_CAP_" | > + awk '{print toupper($0)}') > + check_rx_adptr_sw_capa || extra='RTE_EVENT_ETH_RX_ADAPTER_CAP_OVERRIDE_FLOW_ID > + RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ > + RTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR' Why having extra parameter, instead of updating the pattern? By the way, the pattern RTE_EVENT_ETH_RX_ADAPTER_CAP_ already include all of this. > + list "$title" "$pattern" "$extra" > +} [...] > +# compare with reference input > +event_dev_sched_compare() > +{ > + section="Scheduling Features]" > + { > + event_dev_sched_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Scheduling Features ," # prefix with category name > +} > + > +event_dev_rx_adptr_compare() > +{ > + section="Eth Rx adapter Features]" > + { > + event_dev_rx_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Eth Rx adapter Features ," # prefix with category name > +} > + > +event_dev_tx_adptr_compare() > +{ > + section="Eth Tx adapter Features]" > + { > + event_dev_tx_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Eth Tx adapter Features ," # prefix with category name > +} > + > +event_dev_crypto_adptr_compare() > +{ > + section="Crypto adapter Features]" > + { > + event_dev_crypto_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Crypto adapter Features ," # prefix with category name > +} > + > +event_dev_timer_adptr_compare() > +{ > + section="Timer adapter Features]" > + { > + event_dev_timer_adptr_support > + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d' > + } | > + sed '/]/d' | # ignore section title > + sed 's, *=.*,,' | # ignore value (better in doc than generated one) > + sort | uniq -u | # show differences > + sed "s,^,Timer adapter Features ," # prefix with category name > +} I think these functions can be factorized.
Regards
Sunil Kumar Kori
>-----Original Message-----
>From: Thomas Monjalon <thomas@monjalon.net>
>Sent: Wednesday, November 24, 2021 4:18 PM
>To: Sunil Kumar Kori <skori@marvell.com>
>Cc: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; nikhil.rao@intel.com;
>Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>;
>hemant.agrawal@nxp.com; nipun.gupta@nxp.com;
>harry.van.haaren@intel.com; mattias.ronnblom@ericsson.com;
>liang.j.ma@intel.com; dev@dpdk.org
>Subject: [EXT] Re: [PATCH v8 01/10] doc: add skeleton for eventdevs feature
>matrices
>
>External Email
>
>----------------------------------------------------------------------
>23/11/2021 12:07, skori@marvell.com:
>> +[Scheduling Features]
>> +queue_qos =
>> +event_qos =
>> +distributed_sched =
>> +queue_all_types =
>> +burst_mode =
>> +implicit_release_disable =
>> +nonseq_mode =
>> +runtime_port_link =
>> +multiple_queue_port =
>> +carry_flow_id =
>> +maintenance_free =
>> +
>> +;
>> +; Features of a default Ethernet Rx adapter.
>> +;
>> +[Eth Rx adapter Features]
>> +internal_port =
>> +multi_eventq =
>> +override_flow_id =
>> +event_vector =
>> +
>> +;
>> +; Features of a default Ethernet Tx adapter.
>> +;
>> +[Eth Tx adapter Features]
>> +internal_port =
>> +event_vector =
>> +
>> +;
>> +; Features of a default Crypto adapter.
>> +;
>> +[Crypto adapter Features]
>> +internal_port_op_new =
>> +internal_port_op_fwd =
>> +internal_port_qp_ev_bind =
>> +session_private_data =
>> +
>> +;
>> +; Features of a default Timer adapter.
>> +;
>> +[Timer adapter Features]
>> +internal_port =
>> +periodic =
>
>Would be better to align the equal signs as done by the script
> %-20s =
>
Ack.
Hi Thomas,
It will take some time to handle all the comments for this patch. So I would request you to defer this patch for next release and take other patches in series.
Also I will send one patch to add feature matrix for dlb2 platform and fix minor review comments given by You.
Regards
Sunil Kumar Kori
>-----Original Message-----
>From: Thomas Monjalon <thomas@monjalon.net>
>Sent: Wednesday, November 24, 2021 4:23 PM
>To: Sunil Kumar Kori <skori@marvell.com>
>Cc: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; nikhil.rao@intel.com;
>Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>;
>hemant.agrawal@nxp.com; nipun.gupta@nxp.com;
>harry.van.haaren@intel.com; mattias.ronnblom@ericsson.com;
>liang.j.ma@intel.com; dev@dpdk.org
>Subject: [EXT] Re: [PATCH v8 10/10] devtools: check event device doc tables
>
>External Email
>
>----------------------------------------------------------------------
>23/11/2021 12:07, skori@marvell.com:
>> --- a/devtools/check-doc-vs-code.sh
>> +++ b/devtools/check-doc-vs-code.sh
>> +all_event_drivers()
>> +{
>> + find $rootdir/drivers/event -mindepth 1 -maxdepth 1 -type d |
>> + sed 's,.*/,,' |
>> + sort
>> +}
>> +
>> +check_event_dev() # <driver>
>> +{
>> + code=$rootdir/drivers/event/$1
>> + doc=$rootdir/doc/guides/eventdevs/features/$1.ini
>> + [ -d $code ] || return 0
>> + [ -f $doc ] || return 0
>> + report=$($selfdir/parse-event-support.sh $code $doc)
>> + if [ -n "$report" ]; then
>> + error "doc out of sync for $1"
>> + echo "$report" | sed 's,^,\t,'
>> + fi
>> +}
>
>These 2 functions are mostly copy/paste of rte_flow functions.
>Given there will be more in future, I would prefer code being factorized.
>
>> if [ -z "$trusted_commit" ]; then
>> # check all
>> for driver in $(all_net_drivers); do
>> check_rte_flow $driver
>> done
>> +
>
>I would remove this blank line.
>
>> + for driver in $(all_event_drivers); do
>> + check_event_dev $driver
>> + done
>> exit $result
>> fi
>[...]
>> +if has_code_change 'RTE_EVENT_DEV_CAP_*' ||
>> + has_code_change 'RTE_EVENT_ETH_RX_ADAPTER_CAP_*' ||
>> + has_code_change 'RTE_EVENT_ETH_TX_ADAPTER_CAP_*' ||
>> + has_code_change 'RTE_EVENT_CRYPTO_ADAPTER_CAP_*' ||
>> + has_code_change 'RTE_EVENT_TIMER_ADAPTER_CAP_*' ||
>
>Can it be a single query?
>
>> + has_file_change 'doc/guides/eventdevs/features'; then
>> + for driver in $(all_event_drivers); do
>
>No need to check all drivers.
>For rte_flow, only changed drivers are checked.
>
>> + check_event_dev $driver
>> + done
>> +fi
>[...]
>> +# generate INI section
>> +list() # <title> <pattern> <extra_patterns> {
>> + echo "[$1]"
>> + word0=$(git grep -who "$2[[:alnum:]_]*" $dir)
>> + word1=$(echo "$3")
>
>Why echo?
>
>> + words="$word0""$word1"
>
>Why so many quotes?
>
>> + echo "$words" | sort -u |
>> + awk 'sub(/'$2'/, "") {printf "%-20s = Y\n", tolower($0)}'
>> +}
>[...]
>> +event_dev_rx_adptr_support()
>> +{
>> + title="Eth Rx adapter Features"
>> + pattern=$(echo "RTE_EVENT_ETH_RX_ADAPTER_CAP_" |
>> + awk '{print toupper($0)}')
>> + check_rx_adptr_sw_capa ||
>extra='RTE_EVENT_ETH_RX_ADAPTER_CAP_OVERRIDE_FLOW_ID
>> +
> RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ
>> +
> RTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR'
>
>Why having extra parameter, instead of updating the pattern?
>By the way, the pattern RTE_EVENT_ETH_RX_ADAPTER_CAP_ already include
>all of this.
>
>> + list "$title" "$pattern" "$extra"
>> +}
>[...]
>> +# compare with reference input
>> +event_dev_sched_compare()
>> +{
>> + section="Scheduling Features]"
>> + {
>> + event_dev_sched_support
>> + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d'
>> + } |
>> + sed '/]/d' | # ignore section title
>> + sed 's, *=.*,,' | # ignore value (better in doc than generated one)
>> + sort | uniq -u | # show differences
>> + sed "s,^,Scheduling Features ," # prefix with category name }
>> +
>> +event_dev_rx_adptr_compare()
>> +{
>> + section="Eth Rx adapter Features]"
>> + {
>> + event_dev_rx_adptr_support
>> + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d'
>> + } |
>> + sed '/]/d' | # ignore section title
>> + sed 's, *=.*,,' | # ignore value (better in doc than generated one)
>> + sort | uniq -u | # show differences
>> + sed "s,^,Eth Rx adapter Features ," # prefix with category name }
>> +
>> +event_dev_tx_adptr_compare()
>> +{
>> + section="Eth Tx adapter Features]"
>> + {
>> + event_dev_tx_adptr_support
>> + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d'
>> + } |
>> + sed '/]/d' | # ignore section title
>> + sed 's, *=.*,,' | # ignore value (better in doc than generated one)
>> + sort | uniq -u | # show differences
>> + sed "s,^,Eth Tx adapter Features ," # prefix with category name }
>> +
>> +event_dev_crypto_adptr_compare()
>> +{
>> + section="Crypto adapter Features]"
>> + {
>> + event_dev_crypto_adptr_support
>> + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d'
>> + } |
>> + sed '/]/d' | # ignore section title
>> + sed 's, *=.*,,' | # ignore value (better in doc than generated one)
>> + sort | uniq -u | # show differences
>> + sed "s,^,Crypto adapter Features ," # prefix with category name }
>> +
>> +event_dev_timer_adptr_compare()
>> +{
>> + section="Timer adapter Features]"
>> + {
>> + event_dev_timer_adptr_support
>> + sed -n "/$section/,/]/p" "$ref" | sed '/^$/d'
>> + } |
>> + sed '/]/d' | # ignore section title
>> + sed 's, *=.*,,' | # ignore value (better in doc than generated one)
>> + sort | uniq -u | # show differences
>> + sed "s,^,Timer adapter Features ," # prefix with category name }
>
>I think these functions can be factorized.
>
24/11/2021 12:16, Sunil Kumar Kori:
> Hi Thomas,
>
> It will take some time to handle all the comments for this patch. So I would request you to defer this patch for next release and take other patches in series.
> Also I will send one patch to add feature matrix for dlb2 platform and fix minor review comments given by You.
This is just documentation, so it can be merged
until the last day of the release.
Please try to get the script ready.
If the script is not ready on time, I will merge only the doc.
From: Sunil Kumar Kori <skori@marvell.com> Patch updates eventdev and adapters feature matrices for dlb2 driver. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- doc/guides/eventdevs/features/default.ini | 46 +++++++++++------------ doc/guides/eventdevs/features/dlb2.ini | 21 +++++++++++ 2 files changed, 44 insertions(+), 23 deletions(-) create mode 100644 doc/guides/eventdevs/features/dlb2.ini diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini index 5b16c45193..2ea233463a 100644 --- a/doc/guides/eventdevs/features/default.ini +++ b/doc/guides/eventdevs/features/default.ini @@ -6,46 +6,46 @@ ; the features table in the documentation. ; [Scheduling Features] -queue_qos = -event_qos = -distributed_sched = -queue_all_types = -burst_mode = -implicit_release_disable = -nonseq_mode = -runtime_port_link = -multiple_queue_port = -carry_flow_id = -maintenance_free = +queue_qos = +event_qos = +distributed_sched = +queue_all_types = +burst_mode = +implicit_release_disable = +nonseq_mode = +runtime_port_link = +multiple_queue_port = +carry_flow_id = +maintenance_free = ; ; Features of a default Ethernet Rx adapter. ; [Eth Rx adapter Features] -internal_port = -multi_eventq = -override_flow_id = -event_vector = +internal_port = +multi_eventq = +override_flow_id = +event_vector = ; ; Features of a default Ethernet Tx adapter. ; [Eth Tx adapter Features] -internal_port = -event_vector = +internal_port = +event_vector = ; ; Features of a default Crypto adapter. ; [Crypto adapter Features] -internal_port_op_new = -internal_port_op_fwd = -internal_port_qp_ev_bind = -session_private_data = +internal_port_op_new = +internal_port_op_fwd = +internal_port_qp_ev_bind = +session_private_data = ; ; Features of a default Timer adapter. ; [Timer adapter Features] -internal_port = -periodic = +internal_port = +periodic = diff --git a/doc/guides/eventdevs/features/dlb2.ini b/doc/guides/eventdevs/features/dlb2.ini new file mode 100644 index 0000000000..29747b1c26 --- /dev/null +++ b/doc/guides/eventdevs/features/dlb2.ini @@ -0,0 +1,21 @@ +; +; Supported features of the 'dlb2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] +queue_qos = Y +event_qos = Y +distributed_sched = Y +queue_all_types = Y +burst_mode = Y +implicit_release_disable = Y +maintenance_free = Y + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] -- 2.25.1
Hi Thomas,
Just wanted to confirm that all documentation patches should go as single patch or I can send it as a series of patches.
I am ready with dlb2 changes also. Once you confirm I will send patches accordingly. Please confirm.
Regards
Sunil Kumar Kori
>-----Original Message-----
>From: Thomas Monjalon <thomas@monjalon.net>
>Sent: Wednesday, November 24, 2021 4:14 PM
>To: Sunil Kumar Kori <skori@marvell.com>
>Cc: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; dev@dpdk.org;
>nikhil.rao@intel.com; Pavan Nikhilesh Bhagavatula
><pbhagavatula@marvell.com>; hemant.agrawal@nxp.com;
>nipun.gupta@nxp.com; harry.van.haaren@intel.com;
>mattias.ronnblom@ericsson.com; liang.j.ma@intel.com; dev@dpdk.org
>Subject: Re: [EXT] Re: [PATCH v8 01/10] doc: add skeleton for eventdevs
>feature matrices
>
>24/11/2021 11:30, Sunil Kumar Kori:
>> From: Thomas Monjalon <thomas@monjalon.net>
>> >23/11/2021 12:07, skori@marvell.com:
>> >> .gitignore | 5 ++
>> >> doc/guides/conf.py | 25 ++++++++++
>> >> doc/guides/eventdevs/features/cnxk.ini | 14 ++++++
>> >> doc/guides/eventdevs/features/default.ini | 51
>+++++++++++++++++++++
>> >> doc/guides/eventdevs/features/dpaa.ini | 14 ++++++
>> >> doc/guides/eventdevs/features/dpaa2.ini | 14 ++++++
>> >> doc/guides/eventdevs/features/dsw.ini | 14 ++++++
>> >> doc/guides/eventdevs/features/octeontx.ini | 14 ++++++
>> >> doc/guides/eventdevs/features/octeontx2.ini | 14 ++++++
>> >> doc/guides/eventdevs/features/opdl.ini | 14 ++++++
>> >> doc/guides/eventdevs/features/sw.ini | 14 ++++++
>> >> doc/guides/eventdevs/index.rst | 1 +
>> >> doc/guides/eventdevs/overview.rst | 40 ++++++++++++++++
>> >> 13 files changed, 234 insertions(+)
>> >
>> >Why dlb2 is missing?
>> No specific reason. It's missed by mistake. I will send a patch to fix it.
>
>I think a v9 is needed.
>I am sending other comments.
>Note: it can all be in one single patch.
>
24/11/2021 13:35, Sunil Kumar Kori:
> Hi Thomas,
>
> Just wanted to confirm that all documentation patches should go as single patch or I can send it as a series of patches.
> I am ready with dlb2 changes also. Once you confirm I will send patches accordingly. Please confirm.
There is no specific comment in each patch, so it can go all in a single patch (v9).
Regards
Sunil Kumar Kori
>-----Original Message-----
>From: Thomas Monjalon <thomas@monjalon.net>
>Sent: Wednesday, November 24, 2021 6:12 PM
>To: Sunil Kumar Kori <skori@marvell.com>
>Cc: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; dev@dpdk.org;
>nikhil.rao@intel.com; Pavan Nikhilesh Bhagavatula
><pbhagavatula@marvell.com>; hemant.agrawal@nxp.com;
>nipun.gupta@nxp.com; harry.van.haaren@intel.com;
>mattias.ronnblom@ericsson.com; liang.j.ma@intel.com; dev@dpdk.org
>Subject: Re: [EXT] Re: [PATCH v8 01/10] doc: add skeleton for eventdevs
>feature matrices
>
>24/11/2021 13:35, Sunil Kumar Kori:
>> Hi Thomas,
>>
>> Just wanted to confirm that all documentation patches should go as single
>patch or I can send it as a series of patches.
>> I am ready with dlb2 changes also. Once you confirm I will send patches
>accordingly. Please confirm.
>
>There is no specific comment in each patch, so it can go all in a single patch
>(v9).
>
>
Ack.
From: Sunil Kumar Kori <skori@marvell.com> Patch adds feature matrices for event dev, Rx/Tx, Crypto and Timer adapters. Along with, .ini files are added for all supported PMDs. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- v9: - Squah doc patches into a single patch. - Add .ini file for dlb2 driver also - Fix minor review comments v8: - Fix script dump for dsw and SW driver - Review comments incorporated v7: - Rebased to 21.11 rc3 - Fix Tx adapter capabilities for SW driver v6: - Rebased to 21.11 rc2 - Added feature matrices for all supported drivers - Added doc vs code check script v5: - Rebased to 21.11 - Added feature matrix for cnxk. v4: - Rebased to 20.02 v3: - Removed .txt files to generate tables. - Use conf.py script to generate tables. - Add .ini file for all supported PMDs. v2: - Review comments incorporated .gitignore | 5 ++ doc/guides/conf.py | 25 ++++++++++ doc/guides/eventdevs/features/cnxk.ini | 31 +++++++++++++ doc/guides/eventdevs/features/default.ini | 51 +++++++++++++++++++++ doc/guides/eventdevs/features/dlb2.ini | 21 +++++++++ doc/guides/eventdevs/features/dpaa.ini | 27 +++++++++++ doc/guides/eventdevs/features/dpaa2.ini | 29 ++++++++++++ doc/guides/eventdevs/features/dsw.ini | 23 ++++++++++ doc/guides/eventdevs/features/octeontx.ini | 27 +++++++++++ doc/guides/eventdevs/features/octeontx2.ini | 30 ++++++++++++ doc/guides/eventdevs/features/opdl.ini | 18 ++++++++ doc/guides/eventdevs/features/sw.ini | 27 +++++++++++ doc/guides/eventdevs/index.rst | 1 + doc/guides/eventdevs/overview.rst | 40 ++++++++++++++++ 14 files changed, 355 insertions(+) create mode 100644 doc/guides/eventdevs/features/cnxk.ini create mode 100644 doc/guides/eventdevs/features/default.ini create mode 100644 doc/guides/eventdevs/features/dlb2.ini create mode 100644 doc/guides/eventdevs/features/dpaa.ini create mode 100644 doc/guides/eventdevs/features/dpaa2.ini create mode 100644 doc/guides/eventdevs/features/dsw.ini create mode 100644 doc/guides/eventdevs/features/octeontx.ini create mode 100644 doc/guides/eventdevs/features/octeontx2.ini create mode 100644 doc/guides/eventdevs/features/opdl.ini create mode 100644 doc/guides/eventdevs/features/sw.ini create mode 100644 doc/guides/eventdevs/overview.rst diff --git a/.gitignore b/.gitignore index b98a43a601..212c7aa28e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,11 @@ doc/guides/regexdevs/overview_feature_table.txt doc/guides/vdpadevs/overview_feature_table.txt doc/guides/bbdevs/overview_feature_table.txt doc/guides/gpus/overview_feature_table.txt +doc/guides/eventdevs/overview_feature_table.txt +doc/guides/eventdevs/overview_rx_adptr_feature_table.txt +doc/guides/eventdevs/overview_tx_adptr_feature_table.txt +doc/guides/eventdevs/overview_crypto_adptr_feature_table.txt +doc/guides/eventdevs/overview_timer_adptr_feature_table.txt # ignore generated ctags/cscope files cscope.out.po diff --git a/doc/guides/conf.py b/doc/guides/conf.py index e6ce929bc8..1743ce301f 100644 --- a/doc/guides/conf.py +++ b/doc/guides/conf.py @@ -401,6 +401,31 @@ def setup(app): 'Features', 'Features availability in GPU drivers', 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_feature_table.txt' + generate_overview_table(table_file, 1, + 'Scheduling Features', + 'Features availability in eventdev drivers', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_rx_adptr_feature_table.txt' + generate_overview_table(table_file, 2, + 'Eth Rx adapter Features', + 'Features availability for Ethdev Rx adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_tx_adptr_feature_table.txt' + generate_overview_table(table_file, 3, + 'Eth Tx adapter Features', + 'Features availability for Ethdev Tx adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_crypto_adptr_feature_table.txt' + generate_overview_table(table_file, 4, + 'Crypto adapter Features', + 'Features availability for Crypto adapters', + 'Feature') + table_file = dirname(__file__) + '/eventdevs/overview_timer_adptr_feature_table.txt' + generate_overview_table(table_file, 5, + 'Timer adapter Features', + 'Features availability for Timer adapters', + 'Feature') if LooseVersion(sphinx_version) < LooseVersion('1.3.1'): print('Upgrade sphinx to version >= 1.3.1 for ' diff --git a/doc/guides/eventdevs/features/cnxk.ini b/doc/guides/eventdevs/features/cnxk.ini new file mode 100644 index 0000000000..7633c6e3a2 --- /dev/null +++ b/doc/guides/eventdevs/features/cnxk.ini @@ -0,0 +1,31 @@ +; +; Supported features of the 'cnxk' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y + +[Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y +event_vector = Y + +[Eth Tx adapter Features] +internal_port = Y +event_vector = Y + +[Crypto adapter Features] +internal_port_op_fwd = Y +session_private_data = Y + +[Timer adapter Features] +internal_port = Y diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini new file mode 100644 index 0000000000..2ea233463a --- /dev/null +++ b/doc/guides/eventdevs/features/default.ini @@ -0,0 +1,51 @@ +; +; Features of a default eventdev driver. +; +; This file defines the features that are valid for inclusion in +; the other driver files and also the order that they appear in +; the features table in the documentation. +; +[Scheduling Features] +queue_qos = +event_qos = +distributed_sched = +queue_all_types = +burst_mode = +implicit_release_disable = +nonseq_mode = +runtime_port_link = +multiple_queue_port = +carry_flow_id = +maintenance_free = + +; +; Features of a default Ethernet Rx adapter. +; +[Eth Rx adapter Features] +internal_port = +multi_eventq = +override_flow_id = +event_vector = + +; +; Features of a default Ethernet Tx adapter. +; +[Eth Tx adapter Features] +internal_port = +event_vector = + +; +; Features of a default Crypto adapter. +; +[Crypto adapter Features] +internal_port_op_new = +internal_port_op_fwd = +internal_port_qp_ev_bind = +session_private_data = + +; +; Features of a default Timer adapter. +; +[Timer adapter Features] +internal_port = +periodic = diff --git a/doc/guides/eventdevs/features/dlb2.ini b/doc/guides/eventdevs/features/dlb2.ini new file mode 100644 index 0000000000..29747b1c26 --- /dev/null +++ b/doc/guides/eventdevs/features/dlb2.ini @@ -0,0 +1,21 @@ +; +; Supported features of the 'dlb2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] +queue_qos = Y +event_qos = Y +distributed_sched = Y +queue_all_types = Y +burst_mode = Y +implicit_release_disable = Y +maintenance_free = Y + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/dpaa.ini b/doc/guides/eventdevs/features/dpaa.ini new file mode 100644 index 0000000000..b73bfa02e5 --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa.ini @@ -0,0 +1,27 @@ +; +; Supported features of the 'dpaa' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] +distributed_sched = Y +burst_mode = Y +nonseq_mode = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y + +[Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y + +[Eth Tx adapter Features] +internal_port = Y + +[Crypto adapter Features] +internal_port_op_new = Y +internal_port_qp_ev_bind = Y +session_private_data = Y + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/dpaa2.ini b/doc/guides/eventdevs/features/dpaa2.ini new file mode 100644 index 0000000000..c935bd0cfc --- /dev/null +++ b/doc/guides/eventdevs/features/dpaa2.ini @@ -0,0 +1,29 @@ +; +; Supported features of the 'dpaa2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] +distributed_sched = Y +queue_all_types = Y +burst_mode = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y + +[Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y +override_flow_id = Y + +[Eth Tx adapter Features] +internal_port = Y + +[Crypto adapter Features] +internal_port_op_new = Y +internal_port_qp_ev_bind = Y +session_private_data = Y + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/dsw.ini b/doc/guides/eventdevs/features/dsw.ini new file mode 100644 index 0000000000..c8bc6b3f1d --- /dev/null +++ b/doc/guides/eventdevs/features/dsw.ini @@ -0,0 +1,23 @@ +; +; Supported features of the 'distributed software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] +distributed_sched = Y +burst_mode = Y +nonseq_mode = Y +multiple_queue_port = Y +carry_flow_id = Y + +[Eth Rx adapter Features] +multi_eventq = Y +override_flow_id = Y +event_vector = Y + +[Eth Tx adapter Features] + +[Crypto adapter Features] +session_private_data = Y + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/octeontx.ini b/doc/guides/eventdevs/features/octeontx.ini new file mode 100644 index 0000000000..ec044e6289 --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx.ini @@ -0,0 +1,27 @@ +; +; Supported features of the 'octeontx' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y + +[Eth Rx adapter Features] +internal_port = Y + +[Eth Tx adapter Features] +internal_port = Y + +[Crypto adapter Features] +internal_port_op_fwd = Y +session_private_data = Y + +[Timer adapter Features] +internal_port = Y diff --git a/doc/guides/eventdevs/features/octeontx2.ini b/doc/guides/eventdevs/features/octeontx2.ini new file mode 100644 index 0000000000..05b84beb6e --- /dev/null +++ b/doc/guides/eventdevs/features/octeontx2.ini @@ -0,0 +1,30 @@ +; +; Supported features of the 'octeontx2' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] +queue_qos = Y +distributed_sched = Y +queue_all_types = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y + +[Eth Rx adapter Features] +internal_port = Y +multi_eventq = Y + +[Eth Tx adapter Features] +internal_port = Y + +[Crypto adapter Features] +internal_port_op_new = Y +internal_port_op_fwd = Y +internal_port_qp_ev_bind = Y + +[Timer adapter Features] +internal_port = Y +periodic = Y diff --git a/doc/guides/eventdevs/features/opdl.ini b/doc/guides/eventdevs/features/opdl.ini new file mode 100644 index 0000000000..5cc35d3c77 --- /dev/null +++ b/doc/guides/eventdevs/features/opdl.ini @@ -0,0 +1,18 @@ +; +; Supported features of 'Ordered Packet Distribution Library' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] +burst_mode = Y +carry_flow_id = Y +maintenance_free = Y + +[Eth Rx adapter Features] + +[Eth Tx adapter Features] + +[Crypto adapter Features] +session_private_data = Y + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/features/sw.ini b/doc/guides/eventdevs/features/sw.ini new file mode 100644 index 0000000000..8c89d3b8d2 --- /dev/null +++ b/doc/guides/eventdevs/features/sw.ini @@ -0,0 +1,27 @@ +; +; Supported features of the 'software' eventdev driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Scheduling Features] +queue_qos = Y +event_qos = Y +burst_mode = Y +implicit_release_disable = Y +nonseq_mode = Y +runtime_port_link = Y +multiple_queue_port = Y +carry_flow_id = Y +maintenance_free = Y + +[Eth Rx adapter Features] +multi_eventq = Y +override_flow_id = Y +event_vector = Y + +[Eth Tx adapter Features] + +[Crypto adapter Features] +session_private_data = Y + +[Timer adapter Features] diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index 2143025390..b11657f7ae 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -11,6 +11,7 @@ application through the eventdev API. :maxdepth: 2 :numbered: + overview cnxk dlb2 dpaa diff --git a/doc/guides/eventdevs/overview.rst b/doc/guides/eventdevs/overview.rst new file mode 100644 index 0000000000..3c5ee515f8 --- /dev/null +++ b/doc/guides/eventdevs/overview.rst @@ -0,0 +1,40 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(C) 2021 Marvell. + +Event Device Supported Functionality Matrices +============================================= + +Event device supported features +------------------------------- + +.. _table_eventdev_pmd_features: + +.. include:: overview_feature_table.txt + +Ethernet Rx adapter supported features +-------------------------------------- + +.. _table_eventdev_rx_adapter_features: + +.. include:: overview_rx_adptr_feature_table.txt + +Ethernet Tx adapter supported features +-------------------------------------- + +.. _table_eventdev_tx_adapter_features: + +.. include:: overview_tx_adptr_feature_table.txt + +Crypto device adapter supported features +---------------------------------------- + +.. _table_cryptodev_adapter_features: + +.. include:: overview_crypto_adptr_feature_table.txt + +Timer adapter supported features +-------------------------------- + +.. _table_timer_adapter_features: + +.. include:: overview_timer_adptr_feature_table.txt -- 2.25.1
Regards
Sunil Kumar Kori
>-----Original Message-----
>From: Sunil Kumar Kori <skori@marvell.com>
>Sent: Wednesday, November 24, 2021 6:17 PM
>To: Thomas Monjalon <thomas@monjalon.net>
>Cc: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; dev@dpdk.org;
>nikhil.rao@intel.com; Pavan Nikhilesh Bhagavatula
><pbhagavatula@marvell.com>; hemant.agrawal@nxp.com;
>nipun.gupta@nxp.com; harry.van.haaren@intel.com;
>mattias.ronnblom@ericsson.com; liang.j.ma@intel.com; dev@dpdk.org
>Subject: RE: [EXT] Re: [PATCH v8 01/10] doc: add skeleton for eventdevs
>feature matrices
>
>
>
>Regards
>Sunil Kumar Kori
>
>>-----Original Message-----
>>From: Thomas Monjalon <thomas@monjalon.net>
>>Sent: Wednesday, November 24, 2021 6:12 PM
>>To: Sunil Kumar Kori <skori@marvell.com>
>>Cc: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; dev@dpdk.org;
>>nikhil.rao@intel.com; Pavan Nikhilesh Bhagavatula
>><pbhagavatula@marvell.com>; hemant.agrawal@nxp.com;
>>nipun.gupta@nxp.com; harry.van.haaren@intel.com;
>>mattias.ronnblom@ericsson.com; liang.j.ma@intel.com; dev@dpdk.org
>>Subject: Re: [EXT] Re: [PATCH v8 01/10] doc: add skeleton for eventdevs
>>feature matrices
>>
>>24/11/2021 13:35, Sunil Kumar Kori:
>>> Hi Thomas,
>>>
>>> Just wanted to confirm that all documentation patches should go as
>>> single
>>patch or I can send it as a series of patches.
>>> I am ready with dlb2 changes also. Once you confirm I will send
>>> patches
>>accordingly. Please confirm.
>>
>>There is no specific comment in each patch, so it can go all in a
>>single patch (v9).
>>
>>
>Ack.
I sent v9. Please have a look.
24/11/2021 14:03, skori@marvell.com:
> From: Sunil Kumar Kori <skori@marvell.com>
>
> Patch adds feature matrices for event dev, Rx/Tx, Crypto
> and Timer adapters.
>
> Along with, .ini files are added for all supported PMDs.
>
> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
Applied, thanks.
I hope we can merge the script to check these matrices soon.