On Wed, 18 Nov 2020 21:02:29 +0100 Eric Dumazet wrote: > On Wed, Nov 18, 2020 at 8:22 PM Jakub Kicinski <k...@kernel.org> wrote: > > > > On Tue, 17 Nov 2020 12:33:55 -0800 Saeed Mahameed wrote: > > > From: Maxim Mikityanskiy <maxi...@mellanox.com> > > > > > > All GRO flows except one call skb->destructor, however, GRO_MERGED_FREE > > > doesn't do it in case of NAPI_GRO_FREE_STOLEN_HEAD. For better > > > consistency and to add resiliency against the drivers that may pass SKBs > > > with a destructor, this patch changes napi_skb_free_stolen_head to use > > > skb_release_head_state, which should perform all the needed cleanups, > > > including a call to the destructor. This way the code of GRO_MERGED_FREE > > > becomes similar to kfree_skb_partial. > > > > > > Fixes: e44699d2c280 ("net: handle NAPI_GRO_FREE_STOLEN_HEAD case also in > > > napi_frags_finish()") > > > Fixes: d7e8883cfcf4 ("net: make GRO aware of skb->head_frag") > > > Signed-off-by: Maxim Mikityanskiy <maxi...@mellanox.com> > > > Reviewed-by: Tariq Toukan <tar...@nvidia.com> > > > Signed-off-by: Saeed Mahameed <sae...@nvidia.com> > > > > CC Eric for GRO expertise. > > Thanks for CCing me. > > Since when drivers can pass funny skbs with destructors ??? > > Can we please stop adding more cycles to _already_ expensive GRO ?
I don't think they do that today much (save for the ktls optimization in mlx5 Maxim is fixing separately). But I believe the idea of early demux in XDP had been floated in the past. If we don't want that to happen we should document it (stating the obvious).