net/tap: add deprecation notice for RTE_FLOW_ACTION_RSS

Message ID 20231214174951.8317-1-stephen@networkplumber.org (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series net/tap: add deprecation notice for RTE_FLOW_ACTION_RSS |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/github-robot: build success github build: passed
ci/intel-Testing success Testing PASS
ci/intel-Functional success Functional PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-unit-arm64-testing success Testing PASS
ci/iol-unit-amd64-testing success Testing PASS
ci/iol-compile-amd64-testing success Testing PASS
ci/iol-compile-arm64-testing success Testing PASS
ci/iol-sample-apps-testing success Testing PASS

Commit Message

Stephen Hemminger Dec. 14, 2023, 5:49 p.m. UTC
  The BPF infrastructure in kernel changed which broke the method
being used to load the RSS part of rte_flow in the TAP device.
Since this is a little used feature, and fixing the problem would
be moderately complex and create new dependency on libbpf,
mark the feature as deprecated and plan for removal.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 doc/guides/rel_notes/deprecation.rst | 5 +++++
 1 file changed, 5 insertions(+)
  

Comments

Ferruh Yigit Dec. 14, 2023, 6:03 p.m. UTC | #1
On 12/14/2023 5:49 PM, Stephen Hemminger wrote:
> The BPF infrastructure in kernel changed which broke the method
> being used to load the RSS part of rte_flow in the TAP device.
> Since this is a little used feature, and fixing the problem would
> be moderately complex and create new dependency on libbpf,
> mark the feature as deprecated and plan for removal.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>  doc/guides/rel_notes/deprecation.rst | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 81b93515cbd9..7d9012ada2d7 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -146,3 +146,8 @@ Deprecation Notices
>    will be deprecated and subsequently removed in DPDK 24.11 release.
>    Before this, the new port library API (functions rte_swx_port_*)
>    will gradually transition from experimental to stable status.
> +
> +* tap: The support for RTE_FLOW_ACTION_TYPE_RSS is deprecated and
> +  will be removed in DPDK 24.11 release. It is already broken on recent
> +  Linux kernels due to changes in how BPF programs are loaded,
> +  and will not be fixed.
>

It wasn't even building until Stephen fixed it. It is an effort to keep
it functional, unless someone commits on maintaining the feature I am
for removing it.


Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
  
Kumara Parameshwaran Dec. 14, 2023, 6:48 p.m. UTC | #2
On Thu, Dec 14, 2023, 11:20 PM Stephen Hemminger <stephen@networkplumber.org>
wrote:

> The BPF infrastructure in kernel changed which broke the method
> being used to load the RSS part of rte_flow in the TAP device.
> Since this is a little used feature, and fixing the problem would
> be moderately complex and create new dependency on libbpf,
> mark the feature as deprecated and plan for removal.

    Does this mean that RSS will not work with netvsc as netvsc is using
tap and mellanox ? Or will that not be affected .

>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>  doc/guides/rel_notes/deprecation.rst | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst
> b/doc/guides/rel_notes/deprecation.rst
> index 81b93515cbd9..7d9012ada2d7 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -146,3 +146,8 @@ Deprecation Notices
>    will be deprecated and subsequently removed in DPDK 24.11 release.
>    Before this, the new port library API (functions rte_swx_port_*)
>    will gradually transition from experimental to stable status.
> +
> +* tap: The support for RTE_FLOW_ACTION_TYPE_RSS is deprecated and
> +  will be removed in DPDK 24.11 release. It is already broken on recent
> +  Linux kernels due to changes in how BPF programs are loaded,
> +  and will not be fixed.
> --
> 2.43.0
>
>
  
Stephen Hemminger Dec. 15, 2023, 3:01 a.m. UTC | #3
On Fri, 15 Dec 2023 00:18:41 +0530
kumaraparameshwaran rathinavel <kumaraparamesh92@gmail.com> wrote:

> On Thu, Dec 14, 2023, 11:20 PM Stephen Hemminger <stephen@networkplumber.org>
> wrote:
> 
> > The BPF infrastructure in kernel changed which broke the method
> > being used to load the RSS part of rte_flow in the TAP device.
> > Since this is a little used feature, and fixing the problem would
> > be moderately complex and create new dependency on libbpf,
> > mark the feature as deprecated and plan for removal.  
> 
>     Does this mean that RSS will not work with netvsc as netvsc is using
> tap and mellanox ? Or will that not be affected .


The netvsc driver does not support rte_flow because the packets arrive
direct from host (over vmbus). It does have normal RSS.
It many ways netvsc is equivalent in functionality to virtio and vmxnet3.

The tap BPF stuff was only useful for doing flow steering to a set of
queues. It was a hack to get the kernel to do flow steering.
  
Stephen Hemminger Dec. 15, 2023, 3:57 a.m. UTC | #4
On Thu, 14 Dec 2023 09:49:51 -0800
Stephen Hemminger <stephen@networkplumber.org> wrote:

> The BPF infrastructure in kernel changed which broke the method
> being used to load the RSS part of rte_flow in the TAP device.
> Since this is a little used feature, and fixing the problem would
> be moderately complex and create new dependency on libbpf,
> mark the feature as deprecated and plan for removal.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>  doc/guides/rel_notes/deprecation.rst | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 81b93515cbd9..7d9012ada2d7 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -146,3 +146,8 @@ Deprecation Notices
>    will be deprecated and subsequently removed in DPDK 24.11 release.
>    Before this, the new port library API (functions rte_swx_port_*)
>    will gradually transition from experimental to stable status.
> +
> +* tap: The support for RTE_FLOW_ACTION_TYPE_RSS is deprecated and
> +  will be removed in DPDK 24.11 release. It is already broken on recent
> +  Linux kernels due to changes in how BPF programs are loaded,
> +  and will not be fixed.

See DPDK bugzilla 1329
https://bugs.dpdk.org/show_bug.cgi?id=1329
  
Kumara Parameshwaran Dec. 15, 2023, 4:58 a.m. UTC | #5
On Fri, Dec 15, 2023, 8:31 AM Stephen Hemminger <stephen@networkplumber.org>
wrote:

> On Fri, 15 Dec 2023 00:18:41 +0530
> kumaraparameshwaran rathinavel <kumaraparamesh92@gmail.com> wrote:
>
> > On Thu, Dec 14, 2023, 11:20 PM Stephen Hemminger <
> stephen@networkplumber.org>
> > wrote:
> >
> > > The BPF infrastructure in kernel changed which broke the method
> > > being used to load the RSS part of rte_flow in the TAP device.
> > > Since this is a little used feature, and fixing the problem would
> > > be moderately complex and create new dependency on libbpf,
> > > mark the feature as deprecated and plan for removal.
> >
> >     Does this mean that RSS will not work with netvsc as netvsc is using
> > tap and mellanox ? Or will that not be affected .
>
>
> The netvsc driver does not support rte_flow because the packets arrive
> direct from host (over vmbus). It does have normal RSS.
> It many ways netvsc is equivalent in functionality to virtio and vmxnet3.
>
> The tap BPF stuff was only useful for doing flow steering to a set of
> queues. It was a hack to get the kernel to do flow steering.
>

Sure. I wanted to mean that the failsafe PMD that uses tap and mellanox
relies on offloads of both the devices. So  will this cause failsafe PMD to
not use RSS and hence some performance impact ?

>
  

Patch

diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 81b93515cbd9..7d9012ada2d7 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -146,3 +146,8 @@  Deprecation Notices
   will be deprecated and subsequently removed in DPDK 24.11 release.
   Before this, the new port library API (functions rte_swx_port_*)
   will gradually transition from experimental to stable status.
+
+* tap: The support for RTE_FLOW_ACTION_TYPE_RSS is deprecated and
+  will be removed in DPDK 24.11 release. It is already broken on recent
+  Linux kernels due to changes in how BPF programs are loaded,
+  and will not be fixed.