Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935172AbdCJKkx (ORCPT ); Fri, 10 Mar 2017 05:40:53 -0500 Received: from mx2.suse.de ([195.135.220.15]:34696 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934752AbdCJKku (ORCPT ); Fri, 10 Mar 2017 05:40:50 -0500 Date: Fri, 10 Mar 2017 11:40:47 +0100 From: Michal Hocko To: Andrew Morton Cc: Tetsuo Handa , linux-mm@kvack.org, linux-kernel@vger.kernel.org, hannes@cmpxchg.org, mgorman@techsingularity.net, david@fromorbit.com, apolyakov@beget.ru Subject: Re: [PATCH v7] mm: Add memory allocation watchdog kernel thread. Message-ID: <20170310104047.GF3753@dhcp22.suse.cz> References: <1488244908-57586-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp> <201703091946.GDC21885.OQFFOtJHSOFVML@I-love.SAKURA.ne.jp> <20170309143751.05bddcbad82672384947de5f@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170309143751.05bddcbad82672384947de5f@linux-foundation.org> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2585 Lines: 45 On Thu 09-03-17 14:37:51, Andrew Morton wrote: > On Thu, 9 Mar 2017 19:46:14 +0900 Tetsuo Handa wrote: > > > Tetsuo Handa wrote: > > > This patch adds a watchdog which periodically reports number of memory > > > allocating tasks, dying tasks and OOM victim tasks when some task is > > > spending too long time inside __alloc_pages_slowpath(). This patch also > > > serves as a hook for obtaining additional information using SystemTap > > > (e.g. examine other variables using printk(), capture a crash dump by > > > calling panic()) by triggering a callback only when a stall is detected. > > > Ability to take administrator-controlled actions based on some threshold > > > is a big advantage gained by introducing a state tracking. > > > > > > Commit 63f53dea0c9866e9 ("mm: warn about allocations which stall for > > > too long") was a great step for reducing possibility of silent hang up > > > problem caused by memory allocation stalls [1]. However, there are > > > reports of long stalls (e.g. [2] is over 30 minutes!) and lockups (e.g. > > > [3] is an "unable to invoke the OOM killer due to !__GFP_FS allocation" > > > lockup problem) where this patch is more useful than that commit, for > > > this patch can report possibly related tasks even if allocating tasks > > > are unexpectedly blocked for so long. Regarding premature OOM killer > > > invocation, tracepoints which can accumulate samples in short interval > > > would be useful. But regarding too late to report allocation stalls, > > > this patch which can capture all tasks (for reporting overall situation) > > > in longer interval and act as a trigger (for accumulating short interval > > > samples) would be useful. > ) > > Andrew, do you have any questions on this patch? > > I really need this patch for finding bugs which MM people overlook. > > (top-posting repaired - please don't do that) > > Undecided. I can see the need but it is indeed quite a large lump of > code. Perhaps some additional examples of how this new code was used > to understand and improve real-world kernel problems would be persuasive. Well, it is true that the watchdog can provide much more information than we can gather with other debugging options we currently have when allocations run away. So I am not questioning this is useful when doing memory stress testing and trying to trigger corner cases but I am not really sure how much this will be useful in production systems, though. Tracking is not for free both in runtime and longterm in maintenance. -- Michal Hocko SUSE Labs