Toke Høiland-Jørgensen wrote: > From: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> > > Commit 96360004b862 ("xdp: Make devmap flush_list common for all map > instances"), changed devmap flushing to be a global operation instead of a > per-map operation. However, the queue structure used for bulking was still > allocated as part of the containing map. > > This patch moves the devmap bulk queue into struct net_device. The > motivation for this is reusing it for the non-map variant of XDP_REDIRECT, > which will be changed in a subsequent commit. To avoid other fields of > struct net_device moving to different cache lines, we also move a couple of > other members around. > > We defer the actual allocation of the bulk queue structure until the > NETDEV_REGISTER notification devmap.c. This makes it possible to check for > ndo_xdp_xmit support before allocating the structure, which is not possible > at the time struct net_device is allocated. However, we keep the freeing in > free_netdev() to avoid adding another RCU callback on NETDEV_UNREGISTER. > > Because of this change, we lose the reference back to the map that > originated the redirect, so change the tracepoint to always return 0 as the > map ID and index. Otherwise no functional change is intended with this > patch. > > Acked-by: Björn Töpel <bjorn.topel@xxxxxxxxx> > Signed-off-by: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> > --- LGTM. I didn't check the net_device layout with pahole though so I'm trusting they are good from v1 discussion. Acked-by: John Fastabend <john.fastabend@xxxxxxxxx>