On Tue, 2019-09-03 at 15:22 +0200, Michal Hocko wrote: > On Fri 30-08-19 18:15:22, Eric Dumazet wrote: > > If there is a risk of flooding the syslog, we should fix this generically > > in mm layer, not adding hundred of __GFP_NOWARN all over the places. > > We do already ratelimit in warn_alloc. If it isn't sufficient then we > can think of a different parameters. Or maybe it is the ratelimiting > which doesn't work here. Hard to tell and something to explore. The time-based ratelimit won't work for skb_build() as when a system under memory pressure, and the CPU is fast and IO is so slow, it could take a long time to swap and trigger OOM. I suppose what happens is those skb_build() allocations are from softirq, and once one of them failed, it calls printk() which generates more interrupts. Hence, the infinite loop.