On Thu, 1 Jun 2017 15:28:08 +0200 Michal Hocko <mhocko@xxxxxxxx> wrote: > On Thu 01-06-17 22:11:13, Tetsuo Handa wrote: > > Michal Hocko wrote: > > > On Thu 01-06-17 20:43:47, Tetsuo Handa wrote: > > > > Cong Wang has reported a lockup when running LTP memcg_stress test [1]. > > > > > > This seems to be on an old and not pristine kernel. Does it happen also > > > on the vanilla up-to-date kernel? > > > > 4.9 is not an old kernel! It might be close to the kernel version which > > enterprise distributions would choose for their next long term supported > > version. > > > > And please stop saying "can you reproduce your problem with latest > > linux-next (or at least latest linux)?" Not everybody can use the vanilla > > up-to-date kernel! > > The changelog mentioned that the source of stalls is not clear so this > might be out-of-tree patches doing something wrong and dump_stack > showing up just because it is called often. This wouldn't be the first > time I have seen something like that. I am not really keen on adding > heavy lifting for something that is not clearly debugged and based on > hand waving and speculations. I'm thinking we should serialize warn_alloc anyway, to prevent the output from concurrent calls getting all jumbled together? I'm not sure I buy the "this isn't a mainline kernel" thing. warn_alloc() obviously isn't very robust, but we'd prefer that it be robust to peculiar situations, wild-n-wacky kernel patches, etc. It's a low-level thing and it should Just Work. I do think ratelimiting will be OK - if the kernel is producing such a vast stream of warn_alloc() output then nobody is going to be reading it all anyway. Probably just the first one is enough for operators to understand what's going wrong. So... I think both. ratelimit *and* serialize. Perhaps a simple but suitable way of doing that is simply to disallow concurrent warn_allocs: /* comment goes here */ if (test_and_set_bit(0, &foo)) return; ... clear_bit(0, &foo); or whatever? (And if we do decide to go with "mm,page_alloc: Serialize warn_alloc() if schedulable", please do add code comments explaining what's going on) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>