|
Revision tags: v24.11, v24.11-rc4, v24.11-rc3 |
|
| #
ba0a0e44 |
| 15-Nov-2024 |
Huichao Cai <chcchc88@163.com> |
graph: improve node layout
The members "dispatch" and "xstat_off" of the structure "rte_node" can be min cache aligned to make room for future expansion and to make sure have better performance. Add
graph: improve node layout
The members "dispatch" and "xstat_off" of the structure "rte_node" can be min cache aligned to make room for future expansion and to make sure have better performance. Add corresponding comments.
Signed-off-by: Huichao Cai <chcchc88@163.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
|
Revision tags: v24.11-rc2, v24.11-rc1 |
|
| #
070db97e |
| 15-Oct-2024 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
graph: support node xstats
Add ability for nodes to advertise xstat counters during registration and increment them in fastpath. Add support for retrieving/printing stats for node specific counters
graph: support node xstats
Add ability for nodes to advertise xstat counters during registration and increment them in fastpath. Add support for retrieving/printing stats for node specific counters using rte_graph_cluster_stats_get(). Add rte_node_xstat_increment() API to increment node specific counters.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Kiran Kumar K <kirankumark@marvell.com> Reviewed-by: Robin Jarry <rjarry@redhat.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
| #
28f0225a |
| 30-Sep-2024 |
Robin Jarry <rjarry@redhat.com> |
graph: expose node context as pointers
In some cases, the node context data is used to store two pointers because the data is larger than the reserved 16 bytes. Having to define intermediate structu
graph: expose node context as pointers
In some cases, the node context data is used to store two pointers because the data is larger than the reserved 16 bytes. Having to define intermediate structures just to be able to cast is tedious. And without intermediate structures, casting to opaque pointers is hard without violating strict aliasing rules.
Add an unnamed union to allow storing opaque pointers in the node context. Unfortunately, aligning an unnamed union that contains an array produces inconsistent results between C and C++. To preserve ABI/API compatibility in both C and C++, move all fast-path area fields into an unnamed struct which is itself cache aligned. Use __rte_cache_aligned to preserve existing alignment on architectures where cache lines are 128 bytes.
Add a static assert to ensure that the fast path area does not grow beyond a 64 bytes cache line.
Signed-off-by: Robin Jarry <rjarry@redhat.com> Acked-by: Kiran Kumar K <kirankumark@marvell.com>
show more ...
|
|
Revision tags: v24.07, v24.07-rc4, v24.07-rc3, v24.07-rc2, v24.07-rc1, v24.03, v24.03-rc4, v24.03-rc3, v24.03-rc2 |
|
| #
c6552d9a |
| 04-Mar-2024 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
lib: move alignment attribute on types for MSVC
The current location used for __rte_aligned(a) for alignment of types is not compatible with MSVC. There is only a single location accepted by both to
lib: move alignment attribute on types for MSVC
The current location used for __rte_aligned(a) for alignment of types is not compatible with MSVC. There is only a single location accepted by both toolchains.
The standard offers no alignment facility that compatibly interoperates with C and C++ but it may be achieved by relocating the placement of __rte_aligned(a) to the aforementioned location accepted by all currently supported toolchains.
To allow alignment for both compilers, do the following:
* Expand __rte_aligned(a) to __declspec(align(a)) when building with MSVC.
* Move __rte_aligned from the end of {struct,union} definitions to be between {struct,union} and tag.
The placement between {struct,union} and the tag allows the desired alignment to be imparted on the type regardless of the toolchain being used for all of GCC, LLVM, MSVC compilers building both C and C++.
Note: this move has an additional benefit as Doxygen is not confused anymore like for the rte_event_vector struct definition.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
| #
e9fd1ebf |
| 04-Mar-2024 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
lib: use C11 alignment attribute on variables
The current location used for __rte_aligned(a) for alignment of variables is not compatible with MSVC.
For variables, standard C11 offers alignas(a) su
lib: use C11 alignment attribute on variables
The current location used for __rte_aligned(a) for alignment of variables is not compatible with MSVC.
For variables, standard C11 offers alignas(a) supported by conformant compilers i.e. both MSVC and GCC.
Replace use of __rte_aligned(a) on variables/fields with alignas(a).
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
|
Revision tags: v24.03-rc1, v23.11, v23.11-rc4, v23.11-rc3, v23.11-rc2, v23.11-rc1 |
|
| #
8b674163 |
| 10-Aug-2023 |
Stephen Hemminger <stephen@networkplumber.org> |
graph: promote API as stable
The graph library has been marked experimental since initial release in 2020. Time to take the training wheels off.
Signed-off-by: Stephen Hemminger <stephen@networkplu
graph: promote API as stable
The graph library has been marked experimental since initial release in 2020. Time to take the training wheels off.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Zhirun Yan <zhirun.yan@intel.com>
show more ...
|
| #
971d2b57 |
| 11-Aug-2023 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
remove C11 compatibility macro
C11 conformant compiler is documented as a minimum requirement to build and consume DPDK. Remove use of RTE_STD_C11 macro marking use of C11 features with __extension_
remove C11 compatibility macro
C11 conformant compiler is documented as a minimum requirement to build and consume DPDK. Remove use of RTE_STD_C11 macro marking use of C11 features with __extension__ since it is no longer necessary and then remove definition of RTE_STD_C11 macro.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
show more ...
|
|
Revision tags: v23.07, v23.07-rc4, v23.07-rc3, v23.07-rc2 |
|
| #
358ff83f |
| 14-Jun-2023 |
Zhirun Yan <zhirun.yan@intel.com> |
graph: add stats for mcore dispatch model
Add stats for mcore dispatch model if stats collection is enabled.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Signed-off-by: Cunming Liang <cunming
graph: add stats for mcore dispatch model
Add stats for mcore dispatch model if stats collection is enabled.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Signed-off-by: Cunming Liang <cunming.liang@intel.com> Signed-off-by: Zhirun Yan <zhirun.yan@intel.com> Acked-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
show more ...
|
| #
e6c67c9e |
| 14-Jun-2023 |
Zhirun Yan <zhirun.yan@intel.com> |
graph: add structure for stream moving between cores
Add graph_mcore_dispatch_wq_node to hold graph scheduling workqueue node.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Signed-off-by: Cunm
graph: add structure for stream moving between cores
Add graph_mcore_dispatch_wq_node to hold graph scheduling workqueue node.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Signed-off-by: Cunming Liang <cunming.liang@intel.com> Signed-off-by: Zhirun Yan <zhirun.yan@intel.com>
show more ...
|
| #
0f8d9133 |
| 14-Jun-2023 |
Zhirun Yan <zhirun.yan@intel.com> |
graph: add get/set graph worker model APIs
Add new get/set APIs to configure graph worker model which is used to determine which model will be chosen.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.
graph: add get/set graph worker model APIs
Add new get/set APIs to configure graph worker model which is used to determine which model will be chosen.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Signed-off-by: Cunming Liang <cunming.liang@intel.com> Signed-off-by: Zhirun Yan <zhirun.yan@intel.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
| #
0580f49e |
| 14-Jun-2023 |
Zhirun Yan <zhirun.yan@intel.com> |
graph: move node process into inline function
Node process is a single and reusable block, move the code into an inline function.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Signed-off-by: C
graph: move node process into inline function
Node process is a single and reusable block, move the code into an inline function.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Signed-off-by: Cunming Liang <cunming.liang@intel.com> Signed-off-by: Zhirun Yan <zhirun.yan@intel.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
| #
a2bc0584 |
| 14-Jun-2023 |
Zhirun Yan <zhirun.yan@intel.com> |
graph: split graph worker into common and default model
To support multiple graph worker model, split graph into common and default. Naming the current walk function as rte_graph_model_rtc cause the
graph: split graph worker into common and default model
To support multiple graph worker model, split graph into common and default. Naming the current walk function as rte_graph_model_rtc cause the default model is RTC(Run-to-completion).
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Signed-off-by: Cunming Liang <cunming.liang@intel.com> Signed-off-by: Zhirun Yan <zhirun.yan@intel.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
| #
421073c0 |
| 14-Jun-2023 |
Zhirun Yan <zhirun.yan@intel.com> |
graph: rename rte graph worker header as common
Rename rte_graph_work.h to rte_graph_work_common.h for supporting multiple graph worker model.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Sig
graph: rename rte graph worker header as common
Rename rte_graph_work.h to rte_graph_work_common.h for supporting multiple graph worker model.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Signed-off-by: Cunming Liang <cunming.liang@intel.com> Signed-off-by: Zhirun Yan <zhirun.yan@intel.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|