At the moment oversize kvmalloc warnings are triggered once using WARN_ON_ONCE() macro. One issue with this approach is that it only detects the first abuser and then ignores the remaining abusers which complicates detecting all such abusers in a timely manner. The situation becomes worse when the repro has low probability and requires production traffic and thus require large set of machines to find such abusers. In Mera production, this warn once is slowing down the detection of these abusers. Simply replace WARN_ON_ONCE with WARN_RATELIMIT. Reported-by: Kyle McMartin <kyle@xxxxxxxxxxxxx> Signed-off-by: Shakeel Butt <shakeel.butt@xxxxxxxxx> --- mm/util.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/util.c b/mm/util.c index 10f215985fe5..de36344e8d53 100644 --- a/mm/util.c +++ b/mm/util.c @@ -649,7 +649,8 @@ void *kvmalloc_node_noprof(size_t size, gfp_t flags, int node) /* Don't even allow crazy sizes */ if (unlikely(size > INT_MAX)) { - WARN_ON_ONCE(!(flags & __GFP_NOWARN)); + WARN_RATELIMIT(!(flags & __GFP_NOWARN), "size = %zu > INT_MAX", + size); return NULL; } -- 2.43.0