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 E8A31C25B77 for ; Wed, 22 May 2024 04:18:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0B7DE6B0082; Wed, 22 May 2024 00:18:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 066786B0083; Wed, 22 May 2024 00:18:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E6FFC6B0085; Wed, 22 May 2024 00:18:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id C96456B0082 for ; Wed, 22 May 2024 00:18:30 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 447B441103 for ; Wed, 22 May 2024 04:18:30 +0000 (UTC) X-FDA: 82144725180.16.6A4A352 Received: from out-187.mta1.migadu.com (out-187.mta1.migadu.com [95.215.58.187]) by imf07.hostedemail.com (Postfix) with ESMTP id AF99440002 for ; Wed, 22 May 2024 04:18:27 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=FfE3fogd; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf07.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.187 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1716351508; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=D1d+3K08/qEf9uOKnJMWpStQd4Xarx7Emvw7jojctgA=; b=8FN4NhW5RYU8Ag4GI214M4q/S4t9C7sJQ11fs3cQprILYmkf7WQIVv8Yob95rrT24Dwupq YLpGLliDFabdlKy6iDEy5acWYZ9P9WvDcMvZCoUEvyx2tAcLyDrAcaF7jV6cyKQwp/GnR6 ZSDDUH5sl4Mgs3fHfqp+eFzzo5rTzJ4= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=FfE3fogd; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf07.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.187 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1716351508; a=rsa-sha256; cv=none; b=YN+rHgCFo3q/5xBX6CVc0cErNKCLlJSNJlqLPqG+mDeaWTPFfzq2CRADGPtCuxs31HURSg rXB6C/7j5pcNMIeTRRdTHQGTodPz0MrE+SPNE3tQdC1zuoNdryS/Xq2zIH2zYXDn464xWw 1KugaBT8f2iLh6BYfhZ3iT24rOsvFPc= X-Envelope-To: oliver.sang@intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1716351505; h=from:from:reply-to:subject:subject: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=D1d+3K08/qEf9uOKnJMWpStQd4Xarx7Emvw7jojctgA=; b=FfE3fogdF398VYtflZx1VxZYjDj/XR5vEHBrBeXhj545HN3KkpD9OAScJG93qyNDvR7mwJ GlRWYsL9rHlJP4vJnsI5kAmPz3odXsXBTbnsGGQeN4hcGt8wRE9F6x4PFozZ693blB8WXd UhQyedjJkkO9VmGssl6DbEttNsvUohQ= X-Envelope-To: oe-lkp@lists.linux.dev X-Envelope-To: lkp@intel.com X-Envelope-To: linux-mm@kvack.org X-Envelope-To: akpm@linux-foundation.org X-Envelope-To: yosryahmed@google.com X-Envelope-To: tjmercier@google.com X-Envelope-To: roman.gushchin@linux.dev X-Envelope-To: hannes@cmpxchg.org X-Envelope-To: mhocko@kernel.org X-Envelope-To: muchun.song@linux.dev X-Envelope-To: cgroups@vger.kernel.org X-Envelope-To: ying.huang@intel.com X-Envelope-To: feng.tang@intel.com X-Envelope-To: fengwei.yin@intel.com Date: Tue, 21 May 2024 21:18:19 -0700 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Oliver Sang Cc: oe-lkp@lists.linux.dev, lkp@intel.com, Linux Memory Management List , Andrew Morton , Yosry Ahmed , "T.J. Mercier" , Roman Gushchin , Johannes Weiner , Michal Hocko , Muchun Song , cgroups@vger.kernel.org, ying.huang@intel.com, feng.tang@intel.com, fengwei.yin@intel.com Subject: Re: [linux-next:master] [memcg] 70a64b7919: will-it-scale.per_process_ops -11.9% regression Message-ID: References: <202405171353.b56b845-oliver.sang@intel.com> <20240520034933.wei3dffiuhq7uxhv@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: AF99440002 X-Stat-Signature: mytt4weej3mmt6petzw8skxh8tidf6zq X-HE-Tag: 1716351507-725304 X-HE-Meta: U2FsdGVkX1+YRDfSlEZ9EEQ7yTtmI77goSKD70tSZz6nxksgngdf9jiMQ+PzZaJ2hrQQ4dYnw0aL3Bmkmfl9vBJ1vShX2UebYVqn4FL9PPobOzwR3gqdUVM1EHkiM2XGrGvxWT3T5NWBdyYCG0zTNgN0QUIK5fll5r7UDeQdm07LrHN1ktfcTg+iiYu4zbo0WhDFskIbSHqj3WwevTcxGPkRalnqPsrs7eJaBVw9mFsHvMK/2vVzzyo16888RZ/fmPp64q3pTD07RTY8VAkYthuVOZuDRYI1BJ0l2lSlFJEEZrkykeIbc0VshO9KxMtS8qxAaxQKNuUbt71lwbUbSkYfDg6UJE6z8RUhbYsLrwdei0GYFwZ9G6zngT+5WES8Rp5aEAbtE6FuHzzRX39qwATlRpHE8T3CAWYjgZzexnU9iXqFilOdbJTxSD094zvJdwq8s3KvRSWC88RVXzDunaDDoFl5lBRshZVxyQ57PHJVp5ryFM9JOVgERQM3rNqFU/v/CjelfCq9xwxb2O6lLh4j/9BrjvYb7J5PjINMRAjbbQT5jyAUftTHYnBR5sGQ55HGgxmVeV1furPCsLhgS5Pi6mjF5pDWsc24HEaxXqNlyu0lQ3jhooP+/g6ZCaPEP7V8GELtCK8NoUqWzLeoErCJxqk4Bj6iJMp5lcad9dIhSxkw0xVPN7/5gD/2nIAaKun6RL0M8CS/eeVIG23MaC9PXqkmcVt4yPSI2auNfk/muTt3bYwU7S6Q5nhrZvhp3pWsTzMYModgtBaq7J7hCWyJdJKQWN6k3T2qrZsVDR+bgBOehhjbZBPdTrUi0ZxHhkMZGYGS1dnfhhnLzUpYvaB41wcL37voKggBy5H8xkiVOQjBlSxKqcWzTVdV1Lvjdk7YBU951QGxmZKpdEIeZN1LLuv+2ZAhv3an79IxtSxr1Zw9en/2cddHeakgOiIW0oH57BZxZStTRfGQ5FE vHhP/Fl7 HTbcyO8UFmM3nbqb3TcPCUWhwLxkOLjspPlN43lKCTHel07epc3W6hB5WFEh6sXsb2F1PNH/s3p72LpFEp0aBLzJ3A/C4318WzEkWIGSMnAYBH4f/QQWcNfZpc822YBu2YsrtqpYnBaEurXE= 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: List-Subscribe: List-Unsubscribe: On Tue, May 21, 2024 at 10:43:16AM +0800, Oliver Sang wrote: > hi, Shakeel, > [...] > > we reported regression on a 2-node Skylake server. so I found a 1-node Skylake > desktop (we don't have 1 node server) to check. > Please try the following patch on both single node and dual node machines: >From 00a84b489b9e18abd1b8ec575ea31afacaf0734b Mon Sep 17 00:00:00 2001 From: Shakeel Butt Date: Tue, 21 May 2024 20:27:11 -0700 Subject: [PATCH] memcg: rearrage fields of mem_cgroup_per_node At the moment the fields of mem_cgroup_per_node which get read on the performance critical path share the cacheline with the fields which might get updated. This cause contention of that cacheline for concurrent readers. Let's move all the read only pointers at the start of the struct, followed by memcg-v1 only fields and at the end fields which get updated often. Signed-off-by: Shakeel Butt --- include/linux/memcontrol.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 030d34e9d117..16efd9737be9 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -96,23 +96,25 @@ struct mem_cgroup_reclaim_iter { * per-node information in memory controller. */ struct mem_cgroup_per_node { - struct lruvec lruvec; + /* Keep the read-only fields at the start */ + struct mem_cgroup *memcg; /* Back pointer, we cannot */ + /* use container_of */ struct lruvec_stats_percpu __percpu *lruvec_stats_percpu; struct lruvec_stats *lruvec_stats; - - unsigned long lru_zone_size[MAX_NR_ZONES][NR_LRU_LISTS]; - - struct mem_cgroup_reclaim_iter iter; - struct shrinker_info __rcu *shrinker_info; + /* memcg-v1 only stuff in middle */ + struct rb_node tree_node; /* RB tree node */ unsigned long usage_in_excess;/* Set to the value by which */ /* the soft limit is exceeded*/ bool on_tree; - struct mem_cgroup *memcg; /* Back pointer, we cannot */ - /* use container_of */ + + /* Fields which get updated often at the end. */ + struct lruvec lruvec; + unsigned long lru_zone_size[MAX_NR_ZONES][NR_LRU_LISTS]; + struct mem_cgroup_reclaim_iter iter; }; struct mem_cgroup_threshold { -- 2.43.0