Re: [PATCH net] net: fec: Use page_pool_put_full_page when freeing rx buffers

From: Jesse Brandeburg
Date: Thu Jan 19 2023 - 16:10:01 EST


On 1/18/2023 8:37 PM, wei.fang@xxxxxxx wrote:
From: Wei Fang <wei.fang@xxxxxxx>

The page_pool_release_page was used when freeing rx buffers, and this
function just unmaps the page (if mapped) and does not recycle the page.
So after hundreds of down/up the eth0, the system will out of memory.
For more details, please refer to the following reproduce steps and
bug logs. To solve this issue and refer to the doc of page pool, the
page_pool_put_full_page should be used to replace page_pool_release_page.
Because this API will try to recycle the page if the page refcnt equal to
1. After testing 20000 times, the issue can not be reproduced anymore
(about testing 391 times the issue will occur on i.MX8MN-EVK before).

I had a look over other users in the kernel and it seems this bug hasn't propagated anywhere that I see.

Thanks, for the fix, seems good to me.

Reviewed-by: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>