On Tue, Apr 18, 2023 at 02:53:13PM +0800, Xuan Zhuo wrote: > Due to historical reasons, the implementation of XDP in virtio-net is relatively > chaotic. For example, the processing of XDP actions has two copies of similar > code. Such as page, xdp_page processing, etc. > > The purpose of this patch set is to refactor these code. Reduce the difficulty > of subsequent maintenance. Subsequent developers will not introduce new bugs > because of some complex logical relationships. > > In addition, the supporting to AF_XDP that I want to submit later will also need > to reuse the logic of XDP, such as the processing of actions, I don't want to > introduce a new similar code. In this way, I can reuse these codes in the > future. > > Please review. > > Thanks. Big refactoring, pls allow a bit more time for review. Thanks! > v2: > 1. re-split to make review more convenient > > v1: > 1. fix some variables are uninitialized > > Xuan Zhuo (14): > virtio_net: mergeable xdp: put old page immediately > virtio_net: introduce mergeable_xdp_prepare() > virtio_net: optimize mergeable_xdp_prepare() > virtio_net: introduce virtnet_xdp_handler() to seprate the logic of > run xdp > virtio_net: introduce xdp res enums > virtio_net: separate the logic of freeing xdp shinfo > virtio_net: separate the logic of freeing the rest mergeable buf > virtio_net: auto release xdp shinfo > virtio_net: introduce receive_mergeable_xdp() > virtio_net: merge: remove skip_xdp > virtio_net: introduce receive_small_xdp() > virtio_net: small: optimize code > virtio_net: small: optimize code > virtio_net: small: remove skip_xdp > > drivers/net/virtio_net.c | 625 +++++++++++++++++++++++---------------- > 1 file changed, 362 insertions(+), 263 deletions(-) > > -- > 2.32.0.3.g01195cf9f