OSDN Git Service

net: skbuff: avoid accessing page_pool if !napi_safe when returning page
authorAlexander Lobakin <aleksander.lobakin@intel.com>
Fri, 4 Aug 2023 18:05:27 +0000 (20:05 +0200)
committerJakub Kicinski <kuba@kernel.org>
Mon, 7 Aug 2023 20:05:53 +0000 (13:05 -0700)
commit5b899c33b3b852b9559b724cfee67801324a0886
tree04f181ec2e4d623f1bea0f1f578a1646619ea18f
parent06d0fbdad612cb8def19065cf1fa14fc34dba9f8
net: skbuff: avoid accessing page_pool if !napi_safe when returning page

Currently, pp->p.napi is always read, but the actual variable it gets
assigned to is read-only when @napi_safe is true. For the !napi_safe
cases, which yet is still a pack, it's an unneeded operation.
Moreover, it can lead to premature or even redundant page_pool
cacheline access. For example, when page_pool_is_last_frag() returns
false (with the recent frag improvements).
Thus, read it only when @napi_safe is true. This also allows moving
@napi inside the condition block itself. Constify it while we are
here, because why not.

Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com>
Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
Link: https://lore.kernel.org/r/20230804180529.2483231-5-aleksander.lobakin@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/skbuff.c