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 E9C11C433F5 for ; Thu, 24 Feb 2022 18:52:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4C5E78D0002; Thu, 24 Feb 2022 13:52:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 44DE68D0001; Thu, 24 Feb 2022 13:52:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2C7238D0002; Thu, 24 Feb 2022 13:52:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.28]) by kanga.kvack.org (Postfix) with ESMTP id 15D218D0001 for ; Thu, 24 Feb 2022 13:52:41 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id D998F1795 for ; Thu, 24 Feb 2022 18:52:40 +0000 (UTC) X-FDA: 79178569680.07.FA9DB9B Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) by imf08.hostedemail.com (Postfix) with ESMTP id 5A88F160004 for ; Thu, 24 Feb 2022 18:52:40 +0000 (UTC) Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-2d7c9a42af2so7109877b3.9 for ; Thu, 24 Feb 2022 10:52:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=7fDIkngonwGr6cxxsSmYB2pElzaWkHudUX/8Tnccq8M=; b=OAV14EcnhryVgHmcJMxdjqWW4p7mI+ha6IsWp1yCdUAOVMDm/TwFMRKRp0ipRZP/Bo NmF1K4vuGDLHRHFZOYjymi9LtFq8ruXAXZLUPLK3/VaSFu8ED14wjXyJa9LQijAGT9cC uZjJW+jtg2oHNMgdvCxcdG6JrhqsK7QiUTkEPIC+13Vg2JwRZ0zgBF6bSFvc9NcOX4I8 zPA2kYIV4VKh1qPV0BXlFtKAFJA586x6AnlUvgVMBydLcjYg3NQzYpqOKcqnk5xeI8PP y+Xp8ql9HteD3d7pXDu3k3Y82+/IiNyMahf1H7GbihMJGWo8PrknfAHeijriEOzRLm0N cK8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=7fDIkngonwGr6cxxsSmYB2pElzaWkHudUX/8Tnccq8M=; b=mvsNojkK+Y7LICN1dh73JCQRFISaog1RAxUW1R6KJoLPXDrpj863wnBTrxT3DFm3/i RN9r6kLtDEtHiv45cMjLhm6QT/OAek3PoPhIhS91GT+mK6MmqtHttYWtgCS/sJdigA46 KKVWUZBsGPbLNj6YsRGDt+MFx6B4ryKgtLarCTTcqDqk4YlaIeyRTI07KEI+n7OPwbME WTrCS8JxxtP+suJ2eishU+NJZgSQWDYq+/FjArwD1nPnsRbAXGceEjlVPrsMTsZTeINI XMpGUl1dN5CxidRpW5ZWq/hhLbhxFgAIK+TV4ToTj7K9WRmgcDyMhMupAgpmvcxzL9Ps 7pyQ== X-Gm-Message-State: AOAM53272Kb4tU/T0GiFjBt0Lq9I1t2tal5yj40ZjswlduBsmTkW+kyh ltYNU3uIDbS0H9y3EyskjAKs0UF1PeL2ew== X-Google-Smtp-Source: ABdhPJx8txydq8A+slyFNKy2msy4SHOiuOJtXmp6zw5EF9tbve1yqB6ciS9o90fmHMkqsgTqx+xYT1ICp9FqaA== X-Received: from shakeelb.svl.corp.google.com ([2620:15c:2cd:202:4dbb:1bdc:7a52:1213]) (user=shakeelb job=sendgmr) by 2002:a25:3412:0:b0:610:f23d:d56b with SMTP id b18-20020a253412000000b00610f23dd56bmr3722451yba.200.1645728759546; Thu, 24 Feb 2022 10:52:39 -0800 (PST) Date: Thu, 24 Feb 2022 10:52:36 -0800 In-Reply-To: Message-Id: <20220224185236.qgzm3jpoz2orjfcw@google.com> Mime-Version: 1.0 References: <20220224165838.oir5clpkkqpstpx3@google.com> Subject: Re: Regression in workingset_refault latency on 5.15 From: Shakeel Butt To: Daniel Dao Cc: Ivan Babrou , kernel-team , Linux MM , Johannes Weiner , Roman Gushchin , Feng Tang , Michal Hocko , Hillf Danton , "Michal =?utf-8?Q?Koutn=C3=BD?=" , Andrew Morton , Linus Torvalds Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=yes Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=OAV14Ecn; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf08.hostedemail.com: domain of 399MXYggKCBYE3w6007x2AA270.yA8749GJ-886Hwy6.AD2@flex--shakeelb.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=399MXYggKCBYE3w6007x2AA270.yA8749GJ-886Hwy6.AD2@flex--shakeelb.bounces.google.com X-Rspam-User: X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 5A88F160004 X-Stat-Signature: woyxbziiez5wqhcor7s6p46gt5eqmktq X-HE-Tag: 1645728760-37734 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, Feb 24, 2022 at 10:00:55AM -0800, Shakeel Butt wrote: > On Thu, Feb 24, 2022 at 9:34 AM Daniel Dao wrote: [...] > Anyways I am thinking of introducing mem_cgroup_flush_stats_asyn() > which will schedule flush_memcg_stats_dwork() without delay. Let me > prepare the patch based on 5.15-stable for you to test. Can you please try the following patch and let me the results? diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index d9b8df5ef212..cd732d7e00ca 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -1002,6 +1002,7 @@ static inline unsigned long lruvec_page_state_local(struct lruvec *lruvec, } void mem_cgroup_flush_stats(void); +void mem_cgroup_flush_stats_async(void); void __mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, int val); diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 32ba963ebf2e..0f298cbd4763 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -682,6 +682,14 @@ void mem_cgroup_flush_stats(void) __mem_cgroup_flush_stats(); } +void mem_cgroup_flush_stats_aync(void) +{ + if (atomic_read(&stats_flush_threshold) > num_online_cpus()) { + mod_delayed_work(system_unbound_wq, &stats_flush_dwork, 0); + atomic_set(&stats_flush_threshold, 0); + } +} + static void flush_memcg_stats_dwork(struct work_struct *w) { __mem_cgroup_flush_stats(); diff --git a/mm/workingset.c b/mm/workingset.c index d5b81e4f4cbe..86d43bfc5c63 100644 --- a/mm/workingset.c +++ b/mm/workingset.c @@ -352,7 +352,7 @@ void workingset_refault(struct page *page, void *shadow) inc_lruvec_state(lruvec, WORKINGSET_REFAULT_BASE + file); - mem_cgroup_flush_stats(); + mem_cgroup_flush_stats_async(); /* * Compare the distance to the existing workingset size. We * don't activate pages that couldn't stay resident even if