Re: [RFC PATCH] mm: net: disable kswapd for high-order network buffer allocation
From: Barry Song <hidden>
Date: 2025-10-15 07:35:13
Also in:
linux-doc, linux-mm, lkml
On Wed, Oct 15, 2025 at 2:39 PM Eric Dumazet [off-list ref] wrote:
quoted
quoted
Tell them they are wrong.Well, we checked Qualcomm and MTK, and it seems both set these values relatively high. In other words, all the AOSP products we examined also use high values for these settings. Nobody is using tcp_wmem[0]=4096.The (fine and safe) default should be PAGE_SIZE. Perhaps they are dealing with systems with PAGE_SIZE=65536, but then the skb_page_frag_refill() would be a non issue there, because it would only allocate order-0 pages.
I am 100% sure that all of them handle PAGE_SIZE=4096. Google is working on 16KB page size for Android, but it is not ready yet(Please correct me if 16KB has been ready, Suren).
quoted
We’ll need some time to understand why these are configured this way in AOSP hardware.quoted
quoted
It might be worth exploring these settings further, but I can’t quite see their connection to high-order allocations, since high-order allocations are kernel macros. #define SKB_FRAG_PAGE_ORDER get_order(32768) #define PAGE_FRAG_CACHE_MAX_SIZE __ALIGN_MASK(32768, ~PAGE_MASK) #define PAGE_FRAG_CACHE_MAX_ORDER get_order(PAGE_FRAG_CACHE_MAX_SIZE) Is there anything I’m missing?What is your question exactly ? You read these macros just fine. What is your point ?My question is whether these settings influence how often high-order allocations occur. In other words, would lowering these values make high-order allocations less frequent? If so, why?Because almost all of the buffers stored in TCP write queues are using order-3 pages on arches with 4K pages. I am a bit confused because you posted a patch changing skb_page_frag_refill() without realizing its first user is TCP. Look for sk_page_frag_refill() in tcp_sendmsg_locked()
Sure. Let me review the code further. The problem was observed on the MM side, causing over-reclamation and phone heating, while the source of the allocations lies in network activity. I am not a network expert and may be missing many network details, so I am raising this RFC to both lists to see if the network and MM folks can discuss together to find a solution. As you can see, the discussion has absolutely forked into two branches. :-) Thanks Barry