page_pool: check for PP direct cache locality later
authorAlexander Lobakin <aleksander.lobakin@intel.com>
Fri, 29 Mar 2024 16:55:06 +0000 (17:55 +0100)
committerJakub Kicinski <kuba@kernel.org>
Wed, 3 Apr 2024 01:13:49 +0000 (18:13 -0700)
commit4a96a4e807c390a9d91b450ebe04eeb2e0ecc076
tree7cd6a0a9228500d95ff2b37b70c1109da474fdae
parent8db2509faa331865903a81a92f15c449e821b1d7
page_pool: check for PP direct cache locality later

Since we have pool->p.napi (Jakub) and pool->cpuid (Lorenzo) to check
whether it's safe to use direct recycling, we can use both globally for
each page instead of relying solely on @allow_direct argument.
Let's assume that @allow_direct means "I'm sure it's local, don't waste
time rechecking this" and when it's false, try the mentioned params to
still recycle the page directly. If neither is true, we'll lose some
CPU cycles, but then it surely won't be hotpath. On the other hand,
paths where it's possible to use direct cache, but not possible to
safely set @allow_direct, will benefit from this move.
The whole propagation of @napi_safe through a dozen of skb freeing
functions can now go away, which saves us some stack space.

Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com>
Link: https://lore.kernel.org/r/20240329165507.3240110-2-aleksander.lobakin@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/skbuff.h
net/core/page_pool.c
net/core/skbuff.c
net/ipv4/esp4.c
net/ipv6/esp6.c