On 19/04/2023 16.18, Eric Dumazet wrote:
On Wed, Apr 19, 2023 at 4:02 PM Jesper Dangaard Brouer
<jbrouer@xxxxxxxxxx> wrote:
With TCP sockets (pipes etc) we can take care of closing the sockets
(and programs etc) to free up the SKBs (and perhaps wait for timeouts)
to make sure the page_pool shutdown doesn't hang.
This can not happen in many cases, like pages being now mapped to user
space programs,
or nfsd or whatever.
I think that fundamentally, page pool should handle this case gracefully.
For instance, when a TCP socket is closed(), user space can die, but
many resources in the kernel are freed later.
We do not block a close() just because a qdisc decided to hold a
buffer for few minutes.
But page pool does handle this gracefully via scheduling a workqueue.
--Jesper