Thread (12 messages) 12 messages, 4 authors, 2025-09-23

Re: [PATCH net-next] page_pool: add debug for release to cache from wrong CPU

From: Dragos Tatulea <dtatulea@nvidia.com>
Date: 2025-09-23 15:23:09
Also in: linux-rt-devel, lkml

On Mon, Sep 22, 2025 at 04:18:27PM -0700, Jakub Kicinski wrote:
On Sat, 20 Sep 2025 09:25:31 +0000 Dragos Tatulea wrote:
quoted
quoted
The patch seems half-baked. If the NAPI local recycling is incorrect
the pp will leak a reference and live forever. Which hopefully people
would notice. Are you adding this check just to double confirm that
any leaks you're chasing are in the driver, and not in the core?  
The point is not to chase leaks but races from doing a recycle to cache
from the wrong CPU. This is how XDP issue was caught where
xdp_set_return_frame_no_direct() was not set appropriately for cpumap [1].

My first approach was to __page_pool_put_page() but then I figured that
the warning should live closer to where the actual assignment happens.

[1] https://lore.kernel.org/all/e60404e2-4782-409f-8596-ae21ce7272c4@kernel.org/ (local)
Ah, that thing. I wonder whether the complexity in the driver-facing 
xdp_return API is really worth the gain here. IIUC we want to extract
the cases where we're doing local recycling and let those cases use
the lockless cache. But all those cases should be caught by automatic
local recycling detection, so caller can just pass false..
This patch was simply adding the debugging code to catch the potential
misuse from any callers.

I was planning to send another patch for the xdp_return() API part
once/if this one got accepted. If it makes more sense I can bundle them
together in a RFC (as merge window is coming).

Thanks,
Dragos
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help