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=-16.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 1EBDBC433E0 for ; Fri, 5 Feb 2021 06:25:45 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 564DA64F9B for ; Fri, 5 Feb 2021 06:25:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 564DA64F9B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=bytedance.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 98DC76B0005; Fri, 5 Feb 2021 01:25:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 940B46B006C; Fri, 5 Feb 2021 01:25:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 87D396B006E; Fri, 5 Feb 2021 01:25:43 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0091.hostedemail.com [216.40.44.91]) by kanga.kvack.org (Postfix) with ESMTP id 780ED6B0005 for ; Fri, 5 Feb 2021 01:25:43 -0500 (EST) Received: from smtpin30.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 339EF181AEF1F for ; Fri, 5 Feb 2021 06:25:43 +0000 (UTC) X-FDA: 77783228166.30.low96_570612a275e2 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin30.hostedemail.com (Postfix) with ESMTP id 12E12180B3AB8 for ; Fri, 5 Feb 2021 06:25:43 +0000 (UTC) X-HE-Tag: low96_570612a275e2 X-Filterd-Recvd-Size: 4498 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) by imf48.hostedemail.com (Postfix) with ESMTP for ; Fri, 5 Feb 2021 06:25:42 +0000 (UTC) Received: by mail-pj1-f51.google.com with SMTP id m12so3068605pjs.4 for ; Thu, 04 Feb 2021 22:25:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=2db/qy51H5/26DTsBdgwD9VocgaNXW9d6RZG/+w8f64=; b=M9Wqk2ZmdVe3IJZ3S6Ys4n+UspDDeCho4IySNEw+is5gJAwcgNcFxMseJA/P0ZxD62 /aVzgbgsHyP9p2D0xAhqk5eRkwfNDbKMfqTEvsFngzza3dcBztkkFGJ2dJVCkrNKyXoh W3io9fI4YwXwaLMtuLtl36RjRDtQB3IY0BCR8HbMFL4Cf7poD/qy1+zEYNQm085NPI6F aamQrZJBfb/zKeG4hRz9MLRuPnlYEUqhCzvBPVRKEx3RziWNhQdKHpCdzF9DMIT1LoHf eFrOpjOKxnktGBYKySKtY4gDq1FGXJ1VsgCa4QouP3dY97Uc4BaVjdAMITrwkcRwv8W3 ZVUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=2db/qy51H5/26DTsBdgwD9VocgaNXW9d6RZG/+w8f64=; b=IMvYzunzceBQ4A3CiRzjEipwGUKUaPgMkXtAw3VdmFpVlLWyA5JHmlgH0a3YN1QB0H dIzPqmk8RXg+HyJ4q5CiERhyDZgkkb/6oB1irmVb5RS/GptNqOwC9ZQ/PE/NC/ij7n8B z4VuUkvSy8CLZrR0p3AZAMCwPiw89AvbCcxWuomko8qSyCOOA6TElyLEqDyZsK7iczKr Fu57kISbdGxFPsJH0ISHu3KyWdeG8BG0zwRQ1xDm1GQxLkU0jpExWnGg2al96XfIcB8S oX3anHoPVXbQKrlX0tJBnvFdyhk2NsQzsZzNewOyAtTfDLleHAh9J54lR6l/eEpqMnPT BVow== X-Gm-Message-State: AOAM533T7YN8nHNAiGF6phNyqV+lbxog1sTWUpLSW4eBqjFRp/X0eyWV 66R3OLkAQhMj0YltbEJCZtYFFA== X-Google-Smtp-Source: ABdhPJyE5y2hjatYWPHnsvgXRVMYuX8uOxtwLHxyiZih6cKlLFdkNifx0kpMww7NhTaakFtgz0m0bg== X-Received: by 2002:a17:902:6b89:b029:da:fc41:baec with SMTP id p9-20020a1709026b89b02900dafc41baecmr2897857plk.39.1612506341412; Thu, 04 Feb 2021 22:25:41 -0800 (PST) Received: from localhost.localdomain ([240e:b1:e401:3::f]) by smtp.gmail.com with ESMTPSA id k31sm9278444pgi.5.2021.02.04.22.25.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Feb 2021 22:25:40 -0800 (PST) From: Muchun Song To: hannes@cmpxchg.org, mhocko@kernel.org, vdavydov.dev@gmail.com, akpm@linux-foundation.org Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Muchun Song Subject: [PATCH] mm: memcontrol: fix missing wakeup oom task Date: Fri, 5 Feb 2021 14:23:10 +0800 Message-Id: <20210205062310.74268-1-songmuchun@bytedance.com> X-Mailer: git-send-email 2.21.0 (Apple Git-122) MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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: We call memcg_oom_recover() in the uncharge_batch() to wakeup OOM task when page uncharged, but for the slab pages, we do not do this when page uncharged. When we drain per cpu stock, we also should do this. The memcg_oom_recover() is small, so make it inline. And the parameter of memcg cannot be NULL, so remove the check. Signed-off-by: Muchun Song --- mm/memcontrol.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 8c035846c7a4..8569f4dbea2a 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1925,7 +1925,7 @@ static int memcg_oom_wake_function(wait_queue_entry= _t *wait, return autoremove_wake_function(wait, mode, sync, arg); } =20 -static void memcg_oom_recover(struct mem_cgroup *memcg) +static inline void memcg_oom_recover(struct mem_cgroup *memcg) { /* * For the following lockless ->under_oom test, the only required @@ -1935,7 +1935,7 @@ static void memcg_oom_recover(struct mem_cgroup *me= mcg) * achieved by invoking mem_cgroup_mark_under_oom() before * triggering notification. */ - if (memcg && memcg->under_oom) + if (memcg->under_oom) __wake_up(&memcg_oom_waitq, TASK_NORMAL, 0, memcg); } =20 @@ -2313,6 +2313,7 @@ static void drain_stock(struct memcg_stock_pcp *sto= ck) page_counter_uncharge(&old->memory, stock->nr_pages); if (do_memsw_account()) page_counter_uncharge(&old->memsw, stock->nr_pages); + memcg_oom_recover(old); stock->nr_pages =3D 0; } =20 --=20 2.11.0