Message ID | 20170112184606.GA5503@felix.cavium.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
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.
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 --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.