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 ECFD3C433EF for ; Fri, 22 Jul 2022 08:31:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 49D946B0072; Fri, 22 Jul 2022 04:31:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 44C9A6B0073; Fri, 22 Jul 2022 04:31:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3147E6B0074; Fri, 22 Jul 2022 04:31:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 22B7D6B0072 for ; Fri, 22 Jul 2022 04:31:56 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E18D280BDA for ; Fri, 22 Jul 2022 08:31:55 +0000 (UTC) X-FDA: 79714067790.10.883B41E Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by imf07.hostedemail.com (Postfix) with ESMTP id 0753640075 for ; Fri, 22 Jul 2022 08:31:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1658478714; x=1690014714; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=uv07SzM5PWTt1IVQuWHDCVeHL3I17tUX88W1yhEAfGk=; b=Bx7ZN/qRqg6Roax/MebzciK0xYA56E7RwQgKoyNFrW4V2kwxcms6y1fj p4xGovDqIFLX3A7gKvsGAEdmmSRqB3zHAAyADvWJPjJqxTZprkBPvVHqH rYtycxES5LQRnP6nAlsJ9wfP5xBpXQAUvjUgu78+bmyg8o7Doj610K06M beNJeN8eg4EV4gN6zTf/ytcZ6R48+/uLQkxEWi+Ion9rtWCiFp5H0A96R svrZltX5BhgmvsN1erjGTM78YHJ9rCT09IDf43qvkHa93mdDVXiYSqt6A kI3EbQqS7NoU4l+eL4xlubPDEB3muC/QKP9+FSRo3TEXCUqkldytkjqFK w==; X-IronPort-AV: E=McAfee;i="6400,9594,10415"; a="284819750" X-IronPort-AV: E=Sophos;i="5.93,185,1654585200"; d="scan'208";a="284819750" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jul 2022 01:31:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,185,1654585200"; d="scan'208";a="666603605" Received: from linux-pnp-server-12.sh.intel.com ([10.239.176.103]) by fmsmga004.fm.intel.com with ESMTP; 22 Jul 2022 01:31:49 -0700 From: Jiebin Sun To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org Cc: hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, shakeelb@google.com, songmuchun@bytedance.com, akpm@linux-foundation.org, tim.c.chen@intel.com, ying.huang@intel.com, amadeuszx.slawinski@linux.intel.com, tianyou.li@intel.com, wangyang.guo@intel.com, jiebin sun Subject: [PATCH] mm: Remove the redundant updating of stats_flush_threshold Date: Sat, 23 Jul 2022 00:49:49 +0800 Message-Id: <20220722164949.47760-1-jiebin.sun@intel.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1658478715; a=rsa-sha256; cv=none; b=be3plp8Aw9uXDOdwowNoh/4TZWUHzOZow2ZX3B+txqHAGiD44lsPO3OJ3xKLPaZ1JgGA25 ndeYzKBDIANtIseuZIpVLD7rYiGviR2gvwwWbJDJaAzXrgWCKx31duNiZLSEM8EDkMZ/R5 Wy5yDLplJSx/SUd+GwZu3N7fTL7c0m8= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="Bx7ZN/qR"; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf07.hostedemail.com: domain of jiebin.sun@intel.com has no SPF policy when checking 192.55.52.93) smtp.mailfrom=jiebin.sun@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1658478715; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=Xa3Rv2pui6Nnp2xag2klfRK5cXbX/wQdNuFzOP9zRB4=; b=M23B+xka8TEDLa0XZJYMnbLghzqLuicizJsBX56mry55SC08Fq1/6iJwjfBd7KfntJnREG zwzWUzrgyArT7Xhl18PelfILVziYq/kYf48Q0EINBY8DjUcXhtoY9b8NF9y37d10yncgSS 0bGkq9Lci2qKtawpRIaknmMYWZZUGRM= Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="Bx7ZN/qR"; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf07.hostedemail.com: domain of jiebin.sun@intel.com has no SPF policy when checking 192.55.52.93) smtp.mailfrom=jiebin.sun@intel.com X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 0753640075 X-Stat-Signature: 1jxpyfrxeube9zjajy59xspmeqseihbc X-HE-Tag: 1658478713-502712 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: From: jiebin sun Remove the redundant updating of stats_flush_threshold. If the global var stats_flush_threshold has exceeded the trigger value for __mem_cgroup_flush_stats, further increment is unnecessary. Apply the patch and test the pts/hackbench-1.0.0 Count:4 (160 threads). Score gain: 1.95x Reduce CPU cycles in __mod_memcg_lruvec_state (44.88% -> 0.12%) CPU: ICX 8380 x 2 sockets Core number: 40 x 2 physical cores Benchmark: pts/hackbench-1.0.0 Count:4 (160 threads) Signed-off-by: Jiebin Sun --- mm/memcontrol.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index abec50f31fe6..9e8c6f24c694 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -626,7 +626,14 @@ static inline void memcg_rstat_updated(struct mem_cgroup *memcg, int val) x = __this_cpu_add_return(stats_updates, abs(val)); if (x > MEMCG_CHARGE_BATCH) { - atomic_add(x / MEMCG_CHARGE_BATCH, &stats_flush_threshold); + /* + * If stats_flush_threshold exceeds the threshold + * (>num_online_cpus()), cgroup stats update will be triggered + * in __mem_cgroup_flush_stats(). Increasing this var further + * is redundant and simply adds overhead in atomic update. + */ + if (atomic_read(&stats_flush_threshold) <= num_online_cpus()) + atomic_add(x / MEMCG_CHARGE_BATCH, &stats_flush_threshold); __this_cpu_write(stats_updates, 0); } } -- 2.31.1