Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755905Ab1EXLzo (ORCPT ); Tue, 24 May 2011 07:55:44 -0400 Received: from mail-pz0-f46.google.com ([209.85.210.46]:59240 "EHLO mail-pz0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755284Ab1EXLzn (ORCPT ); Tue, 24 May 2011 07:55:43 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; b=tLfT5KemaeAU86tYef8QuorjanaqOPZMEyJatdvgfj0Ph3M0fhAtexPSaXvnjH4BMq 2LXsMv1EejufVsFjFcyAbkcyg3vBVek2OA4TY4Q5SbPLzyua3QIBMCwECeThQ4NxATB4 mhJiygmnXelp0ysFS1RfnWHkrm9EZhe/3In/k= MIME-Version: 1.0 In-Reply-To: References: <4DD5DC06.6010204@jp.fujitsu.com> <20110520140856.fdf4d1c8.kamezawa.hiroyu@jp.fujitsu.com> <20110520101120.GC11729@random.random> <20110520153346.GA1843@barrios-desktop> <20110520161934.GA2386@barrios-desktop> From: Andrew Lutomirski Date: Tue, 24 May 2011 07:55:23 -0400 X-Google-Sender-Auth: Py2AR83U-rbHL32mPbRirOT_tvc Message-ID: Subject: Re: Kernel falls apart under light memory pressure (i.e. linking vmlinux) To: Minchan Kim Cc: KOSAKI Motohiro , Andrea Arcangeli , KAMEZAWA Hiroyuki , fengguang.wu@intel.com, andi@firstfloor.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, mgorman@suse.de, hannes@cmpxchg.org, riel@redhat.com Content-Type: multipart/mixed; boundary=bcaec52162f582dbff04a4044455 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 32348 Lines: 474 --bcaec52162f582dbff04a4044455 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Tue, May 24, 2011 at 7:24 AM, Andrew Lutomirski wrote: > On Mon, May 23, 2011 at 9:34 PM, Minchan Kim wrot= e: >> On Tue, May 24, 2011 at 10:19 AM, Andrew Lutomirski wrote= : >>> On Sun, May 22, 2011 at 7:12 PM, Minchan Kim wr= ote: >>>> Could you test below patch based on vanilla 2.6.38.6? >>>> The expect result is that system hang never should happen. >>>> I hope this is last test about hang. >>>> >>>> Thanks. >>>> >>>> diff --git a/mm/vmscan.c b/mm/vmscan.c >>>> index 292582c..1663d24 100644 >>>> --- a/mm/vmscan.c >>>> +++ b/mm/vmscan.c >>>> @@ -231,8 +231,11 @@ unsigned long shrink_slab(struct shrink_control *= shrink, >>>> =A0 =A0 =A0 if (scanned =3D=3D 0) >>>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 scanned =3D SWAP_CLUSTER_MAX; >>>> >>>> - =A0 =A0 =A0 if (!down_read_trylock(&shrinker_rwsem)) >>>> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 return 1; =A0 =A0 =A0 /* Assume we'll be= able to shrink next time */ >>>> + =A0 =A0 =A0 if (!down_read_trylock(&shrinker_rwsem)) { >>>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Assume we'll be able to shrink next t= ime */ >>>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 ret =3D 1; >>>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 goto out; >>>> + =A0 =A0 =A0 } >>>> >>>> =A0 =A0 =A0 list_for_each_entry(shrinker, &shrinker_list, list) { >>>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 unsigned long long delta; >>>> @@ -286,6 +289,8 @@ unsigned long shrink_slab(struct shrink_control *s= hrink, >>>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 shrinker->nr +=3D total_scan; >>>> =A0 =A0 =A0 } >>>> =A0 =A0 =A0 up_read(&shrinker_rwsem); >>>> +out: >>>> + =A0 =A0 =A0 cond_resched(); >>>> =A0 =A0 =A0 return ret; >>>> =A0} >>>> >>>> @@ -2331,7 +2336,7 @@ static bool sleeping_prematurely(pg_data_t >>>> *pgdat, int order, long remaining, >>>> =A0 =A0 =A0 =A0* must be balanced >>>> =A0 =A0 =A0 =A0*/ >>>> =A0 =A0 =A0 if (order) >>>> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 return pgdat_balanced(pgdat, balanced, c= lasszone_idx); >>>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 return !pgdat_balanced(pgdat, balanced, = classzone_idx); >>>> =A0 =A0 =A0 else >>>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 return !all_zones_ok; >>>> =A0} >>> >>> So far with this patch I can't reproduce the hang or the bogus OOM. >>> >>> To be completely clear, I have COMPACTION, MIGRATION, and THP off, I'm >>> running 2.6.38.6, and I have exactly two patches applied. =A0One is the >>> attached patch and the other is a the fpu.ko/aesni_intel.ko merger >>> which I need to get dracut to boot my box. >>> >>> For fun, I also upgraded to 8GB of RAM and it still works. >>> >> >> Hmm. Could you test it with enable thp and 2G RAM? >> Isn't it a original test environment? >> Please don't change test environment. :) > > The test that passed last night was an environment (hardware and > config) that I had confirmed earlier as failing without the patch. > > I just re-tested my original config (from a backup -- migration, > compaction, and thp "always" are enabled). =A0I get bogus OOMs but not a > hang. =A0(I'm running with mem=3D2G right now -- I'll swap the DIMMs back > out later on if you want.) > > I attached the bogus OOM (actually several that happened in sequence). > =A0They look readahead-related. =A0There was plenty of free swap space. Now with log actually attached. > > --Andy > --bcaec52162f582dbff04a4044455 Content-Type: application/x-xz; name="bogus_oom.txt.xz" Content-Disposition: attachment; filename="bogus_oom.txt.xz" Content-Transfer-Encoding: base64 X-Attachment-Id: f_go2sg2uk0 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 45AHgG/6S7HEZ/sCAAAAAARZWg== --bcaec52162f582dbff04a4044455-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/