From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755039AbdBQChs (ORCPT ); Thu, 16 Feb 2017 21:37:48 -0500 Received: from mga14.intel.com ([192.55.52.115]:37734 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754293AbdBQChr (ORCPT ); Thu, 16 Feb 2017 21:37:47 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,170,1484035200"; d="scan'208";a="66825805" From: "Huang\, Ying" To: "Huang\, Ying" Cc: Hugh Dickins , Tim Chen , Minchan Kim , Andrew Morton , , Subject: Re: swap_cluster_info lockdep splat References: <20170216052218.GA13908@bbox> <87o9y2a5ji.fsf@yhuang-dev.intel.com> <1487273646.2833.100.camel@linux.intel.com> <87efyx8t9o.fsf@yhuang-dev.intel.com> Date: Fri, 17 Feb 2017 10:37:44 +0800 In-Reply-To: <87efyx8t9o.fsf@yhuang-dev.intel.com> (Ying Huang's message of "Fri, 17 Feb 2017 10:07:15 +0800") Message-ID: <87o9y17daf.fsf@yhuang-dev.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org "Huang, Ying" writes: > Hi, Hugh, > > Hugh Dickins writes: > >> On Thu, 16 Feb 2017, Tim Chen wrote: >>> >>> > I do not understand your zest for putting wrappers around every little >>> > thing, making it all harder to follow than it need be.  Here's the patch >>> > I've been running with (but you have a leak somewhere, and I don't have >>> > time to search out and fix it: please try sustained swapping and swapoff). >>> > >>> >>> Hugh, trying to duplicate your test case.  So you were doing swapping, >>> then swap off, swap on the swap device and restart swapping? >> >> Repeated pair of make -j20 kernel builds in 700M RAM, 1.5G swap on SSD, >> 8 cpus; one of the builds in tmpfs, other in ext4 on loop on tmpfs file; >> sizes tuned for plenty of swapping but no OOMing (it's an ancient 2.6.24 >> kernel I build, modern one needing a lot more space with a lot less in use). >> >> How much of that is relevant I don't know: hopefully none of it, it's >> hard to get the tunings right from scratch. To answer your specific >> question: yes, I'm not doing concurrent swapoffs in this test showing >> the leak, just waiting for each of the pair of builds to complete, >> then tearing down the trees, doing swapoff followed by swapon, and >> starting a new pair of builds. >> >> Sometimes it's the swapoff that fails with ENOMEM, more often it's a >> fork during build that fails with ENOMEM: after 6 or 7 hours of load >> (but timings show it getting slower leading up to that). /proc/meminfo >> did not give me an immediate clue, Slab didn't look surprising but >> I may not have studied close enough. > > Thanks for you information! > > Memory newly allocated in the mm-swap series are allocated via vmalloc, > could you find anything special for vmalloc in /proc/meminfo? I found a potential issue in the mm-swap series, could you try the patches as below? Best Regards, Huang, Ying -----------------------------------------------------> >>From 943494339bd5bc321b8f36f286bc143ac437719b Mon Sep 17 00:00:00 2001 From: Huang Ying Date: Fri, 17 Feb 2017 10:31:37 +0800 Subject: [PATCH] Debug memory leak --- mm/swap_state.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/swap_state.c b/mm/swap_state.c index 2126e9ba23b2..473b71e052a8 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -333,7 +333,7 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask, * else swap_off will be aborted if we return NULL. */ if (!__swp_swapcount(entry) && swap_slot_cache_enabled) - return NULL; + break; /* * Get a new page to read into from swap. -- 2.11.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg0-f69.google.com (mail-pg0-f69.google.com [74.125.83.69]) by kanga.kvack.org (Postfix) with ESMTP id 5D45F681021 for ; Thu, 16 Feb 2017 21:37:48 -0500 (EST) Received: by mail-pg0-f69.google.com with SMTP id y6so33934142pgy.5 for ; Thu, 16 Feb 2017 18:37:48 -0800 (PST) Received: from mga02.intel.com (mga02.intel.com. [134.134.136.20]) by mx.google.com with ESMTPS id t15si8737127pgn.358.2017.02.16.18.37.47 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Feb 2017 18:37:47 -0800 (PST) From: "Huang\, Ying" Subject: Re: swap_cluster_info lockdep splat References: <20170216052218.GA13908@bbox> <87o9y2a5ji.fsf@yhuang-dev.intel.com> <1487273646.2833.100.camel@linux.intel.com> <87efyx8t9o.fsf@yhuang-dev.intel.com> Date: Fri, 17 Feb 2017 10:37:44 +0800 In-Reply-To: <87efyx8t9o.fsf@yhuang-dev.intel.com> (Ying Huang's message of "Fri, 17 Feb 2017 10:07:15 +0800") Message-ID: <87o9y17daf.fsf@yhuang-dev.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: owner-linux-mm@kvack.org List-ID: To: "Huang, Ying" Cc: Hugh Dickins , Tim Chen , Minchan Kim , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org "Huang, Ying" writes: > Hi, Hugh, > > Hugh Dickins writes: > >> On Thu, 16 Feb 2017, Tim Chen wrote: >>> >>> > I do not understand your zest for putting wrappers around every little >>> > thing, making it all harder to follow than it need be.A Here's the patch >>> > I've been running with (but you have a leak somewhere, and I don't have >>> > time to search out and fix it: please try sustained swapping and swapoff). >>> > >>> >>> Hugh, trying to duplicate your test case. A So you were doing swapping, >>> then swap off, swap on the swap device and restart swapping? >> >> Repeated pair of make -j20 kernel builds in 700M RAM, 1.5G swap on SSD, >> 8 cpus; one of the builds in tmpfs, other in ext4 on loop on tmpfs file; >> sizes tuned for plenty of swapping but no OOMing (it's an ancient 2.6.24 >> kernel I build, modern one needing a lot more space with a lot less in use). >> >> How much of that is relevant I don't know: hopefully none of it, it's >> hard to get the tunings right from scratch. To answer your specific >> question: yes, I'm not doing concurrent swapoffs in this test showing >> the leak, just waiting for each of the pair of builds to complete, >> then tearing down the trees, doing swapoff followed by swapon, and >> starting a new pair of builds. >> >> Sometimes it's the swapoff that fails with ENOMEM, more often it's a >> fork during build that fails with ENOMEM: after 6 or 7 hours of load >> (but timings show it getting slower leading up to that). /proc/meminfo >> did not give me an immediate clue, Slab didn't look surprising but >> I may not have studied close enough. > > Thanks for you information! > > Memory newly allocated in the mm-swap series are allocated via vmalloc, > could you find anything special for vmalloc in /proc/meminfo? I found a potential issue in the mm-swap series, could you try the patches as below? Best Regards, Huang, Ying ----------------------------------------------------->