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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2813ECE7A88 for ; Sat, 23 Sep 2023 08:01:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4C47B6B00F9; Sat, 23 Sep 2023 04:01:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 472CE6B0100; Sat, 23 Sep 2023 04:01:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2EE7E6B0104; Sat, 23 Sep 2023 04:01:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 19C876B00F9 for ; Sat, 23 Sep 2023 04:01:24 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id D6D491A0C18 for ; Sat, 23 Sep 2023 08:01:23 +0000 (UTC) X-FDA: 81267117246.06.00AA095 Received: from mail-oi1-f177.google.com (mail-oi1-f177.google.com [209.85.167.177]) by imf04.hostedemail.com (Postfix) with ESMTP id 0A8D740029 for ; Sat, 23 Sep 2023 08:01:20 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=shopee.com header.s=shopee.com header.b="fgMoirO/"; spf=pass (imf04.hostedemail.com: domain of haifeng.xu@shopee.com designates 209.85.167.177 as permitted sender) smtp.mailfrom=haifeng.xu@shopee.com; dmarc=pass (policy=reject) header.from=shopee.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695456081; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=//ZPpaDq66gMwAPM04xisJ28uaG0yhnKLXXS/is+y1c=; b=MArIYu0FqAK/t6J5TazO9ouJxKCyDU4LVO69qfEQ/BuCSCbfjJdgR5IsSyg5R9evSZG1GK ygWHXS6ghfWikVFvmm9n5ZwwemGhc4gX7iTBbTpw3V8m9lb1crukG3RkUxMa0EVEqjdry5 Nge1N0U5gZ9AeUbgqqgJ3MgyR4zb5A0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695456081; a=rsa-sha256; cv=none; b=YeB57oRRZNuEuaLPHRh6MFP8rBiJnyuyGJqUZhhmrIafEXjceOQrp2gX2iYPdNdHLq5PUo oelzFa0U4FKCgsrksRDZRkhePvqL7A8Ykx1+4hVNjxWSBSXbxFqiJ+9E2PYL2xVSMCablE FZbaGpx97A4A0ulf4PrXfoqRrvtnDQQ= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=shopee.com header.s=shopee.com header.b="fgMoirO/"; spf=pass (imf04.hostedemail.com: domain of haifeng.xu@shopee.com designates 209.85.167.177 as permitted sender) smtp.mailfrom=haifeng.xu@shopee.com; dmarc=pass (policy=reject) header.from=shopee.com Received: by mail-oi1-f177.google.com with SMTP id 5614622812f47-3ae2ec1a222so514841b6e.2 for ; Sat, 23 Sep 2023 01:01:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shopee.com; s=shopee.com; t=1695456080; x=1696060880; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=//ZPpaDq66gMwAPM04xisJ28uaG0yhnKLXXS/is+y1c=; b=fgMoirO/eqkEJsXOff/QTWhluboQwXtv5u08h6nlXc1+59Nsqr0kCQ2ny3eYIDFXRn hP5wOfv+JP24CD9fVllIepvsNuJkUuQvL07G0bpsbq2nlGYL/pQdJvXe6x1M+fzwFYGS Ii87smehIxnsBFfcCqlq9QExTxk0dG1bPTeNKTbP56Nh90vwzRkKglB2VVj85YegD7uR QG7xKHpSHsuyLiAwU1QFoaaRFj21WPpWiYkf5EIl1FCfjZuB9Kire1SDFaSgOb9OBE9W ejL4aifbZl62rmVgWozblmlJHqT6MKiVrNt0wvzUovkgnzy1wfY/Yrk7c03/a1C9aZdD njPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695456080; x=1696060880; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=//ZPpaDq66gMwAPM04xisJ28uaG0yhnKLXXS/is+y1c=; b=rNkYhhH06/CHRvgElNFKNp/9OiQIqi2DnKSbxZhneICOA8rZTXEWoBzPwqmKmLYmFv nsBNi5BQTuKkSSb3fTA8KoaKVMUARU1HsdzgICaLwzppWJv202/E+cLZUSRr6xZH+Dc1 JVJObS0IsCDRGer01vZd5CZVttA5hiZYhN3CNKxuLV7ge0IOUFS7/OxX4CFVZ6UnKQOP AZPvMYj5ilRZTOKGV91/9TzBPBxhMDxp4SvbLf/VZkxVfS6bc7lsjQxr9mjpNkzayht8 c9JwVYQZHng0xzgdaoiu2uLCD6tL9wyO09Zw2FRRS7yawX+I/MPKazumAHbbdcJWUhgK ux4A== X-Gm-Message-State: AOJu0YwOgmRt11X8H0ad09H4amGsBI1h89SqO3d5MSUFa53uAbkyVPMP RUoV45kujPQtlqAXP8F4f6rJyQ== X-Google-Smtp-Source: AGHT+IEstjwhWO5KwiOJ9P9hHZo8Yk77qpTPnCglcI4FA9O16oBKfkyqhZxRTcI/W5XNdiWIi2U07w== X-Received: by 2002:a05:6808:3d2:b0:3a7:4ce4:cb8e with SMTP id o18-20020a05680803d200b003a74ce4cb8emr2231587oie.42.1695456080094; Sat, 23 Sep 2023 01:01:20 -0700 (PDT) Received: from [10.12.184.30] ([143.92.127.236]) by smtp.gmail.com with ESMTPSA id g16-20020a1709029f9000b001c22292ad7esm4736135plq.232.2023.09.23.01.01.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 23 Sep 2023 01:01:19 -0700 (PDT) Message-ID: <94c2a462-1d4e-e6e8-0e31-babcbc459836@shopee.com> Date: Sat, 23 Sep 2023 16:01:15 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 Subject: Re: [PATCH 2/2] memcg, oom: do not wake up memcg_oom_waitq if waitqueue is empty To: Roman Gushchin Cc: mhocko@kernel.org, hannes@cmpxchg.org, shakeelb@google.com, cgroups@vger.kernel.org, linux-mm@kvack.org References: <20230922070529.362202-2-haifeng.xu@shopee.com> From: Haifeng Xu In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Stat-Signature: 3ssx7gw749a4go9kwxpg8sdgxc56wndd X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 0A8D740029 X-Rspam-User: X-HE-Tag: 1695456080-218284 X-HE-Meta: U2FsdGVkX18vrrbw4R4k42MSjYEEFHm2gVQKrcoPqmd7sOt/XwkNYeManjhWd+CnjO2RUNtk41xY5GLyRvpBfWZ6mNbKw5TjhpbDMEIBy+TkJn39k/0WOqsfxejHAmLRZY+lO5C/5ye0PZZVPEY+zU3zovOCFicZSd2WHi5p0avUgZCm7chKEgZHQJnN3HgGB3dCGYTI0m/Wrna/VaxNQ9dCw2qv7X+lCA7y52cZoRN1VBby8GStESnhb53PJwVJ73N/axGV+l40gNHfAevYRNZpYM2QW3xuQCHED9YtSAszfK61/xIQsZ723SBcmtBPId6I/KNMbIacLrhRC9yHo/21XoZVm7mLdX4qOqy8PTi373WdNuvnfHxgK158goqQLgQZZMHmRMYAq8JBC+ybKUZbwo940CN6Mgw8GAYNIJKeAeetQzhgMXzHB3Zt+bytJr5VD6W1D1KBnNGyyFJjHka8sBwDF/T6QCrMmfZFVDg1Abum6I/1uco/YWNwJdzI5J28YlfqAPYI/X2VsH1qfVEi3ADORtgS0PEu+7nZ24r4H7ccen1LtMJQhy7jASjOcchv7nEXTaFnWWHdcEuH4Ev8lP5DTV+geBwENJq7ovr+rn7CalxrkLpHiUNGjKaegNWUSrrGSBnbYLXpgEEifj9nwP1legjBkANCp7wVkb5G0hTaAgWgglWwTPz+P9GD9mfF4fCS83I8aclQoB4pCDyr+co6p1seyYHdH0mYrAbShyTcbJ+iS0g9OED00nkUMkWKUHl2CEdk4TIg9arOJmp/khRRkCdef9spkQzbqIgdaq1XO1ZKatuI8UwZ+oRICmMtnxsudNy8sqa6PfAxO7lcSAyQNJJw9cIIIeY/OTmqDkBQNgU6u7Tj5vB3k7N1lBGXKH2HnF3W2U5nxY7L+UQbq/4TDfA1BaFjfc01BWeJ44L8UFpOESszxlfIzO2aLG/8w9HlPTpaGQ7xQ+l vgMuM8JG 6xPXc98eBuqDYdf/zgUpTFJlVjooa75uTRxN+LTiPoiN0kXTqJXCR0GEZLwqeeNfh65gooVUtS5FJUXUfd0Wu7WQNbyp22olf32l1tA1ilzVpDAjeZLXZ5UKNpaVm/zOWWMxo9NWfN3kGx4zzUx2IUQFz1mYyBbNVWju4EZy/X2AEHEMZTiNwXqy2iqKUFg7gVxiJjlqwBRbG8kJnlVnCepYQNkB7SSe0O7g3bo9HNcDnm5eLiThhGPQglAYHtrc5nPGCKfPyKFC2rtJvy3iukZXNYL9p8dzQRE8cEhA78Dq2l6ir/0ofmJ8dcE9cIe6/N5SuFESp+Civ1nMm7tUC2IicpuN8ksp7V033yfLqe4LnqSUQ26+1aPlrNbZbchTof8SsnLjnghcPW2TAdCdmdme5vTiZ5H/2EaiWTOp1FSLdmuJ7f5dGia44THURGlz5O7X+MqPX9pvynMA= 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 2023/9/23 07:22, Roman Gushchin wrote: > On Fri, Sep 22, 2023 at 07:05:29AM +0000, Haifeng Xu wrote: >> Only when memcg oom killer is disabled, the task which triggers memecg >> oom handling will sleep on a waitqueue. Except this case, the waitqueue >> is empty though under_oom is true. There is no need to step into wake >> up path when resolve the oom situation. So add a check that whether the >> waitqueue is empty. >> >> Signed-off-by: Haifeng Xu >> --- >> mm/memcontrol.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/mm/memcontrol.c b/mm/memcontrol.c >> index 0b6ed63504ca..2bb98ff5be3d 100644 >> --- a/mm/memcontrol.c >> +++ b/mm/memcontrol.c >> @@ -1918,7 +1918,7 @@ static void memcg_oom_recover(struct mem_cgroup *memcg) >> * achieved by invoking mem_cgroup_mark_under_oom() before >> * triggering notification. >> */ >> - if (memcg && memcg->under_oom) >> + if (memcg && memcg->under_oom && !list_empty(&memcg_oom_waitq.head)) >> __wake_up(&memcg_oom_waitq, TASK_NORMAL, 0, memcg); > > This change looks questionable to me: > 1) it's not obvious that this racy check is fine. can an oom event be > missed because of a race here? why not? The oom event can't be missed, because the OOM task has been put on the waitqueue before marking the hierarchy as under OOM(can be seen in mem_cgroup_oom_synchronize()). > 2) is there any measurable impact? No. it's not a hot path, so I'd keep it > simple. ok, thanks. > > Thanks!