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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,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 2CAC5C433E1 for ; Thu, 20 Aug 2020 17:37:05 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id E28BA208C7 for ; Thu, 20 Aug 2020 17:37:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cmpxchg-org.20150623.gappssmtp.com header.i=@cmpxchg-org.20150623.gappssmtp.com header.b="bqapqgbG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E28BA208C7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=cmpxchg.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 3C7E78D0001; Thu, 20 Aug 2020 13:37:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 352C76B0088; Thu, 20 Aug 2020 13:37:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 219688D0001; Thu, 20 Aug 2020 13:37:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0220.hostedemail.com [216.40.44.220]) by kanga.kvack.org (Postfix) with ESMTP id 05DAE6B0087 for ; Thu, 20 Aug 2020 13:37:04 -0400 (EDT) Received: from smtpin27.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id B53171DE9 for ; Thu, 20 Aug 2020 17:37:03 +0000 (UTC) X-FDA: 77171652726.27.linen83_0610b7527032 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin27.hostedemail.com (Postfix) with ESMTP id 837CE3D66B for ; Thu, 20 Aug 2020 17:37:03 +0000 (UTC) X-HE-Tag: linen83_0610b7527032 X-Filterd-Recvd-Size: 5237 Received: from mail-qt1-f196.google.com (mail-qt1-f196.google.com [209.85.160.196]) by imf03.hostedemail.com (Postfix) with ESMTP for ; Thu, 20 Aug 2020 17:37:02 +0000 (UTC) Received: by mail-qt1-f196.google.com with SMTP id d27so1781299qtg.4 for ; Thu, 20 Aug 2020 10:37:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=LoboofYleSqsx6Po76z6KtFKykk6O4/M/law9ADONhQ=; b=bqapqgbGxSqIpTZ9lqM1OdRQ4ld0i+GkD+9Nmxa1GUtaiBn/O9VbQypsMHolHj0z6R O5BVPWUTxs1lPqRKqLIHUGDCBJLiJ4iTA7HIC6qB9jSaJjvKbm8SI/1kvGieeG0doLWJ OCDi+LYKIfxOKRk0/y7qOPc8DpMwu+WU3vD+l8KIvb21LNwGFGLgzaQthypuZUWvs+rs oJCpu+HfrIXROzi0WhrBWx4WpDDfRvE0lUwTcbI+9/X0czS0xt7v14LrRI0jg5MRRTp/ LBDfwgBeTz7UfF8zOvwgvyF3yu6ue4PzybmMEWhEHmy34YliUAVBRRucg//JTWS0mIdc WDfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=LoboofYleSqsx6Po76z6KtFKykk6O4/M/law9ADONhQ=; b=kSQgJeiZWgDjQ2aWMBaLTwpWgRikCkN5mvKVb15os7zavJtTFPtp2IAqdIdWgv8ogs DBHlQjwNETnYsi9c6gXPyyk2Ifuu/XKgnNGFilySnugLOmkSm2uDiygcc9dLmSySP3ZZ SZR7z2CXFdOWAneSBLtDVkR1l5vCyaq/vcrNHAVf+jcGLtYeuCJ+1PnVv5xayob9CVMV LSqWPDnH6sAZpn1UvRY4GNC8tnyJirfKzbq0gtmE/7UyTr5p3jaYqcz27XuIEhlO20H4 +/0nl2QPN7wPzkNkVJeWGkt1gSsh+T7cxSe46wSRnDdCuWlI3c7ILdAz/LHhuhHtlXMU TRvA== X-Gm-Message-State: AOAM533NqSb9UoI/cW2aZF221OGIxAI97pw9c6zRi3oNP7Lv+sJAgLY/ fBELc05KusLR26SA4gKJqXshrERdANmFZw== X-Google-Smtp-Source: ABdhPJy0N3AzU+bC9wgIjMRXMwdsW3NNSoeyvr6MWRhCLnEfbQNcRW8bcmUt5YL0OIu+rlUywXSVzA== X-Received: by 2002:ac8:c0e:: with SMTP id k14mr3885478qti.364.1597945021939; Thu, 20 Aug 2020 10:37:01 -0700 (PDT) Received: from localhost ([2620:10d:c091:480::1:3cdd]) by smtp.gmail.com with ESMTPSA id k11sm2653665qkk.93.2020.08.20.10.37.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2020 10:37:01 -0700 (PDT) Date: Thu, 20 Aug 2020 13:35:46 -0400 From: Johannes Weiner To: Waiman Long Cc: Michal Hocko , Vladimir Davydov , Andrew Morton , Tejun Heo , linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Shakeel Butt , Chris Down , Roman Gushchin , Yafang Shao Subject: Re: [PATCH 2/3] mm/memcg: Simplify mem_cgroup_get_max() Message-ID: <20200820173546.GB912520@cmpxchg.org> References: <20200820130350.3211-1-longman@redhat.com> <20200820130350.3211-3-longman@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200820130350.3211-3-longman@redhat.com> X-Rspamd-Queue-Id: 837CE3D66B X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam05 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 Thu, Aug 20, 2020 at 09:03:49AM -0400, Waiman Long wrote: > The mem_cgroup_get_max() function used to get memory+swap max from > both the v1 memsw and v2 memory+swap page counters & return the maximum > of these 2 values. This is redundant and it is more efficient to just > get either the v1 or the v2 values depending on which one is currently > in use. > > Signed-off-by: Waiman Long > --- > mm/memcontrol.c | 14 +++++--------- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 26b7a48d3afb..d219dca5239f 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -1633,17 +1633,13 @@ void mem_cgroup_print_oom_meminfo(struct mem_cgroup *memcg) > */ > unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg) > { > - unsigned long max; > + unsigned long max = READ_ONCE(memcg->memory.max); > > - max = READ_ONCE(memcg->memory.max); > if (mem_cgroup_swappiness(memcg)) { > - unsigned long memsw_max; > - unsigned long swap_max; > - > - memsw_max = memcg->memsw.max; > - swap_max = READ_ONCE(memcg->swap.max); > - swap_max = min(swap_max, (unsigned long)total_swap_pages); > - max = min(max + swap_max, memsw_max); > + if (cgroup_subsys_on_dfl(memory_cgrp_subsys)) > + max += READ_ONCE(memcg->swap.max); > + else > + max = memcg->memsw.max; I agree with the premise of the patch, but v1 and v2 have sufficiently different logic, and the way v1 overrides max from the innermost branch again also doesn't help in understanding what's going on. Can you please split out the v1 and v2 code? if (cgroup_subsys_on_dfl(memory_cgrp_subsys)) { max = READ_ONCE(memcg->memory.max); if (mem_cgroup_swappiness(memcg)) max += READ_ONCE(memcg->swap.max); } else { if (mem_cgroup_swappiness(memcg)) max = memcg->memsw.max; else max = READ_ONCE(memcg->memory.max); } It's slightly repetitive, but IMO much more readable.