Michal Hocko wrote: > On Thu 09-11-17 20:03:30, Tetsuo Handa wrote: > > Michal Hocko wrote: > > > On Thu 09-11-17 19:22:58, Tetsuo Handa wrote: > > > > Michal Hocko wrote: > > > > > Hi, > > > > > assuming that this passes warn stall torturing by Tetsuo, do you think > > > > > we can drop > > > > > http://lkml.kernel.org/r/1509017339-4802-1-git-send-email-penguin-ker...@i-love.sakura.ne.jp > > > > > from the mmotm tree? > > > > > > > > I don't think so. > > > > > > > > The rule that "do not try to printk() faster than the kernel can write > > > > to > > > > consoles" will remain no matter how printk() changes. Unless > > > > asynchronous > > > > approach like https://lwn.net/Articles/723447/ is used, I think we can't > > > > obtain useful information. > > > > > > Does that mean that the patch doesn't pass your test? > > > > > > > Test is irrelevant. See the changelog. > > > > Synchronous approach is prone to unexpected results (e.g. too late [1], > > too > > frequent [2], overlooked [3]). As far as I know, warn_alloc() never helped > > with providing information other than "something is going wrong". > > I want to consider asynchronous approach which can obtain information > > during stalls with possibly relevant threads (e.g. the owner of oom_lock > > and kswapd-like threads) and serve as a trigger for actions (e.g. turn > > on/off tracepoints, ask libvirt daemon to take a memory dump of stalling > > KVM guest for diagnostic purpose). > > > > [1] https://bugzilla.kernel.org/show_bug.cgi?id=192981 > > [2] > > http://lkml.kernel.org/r/cam_iqpwupvgc2ky8m-9yukects+zkjidasnymx7rmcbjbfy...@mail.gmail.com > > [3] commit db73ee0d46379922 ("mm, vmscan: do not loop on > > too_many_isolated for ever") > > So you want to keep the warning out of the kernel even though the > problems you are seeing are gone just to allow for an async approach > nobody is very fond of? That is a very dubious approach.
You are assuming that there are no more bugs which will be caught by an async approach. That is seriously wrong. [3] is just an example. http://lkml.kernel.org/r/CABXGCsOzaorL0wKZFYRFKR7RSnUL+7=vspe36sftenoimsj...@mail.gmail.com is an example where async approach will help. For example, turn various tracepoints on if stall lasted for 5 seconds and then turn them off when stall disappeared. It is very unfortunate that we still do not have such trigger.

