diff mbox

[net-next] liquidio: replace skb_tx_hash with fallback

Message ID 20170112184606.GA5503@felix.cavium.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Manlunas, Felix Jan. 12, 2017, 6:46 p.m. UTC
From: Satanand Burla <satananda.burla@cavium.com>

Use fallback instead of skb_tx_hash for selecting txq

Signed-off-by: Satanand Burla <satananda.burla@cavium.com>
Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: Derek Chickles <derek.chickles@cavium.com>
---
 drivers/net/ethernet/cavium/liquidio/lio_main.c    | 10 ++--------
 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 11 ++---------
 2 files changed, 4 insertions(+), 17 deletions(-)

Comments

Eric Dumazet Jan. 12, 2017, 7:10 p.m. UTC | #1
On Thu, 2017-01-12 at 10:46 -0800, Felix Manlunas wrote:
> From: Satanand Burla <satananda.burla@cavium.com>
> 
> Use fallback instead of skb_tx_hash for selecting txq
> 
> Signed-off-by: Satanand Burla <satananda.burla@cavium.com>
> Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
> Signed-off-by: Derek Chickles <derek.chickles@cavium.com>
> ---
>  drivers/net/ethernet/cavium/liquidio/lio_main.c    | 10 ++--------
>  drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 11 ++---------
>  2 files changed, 4 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c
> index b8b579d..90f000f 100644
> --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c
> +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c
> @@ -2231,15 +2231,9 @@ static void if_cfg_callback(struct octeon_device *oct,
>   */
>  static u16 select_q(struct net_device *dev, struct sk_buff *skb,
>  		    void *accel_priv __attribute__((unused)),
> -		    select_queue_fallback_t fallback __attribute__((unused)))
> +		    select_queue_fallback_t fallback)
>  {
> -	u32 qindex = 0;
> -	struct lio *lio;
> -
> -	lio = GET_LIO(dev);
> -	qindex = skb_tx_hash(dev, skb);
> -
> -	return (u16)(qindex % (lio->linfo.num_txpciq));
> +	return fallback(dev, skb);
>  }
>  
>  /** Routine to push packets arriving on Octeon interface upto network layer.
> diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
> index ad2e72d..a7478eb 100644
> --- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
> +++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
> @@ -1463,16 +1463,9 @@ static void if_cfg_callback(struct octeon_device *oct,
>   */
>  static u16 select_q(struct net_device *dev, struct sk_buff *skb,
>  		    void *accel_priv __attribute__((unused)),
> -		    select_queue_fallback_t fallback __attribute__((unused)))
> +		    select_queue_fallback_t fallback)
>  {
> -	struct lio *lio;
> -	u32 qindex;
> -
> -	lio = GET_LIO(dev);
> -
> -	qindex = skb_tx_hash(dev, skb);
> -
> -	return (u16)(qindex % (lio->linfo.num_txpciq));
> +	return fallback(dev, skb);
>  }
>  
>  /** Routine to push packets arriving on Octeon interface upto network layer.


Why are you keeping these functions then ?

Remove them completely, and remove .ndo_select_queue from your ops.

Core networking stack will fallback automatically.
David Miller Jan. 12, 2017, 9:51 p.m. UTC | #2
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Thu, 12 Jan 2017 11:10:18 -0800

> Why are you keeping these functions then ?
> 
> Remove them completely, and remove .ndo_select_queue from your ops.
> 
> Core networking stack will fallback automatically.

Agreed, if all the queue selection function is doing is invoking the
fallback, get rid of it.
diff mbox

Patch

diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c
index b8b579d..90f000f 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_main.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c
@@ -2231,15 +2231,9 @@  static void if_cfg_callback(struct octeon_device *oct,
  */
 static u16 select_q(struct net_device *dev, struct sk_buff *skb,
 		    void *accel_priv __attribute__((unused)),
-		    select_queue_fallback_t fallback __attribute__((unused)))
+		    select_queue_fallback_t fallback)
 {
-	u32 qindex = 0;
-	struct lio *lio;
-
-	lio = GET_LIO(dev);
-	qindex = skb_tx_hash(dev, skb);
-
-	return (u16)(qindex % (lio->linfo.num_txpciq));
+	return fallback(dev, skb);
 }
 
 /** Routine to push packets arriving on Octeon interface upto network layer.
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
index ad2e72d..a7478eb 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
@@ -1463,16 +1463,9 @@  static void if_cfg_callback(struct octeon_device *oct,
  */
 static u16 select_q(struct net_device *dev, struct sk_buff *skb,
 		    void *accel_priv __attribute__((unused)),
-		    select_queue_fallback_t fallback __attribute__((unused)))
+		    select_queue_fallback_t fallback)
 {
-	struct lio *lio;
-	u32 qindex;
-
-	lio = GET_LIO(dev);
-
-	qindex = skb_tx_hash(dev, skb);
-
-	return (u16)(qindex % (lio->linfo.num_txpciq));
+	return fallback(dev, skb);
 }
 
 /** Routine to push packets arriving on Octeon interface upto network layer.