From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9DAC2C433E1 for ; Tue, 14 Jul 2020 02:59:38 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 5D4C2208FE for ; Tue, 14 Jul 2020 02:59:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="s9fqd5qJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5D4C2208FE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id DB2EE8D0002; Mon, 13 Jul 2020 22:59:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D63C88D0001; Mon, 13 Jul 2020 22:59:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C77B88D0002; Mon, 13 Jul 2020 22:59:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0239.hostedemail.com [216.40.44.239]) by kanga.kvack.org (Postfix) with ESMTP id B1A298D0001 for ; Mon, 13 Jul 2020 22:59:37 -0400 (EDT) Received: from smtpin25.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 4D1018248076 for ; Tue, 14 Jul 2020 02:59:37 +0000 (UTC) X-FDA: 77035175994.25.egg57_1a1806326eed Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin25.hostedemail.com (Postfix) with ESMTP id 0EC651804E3A0 for ; Tue, 14 Jul 2020 02:59:37 +0000 (UTC) X-HE-Tag: egg57_1a1806326eed X-Filterd-Recvd-Size: 4436 Received: from mail-io1-f65.google.com (mail-io1-f65.google.com [209.85.166.65]) by imf27.hostedemail.com (Postfix) with ESMTP for ; Tue, 14 Jul 2020 02:59:36 +0000 (UTC) Received: by mail-io1-f65.google.com with SMTP id f23so15791834iof.6 for ; Mon, 13 Jul 2020 19:59:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=EBpxgTgnL+UsNeN82OwUyJxz465UNbo7nQ0T3npvi4o=; b=s9fqd5qJVaOKYg6AA89Cfg3HTqVaJ9eFISkV5k3Kw6MAUI5OKms+dMiC4t4u5wQOLM 75K8eS44iBP8tAaRfEke8QPP+Pv4GEAG9X71g1tLKKtywc1hzPvZIz1mm0LrBwARsvK4 z7NBM++EyvwKlw0iBeIRNar+GcHMv3RO0go/g3Pw3G+AWLtrvsHb8kBr4Sd+ahtI4QDe 6P6fjaUxDf3jpOH2wvNnjW09QqL8qTjdTUzUt5HZ37H6V34hxVvkTd+4sG++kTyg+8gq cQkNEDFTmH7E+JYQfaPtOKR3uRQMhIddMj/djuVbylP+gnt76tF7CqyTqgGlkwikKB+8 dAqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=EBpxgTgnL+UsNeN82OwUyJxz465UNbo7nQ0T3npvi4o=; b=mo8QY2oqmQJwmUTkSVksBy2LeldLXoACY7oQh9TBQEXwc4IFM3VU31KaNGtLgYcNT9 nlUTzA2V1Wm8RyqNQFBPPEbNECVR6ZOofMg//5xguAjnezdLR6si1DGhW45oHTbgknDP sLhkGcRtCCWhCmuNi0dIEbcbe6ib4Ncu3Qa8rv/vGOH2kQXGfoEVYqYkTsYAmxQYqvyA pQs5etXEKDHLPCW5DMseO8u4M+hNxEI4gSBcjmLPNB9Tw0mhVbRDaLXqH9Vc5XwD30E7 iFlW5iOifqp8qXtb07HxTiXHV1doYnoqMNS4Z8yVehSi03m4q75KGMUNA36JMaD6XnnU FfFw== X-Gm-Message-State: AOAM533k9/ieUbg72XRDOJGNJfF+yEMTB5IvCtem6OCXKpkQjclpYSiS Y+/1Ej+66WiEC6dgYfOm6L8/MzFTYf9ontghphK9+uKj X-Google-Smtp-Source: ABdhPJzjrCHNamY86hWR5MbK4hJCTUa/QIrTaU9l+lBRO9kRZjU/2R83n41FQmTrK4ZRBTd+Dan50eroJyM3D3KTPhg= X-Received: by 2002:a05:6638:250f:: with SMTP id v15mr3533482jat.97.1594695575991; Mon, 13 Jul 2020 19:59:35 -0700 (PDT) MIME-Version: 1.0 References: <1594437481-11144-1-git-send-email-laoar.shao@gmail.com> <06806cf0-a122-e002-191f-348298358882@i-love.sakura.ne.jp> <61feb0d9-d443-c9b8-7058-e9597af405c5@i-love.sakura.ne.jp> In-Reply-To: <61feb0d9-d443-c9b8-7058-e9597af405c5@i-love.sakura.ne.jp> From: Yafang Shao Date: Tue, 14 Jul 2020 10:58:59 +0800 Message-ID: Subject: Re: [PATCH] mm, oom: don't invoke oom killer if current has been reapered To: Tetsuo Handa Cc: Michal Hocko , David Rientjes , Andrew Morton , Linux MM Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 0EC651804E3A0 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam04 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Jul 14, 2020 at 10:42 AM Tetsuo Handa wrote: > > On 2020/07/14 11:13, Yafang Shao wrote: > > But it seems the proposal that using trylock in > > mem_cgroup_out_of_memory() should be better? > > The trylock could also solve the problem that different processes are > > doing oom at the same time. > > I think trylock is worse. The trylock needlessly wastes CPU time which could > have been utilized by the OOM killer/reaper for reclaiming memory. If it may wastes the CPU time, we can shed it out for 1 second like what it does in __alloc_pages_may_oom(): __alloc_pages_may_oom if (!mutex_trylock(&oom_lock)) { schedule_timeout_uninterruptible(1); // to avoid wasting CPU time return; } But I find that we doesn't sched it out in pagefault path, pagefault_out_of_memory if (!mutex_trylock(&oom_lock)) return; I haven't thought deeply what the difference is ... > If concurrent OOM on multiple non-overwrapping memcg domains is a real problem, > killable lock on per-memcg oom_lock will be better than trylock on global oom_lock. I am wondering why we select the process per memcg, for example, select_bad_process if (is_memcg_oom(oc)) mem_cgroup_scan_tasks(oc->memcg, oom_evaluate_task, oc); else mem_cgroup_scan_tasks(root_mem_cgorup, oom_evaluate_task, oc); Then we can put the lock here to lock each memcg, and avoid the oom contention between different memcgs. -- Thanks Yafang