Re: [PATCH net-next v4 0/6] page_pool: a couple of assorted optimizations

From: Alexander H Duyck
Date: Mon Aug 07 2023 - 10:53:15 EST


On Fri, 2023-08-04 at 20:05 +0200, Alexander Lobakin wrote:
> That initially was a spin-off of the IAVF PP series[0], but has grown
> (and shrunk) since then a bunch. In fact, it consists of three
> semi-independent blocks:
>
> * #1-2: Compile-time optimization. Split page_pool.h into 2 headers to
> not overbloat the consumers not needing complex inline helpers and
> then stop including it in skbuff.h at all. The first patch is also
> prereq for the whole series.
> * #3: Improve cacheline locality for users of the Page Pool frag API.
> * #4-6: Use direct cache recycling more aggressively, when it is safe
> obviously. In addition, make sure nobody wants to use Page Pool API
> with disabled interrupts.
>
> Patches #1 and #5 are authored by Yunsheng and Jakub respectively, with
> small modifications from my side as per ML discussions.
> For the perf numbers for #3-6, please see individual commit messages.
>
> Also available on my GH with many more Page Pool goodies[1].
>
> [0] https://lore.kernel.org/netdev/20230530150035.1943669-1-aleksander.lobakin@xxxxxxxxx
> [1] https://github.com/alobakin/linux/commits/iavf-pp-frag
>
> Alexander Lobakin (4):
> net: skbuff: don't include <net/page_pool/types.h> to <linux/skbuff.h>
> page_pool: place frag_* fields in one cacheline
> net: skbuff: avoid accessing page_pool if !napi_safe when returning
> page
> net: skbuff: always try to recycle PP pages directly when in softirq
>
> Jakub Kicinski (1):
> page_pool: add a lockdep check for recycling in hardirq
>
> Yunsheng Lin (1):
> page_pool: split types and declarations from page_pool.h

So the series mostly looks good to me. My only concern would be with
path 5 since I am not sure why we are just throwing a WARN_ON when we
could just take action on the info to prevent the problem in the first
place. That said the change doesn't hurt anything as-is so I would be
good with us thinking about changing that as a follow-up.

Reviewed-by: Alexander Duyck <alexanderduyck@xxxxxx>