On Tue, Dec 12, 2023 at 6:06 AM Hou Tao <houtao@xxxxxxxxxxxxxxx> wrote: > > > anyway to be on the safe side with some other configs and possible > > huge kernel modules the '1 << 20' looks good to me, also for uprobe > > multi > > Thanks. Will post v2 if Alexei is also fine with such limitations. Yeah. The limit looks fine. > >> can not be fulfilled, right ? Because kvcalloc() will still return > >> -ENOMEM when __GFP_NOWARN is used, so the userspace knows the malloc > >> failed. And I also found out that __GFP_NOWARN only effect the > >> invocation of vmalloc(), because kvmalloc_node() enable __GFP_NOWARN for > >> kmalloc() by default when the passed size is greater than PAGE_SIZE. Right, because kmalloc of more than a page will likely fail. But vmalloc() may fail for all kinds of other reasons. Suppressing them all prevents those messages appearing in the future. The warn is there by default, so that users think about memory allocations they request. So it served its exact purpose. Just returning ENOMEM to user space would have been unnoticed and cnt > INT_MAX would continue to be acceptable which potentially opens up DoS, and other abuse.