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=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 0D1B6C433DB for ; Mon, 15 Feb 2021 09:24:50 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 71ADA64DEE for ; Mon, 15 Feb 2021 09:24:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 71ADA64DEE Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id C83A58D00E4; Mon, 15 Feb 2021 04:24:48 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C32D18D0060; Mon, 15 Feb 2021 04:24:48 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B71DF8D00E4; Mon, 15 Feb 2021 04:24:48 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0053.hostedemail.com [216.40.44.53]) by kanga.kvack.org (Postfix) with ESMTP id 9FB098D0060 for ; Mon, 15 Feb 2021 04:24:48 -0500 (EST) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 63CD1BA1E for ; Mon, 15 Feb 2021 09:24:48 +0000 (UTC) X-FDA: 77819967456.07.C915220 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by imf27.hostedemail.com (Postfix) with ESMTP id 8A78280192C0 for ; Mon, 15 Feb 2021 09:24:45 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1613381086; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=xB5MBNbB1QLYYTbvCj1weox/L1QyvBLNycXdZJ/J33s=; b=msIiFaMGkdJ4pDCv0zyVzZbaNCFRTvzOfXRSNRzqy3NRtv9ZBePOOmmS5Aicny13IwoBJR cOnnBmTXrlauKa0ifYK8IfQd8C24XTIjw4Y7qX0E0tuRGrIu60sL/0UThYl+CsPbdYZWsm sfYS0TqbdIhAmdfPROvuM5Tk0ePE4OU= Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id B5BA5AD19; Mon, 15 Feb 2021 09:24:46 +0000 (UTC) Date: Mon, 15 Feb 2021 10:24:45 +0100 From: Michal Hocko To: Muchun Song Cc: hannes@cmpxchg.org, vdavydov.dev@gmail.com, akpm@linux-foundation.org, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/4] mm: memcontrol: remove memcg check from memcg_oom_recover Message-ID: References: <20210212170159.32153-1-songmuchun@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210212170159.32153-1-songmuchun@bytedance.com> X-Stat-Signature: 6eojg7ahu8wzbdhqozxyg8rd83poyra6 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 8A78280192C0 Received-SPF: none (suse.com>: No applicable sender policy available) receiver=imf27; identity=mailfrom; envelope-from=""; helo=mx2.suse.de; client-ip=195.135.220.15 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1613381085-400327 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 Sat 13-02-21 01:01:56, Muchun Song wrote: > The memcg_oom_recover() almost never do anything but the test (because > oom_disabled is a rarely used) is just waste of cycles in some hot > paths (e.g. kmem uncharge). And it is very small, so it is better to > make it inline. Also, the parameter of memcg cannot be NULL, so removing > the check can reduce useless check. You probably wanted to make this patch follow the second one in the series. As there is no oom recover form the kmem uncharge path now. Also I believe that I've asked you to split the memcg check to its separate patch. Regarding the inlining, I would add it along with a static key check in memcg_oom_recover. > Signed-off-by: Muchun Song > --- > mm/memcontrol.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 8c035846c7a4..7afca9677693 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); > } > > -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 *memcg) > * 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); > } > > -- > 2.11.0 -- Michal Hocko SUSE Labs