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=-9.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 BB907C433E2 for ; Tue, 8 Sep 2020 20:32:06 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 548A42080A for ; Tue, 8 Sep 2020 20:32:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LRKeA5oY" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 548A42080A 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 B90FE6B0002; Tue, 8 Sep 2020 16:32:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B404B6B0037; Tue, 8 Sep 2020 16:32:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A56778E0001; Tue, 8 Sep 2020 16:32:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0079.hostedemail.com [216.40.44.79]) by kanga.kvack.org (Postfix) with ESMTP id 8C0426B0002 for ; Tue, 8 Sep 2020 16:32:05 -0400 (EDT) Received: from smtpin10.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 4539C180AD817 for ; Tue, 8 Sep 2020 20:32:05 +0000 (UTC) X-FDA: 77241041010.10.sound06_04121e5270d7 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin10.hostedemail.com (Postfix) with ESMTP id 04DE116A0D1 for ; Tue, 8 Sep 2020 20:32:04 +0000 (UTC) X-HE-Tag: sound06_04121e5270d7 X-Filterd-Recvd-Size: 5024 Received: from mail-ej1-f68.google.com (mail-ej1-f68.google.com [209.85.218.68]) by imf15.hostedemail.com (Postfix) with ESMTP for ; Tue, 8 Sep 2020 20:32:04 +0000 (UTC) Received: by mail-ej1-f68.google.com with SMTP id u21so310985eja.2 for ; Tue, 08 Sep 2020 13:32:04 -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=L0s348EPZ76opdRD/bPy7Rbwh7tSlsvQeVHt84ZwjP8=; b=LRKeA5oYb87EGM45Ap1miIQqlIeSijAGRkWs3y4OODay63a561ttieuA5tKjKoztai 2G/7a30tV/htfcq5CRqGXNqp/q55zOIwocN+4OMl05zoi5hAo19lTpeAL1maw4fTbdDn 9cQYDcRSxIGwtEStIYyOouUZnn9wlHzDDxFgvSfxMUl7eqDDU3jbCR4uMgIwwsypUHJA KKPbUWwRWK1n1pjIn+P7MK03hEuzm2a9mIiTByFVxUxFPuUY7jPLfZdS+Vpwjm06d33K Qz2fzk7wXgy0CU/xVGCo4vXis/5sgpqH0xXWQrkcrL2bSt8ueHjnz1CuT31bA0kaAw4x E8NQ== 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=L0s348EPZ76opdRD/bPy7Rbwh7tSlsvQeVHt84ZwjP8=; b=Y5PGtRKwWkKoPfgsm885J9mw5ANkYhm6PiJT/2gp6NdkLeoMMsADz65SDTEOGh0eBo CAYy6cX01UtVNKHEsCYv4neph0qDWTbZRXce+DeAEkXIWivxky9a61EmvrYIgmjG+KzO B1UtC3Ck0h/L70tY+82W2op/Fkf33Vex2b8++wm5/M9pfPMpoNh/ha4Ko3EjjEZTepZW gAJU4P5U72Le+Lje5iNwfSyUtCyYiZqJJraJOQuPKIrepiILhA52bcWcEGNVjZ2IIq+N hm+kbTXsHAAupOKEFDADt+Gm2J4HpuppQ27sA71x/NOwJW4sR7VM3pfd89GUfDF0v+0y Sj0Q== X-Gm-Message-State: AOAM532SWJ78LVZopZXWRO445gHPMtGgvT8G3cWNuiD3k0eKwZelT91w ofOJYyZNoRNFmxMbdvRHlDeUx3Zmh5yWpcNAXf0= X-Google-Smtp-Source: ABdhPJzyL9Hjb/Dom8uDmNkOF6gkOXT/dAhKnE/DvCt1KLYQkR0JBaq9QbEI9HHaO1jZLxPHHr3mQ/738C7cvEcvvfo= X-Received: by 2002:a17:907:2105:: with SMTP id qn5mr246845ejb.238.1599597123293; Tue, 08 Sep 2020 13:32:03 -0700 (PDT) MIME-Version: 1.0 References: <20200908201426.14837-1-jpitti@cisco.com> In-Reply-To: <20200908201426.14837-1-jpitti@cisco.com> From: Yang Shi Date: Tue, 8 Sep 2020 13:31:51 -0700 Message-ID: Subject: Re: [PATCH v2] mm: memcg: yield cpu when we fail to charge pages To: Julius Hemanth Pitti Cc: Johannes Weiner , Michal Hocko , Vladimir Davydov , Andrew Morton , Roman Gushchin , Cgroups , Linux MM , Linux Kernel Mailing List , xe-linux-external@cisco.com Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 04DE116A0D1 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam01 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, Sep 8, 2020 at 1:14 PM Julius Hemanth Pitti wrote: > > For non root CG, in try_charge(), we keep trying > to charge until we succeed. On non-preemptive > kernel, when we are OOM, this results in holding > CPU forever. > > On SMP systems, this doesn't create a big problem > because oom_reaper get a change to kill victim > and make some free pages. However on a single-core > CPU (or cases where oom_reaper pinned to same CPU > where try_charge is executing), oom_reaper shall > never get scheduled and we stay in try_charge forever. > > Steps to repo this on non-smp: > 1. mount -t tmpfs none /sys/fs/cgroup > 2. mkdir /sys/fs/cgroup/memory > 3. mount -t cgroup none /sys/fs/cgroup/memory -o memory > 4. mkdir /sys/fs/cgroup/memory/0 > 5. echo 40M > /sys/fs/cgroup/memory/0/memory.limit_in_bytes > 6. echo $$ > /sys/fs/cgroup/memory/0/tasks > 7. stress -m 5 --vm-bytes 10M --vm-hang 0 Isn't it the same problem solved by e3336cab2579 ("mm: memcg: fix memcg reclaim soft lockup")? It has been in Linus's tree. > > Signed-off-by: Julius Hemanth Pitti > Acked-by: Roman Gushchin > --- > > Changes in v2: > - Added comments. > - Added "Acked-by: Roman Gushchin ". > --- > mm/memcontrol.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index cfa6cbad21d5..4f293bf8c7ed 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -2745,6 +2745,15 @@ static int try_charge(struct mem_cgroup *memcg, gfp_t gfp_mask, > if (fatal_signal_pending(current)) > goto force; > > + /* > + * We failed to charge even after retries, give oom_reaper or > + * other process a change to make some free pages. > + * > + * On non-preemptive, Non-SMP system, this is critical, else > + * we keep retrying with no success, forever. > + */ > + cond_resched(); > + > /* > * keep retrying as long as the memcg oom killer is able to make > * a forward progress or bypass the charge if the oom killer > -- > 2.17.1 > >