Re: Re: [PATCH] net/net_failover: fix queue exceeding warning

From: Pavan Chebbi
Date: Tue Mar 21 2023 - 04:25:55 EST


On Tue, Mar 21, 2023 at 11:17 AM Faicker Mo <faicker.mo@xxxxxxxxx> wrote:
>
> When tx from the net_failover device, the actual tx queue number is the salve device.

Then why is primary OK..

> The ndo_select_queue of net_failover device returns the txq which is the primary device txq
> if the primary device is OK.

This is what is done in all the functions. I don't think there is a problem.
Not sure if there is an issue I am not getting, at least with the description.
I will let the maintainer take the call. Thanks.

> This number may be bigger than the default 16 of the net_failover device.
> A warning will be reported in netdev_cap_txqueue which device is the net_failover.
>
>
> From: Pavan Chebbi <pavan.chebbi@xxxxxxxxxxxx>
> Date: 2023-03-21 13:11:52
> To:Faicker Mo <faicker.mo@xxxxxxxxx>
> cc: Sridhar Samudrala <sridhar.samudrala@xxxxxxxxx>,"David S. Miller" <davem@xxxxxxxxxxxxx>,Eric Dumazet <edumazet@xxxxxxxxxx>,Jakub Kicinski <kuba@xxxxxxxxxx>,Paolo Abeni <pabeni@xxxxxxxxxx>,netdev@xxxxxxxxxxxxxxx,linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] net/net_failover: fix queue exceeding warning>On Tue, Mar 21, 2023 at 8:15 AM Faicker Mo <faicker.mo@xxxxxxxxx> wrote:
> >>
> >> If the primary device queue number is bigger than the default 16,
> >> there is a warning about the queue exceeding when tx from the
> >> net_failover device.
> >>
> >
> >Can you describe the issue more? If the net device has not implemented
> >its own selection then netdev_pick_tx should take care of the
> >real_num_tx_queues.
> >Is that not happening?
> >
> >> Signed-off-by: Faicker Mo <faicker.mo@xxxxxxxxx>
> >> ---
> >> drivers/net/net_failover.c | 8 ++------
> >> 1 file changed, 2 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/drivers/net/net_failover.c b/drivers/net/net_failover.c
> >> index 7a28e082436e..d0c916a53d7c 100644
> >> --- a/drivers/net/net_failover.c
> >> +++ b/drivers/net/net_failover.c
> >> @@ -130,14 +130,10 @@ static u16 net_failover_select_queue(struct net_device *dev,
> >> txq = ops->ndo_select_queue(primary_dev, skb, sb_dev);
> >> else
> >> txq = netdev_pick_tx(primary_dev, skb, NULL);
> >> -
> >> - qdisc_skb_cb(skb)->slave_dev_queue_mapping = skb->queue_mapping;
> >> -
> >> - return txq;
> >> + } else {
> >> + txq = skb_rx_queue_recorded(skb) ? skb_get_rx_queue(skb) : 0;
> >> }
> >>
> >> - txq = skb_rx_queue_recorded(skb) ? skb_get_rx_queue(skb) : 0;
> >> -
> >> /* Save the original txq to restore before passing to the driver */
> >> qdisc_skb_cb(skb)->slave_dev_queue_mapping = skb->queue_mapping;
> >>
> >> --
> >> 2.39.1
> >>
>
>

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature