Subject: Re: [PATCH net-next 2/3] net: qualcomm: rmnet: add tx packets aggregation

From: Jakub Kicinski <[email-masked]>
Date: Fri, 11 Nov 2022 09:11:41 -0800

On Thu, 10 Nov 2022 18:17:09 -0700 Subash Abhinov Kasiviswanathan (KS)
wrote:
> The difference here is that hardware would use a single descriptor for 
> aggregation vs multiple descriptors for scatter gather.
> 
> I wonder if this issue is related to pacing though.
> Daniele, perhaps you can try this hack without enabling EGRESS 
> AGGREGATION and check if you are able to reach the same level of 
> performance for your scenario.
> 
> --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c
> +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c
> @@ -236,7 +236,7 @@ void rmnet_egress_handler(struct sk_buff *skb)
>          struct rmnet_priv *priv;
>          u8 mux_id;
> 
> -       sk_pacing_shift_update(skb->sk, 8);
> +       skb_orphan(skb);
> 
>          orig_dev = skb->dev;
>          priv = netdev_priv(orig_dev);

The pacing shift update is much cleaner than orphaning packets, IMHO.
And the aggregation should hold onto the original skbs (a list?) and
free them once the aggregate was transmitted.