linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] mm: memcg: drop obsolete cache line padding in struct mem_cgroup
@ 2024-07-01 18:59 Roman Gushchin
  2024-07-01 18:59 ` [PATCH 2/2] mm: memcg: add cache line padding to mem_cgroup_per_node Roman Gushchin
  2024-07-01 19:16 ` [PATCH 1/2] mm: memcg: drop obsolete cache line padding in struct mem_cgroup Shakeel Butt
  0 siblings, 2 replies; 4+ messages in thread
From: Roman Gushchin @ 2024-07-01 18:59 UTC (permalink / raw)
  To: Andrew Morton, Shakeel Butt
  Cc: linux-mm, linux-kernel, Johannes Weiner, Michal Hocko,
	Muchun Song, Roman Gushchin

After the grouping of the cgroup v1-related fields and the
corresponding reorganization of the struct mem_cgroup, the existing
cache line padding doesn't make much sense anymore. Let's drop
it for now and put back to new places, if necessary.

Suggested-by: Shakeel Butt <shakeel.butt@linux.dev>
Signed-off-by: Roman Gushchin <roman.gushchin@linux.dev>
---
 include/linux/memcontrol.h | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index d0c9365ff039..8b5b3ddeba05 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -220,8 +220,6 @@ struct mem_cgroup {
 	/* handle for "memory.swap.events" */
 	struct cgroup_file swap_events_file;
 
-	CACHELINE_PADDING(_pad1_);
-
 	/* memory.stat */
 	struct memcg_vmstats	*vmstats;
 
@@ -305,8 +303,6 @@ struct mem_cgroup {
 	bool tcpmem_active;
 	int tcpmem_pressure;
 
-	CACHELINE_PADDING(_pad2_);
-
 	/*
 	 * set > 0 if pages under this cgroup are moving to other cgroup.
 	 */
-- 
2.45.2.803.g4e1b14247a-goog



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 2/2] mm: memcg: add cache line padding to mem_cgroup_per_node
  2024-07-01 18:59 [PATCH 1/2] mm: memcg: drop obsolete cache line padding in struct mem_cgroup Roman Gushchin
@ 2024-07-01 18:59 ` Roman Gushchin
  2024-07-01 19:17   ` Shakeel Butt
  2024-07-01 19:16 ` [PATCH 1/2] mm: memcg: drop obsolete cache line padding in struct mem_cgroup Shakeel Butt
  1 sibling, 1 reply; 4+ messages in thread
From: Roman Gushchin @ 2024-07-01 18:59 UTC (permalink / raw)
  To: Andrew Morton, Shakeel Butt
  Cc: linux-mm, linux-kernel, Johannes Weiner, Michal Hocko,
	Muchun Song, Roman Gushchin

Memcg v1-specific fields serve a buffer function between read-mostly
and update often parts of the mem_cgroup_per_node structure.
If CONFIG_MEMCG_V1 is not set and these fields are not present,
an explicit cacheline padding is needed.

Suggested-by: Shakeel Butt <shakeel.butt@linux.dev>
Signed-off-by: Roman Gushchin <roman.gushchin@linux.dev>
---
 include/linux/memcontrol.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index 8b5b3ddeba05..60418934827c 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -95,14 +95,16 @@ struct mem_cgroup_per_node {
 #ifdef CONFIG_MEMCG_V1
 	/*
 	 * Memcg-v1 only stuff in middle as buffer between read mostly fields
-	 * and update often fields to avoid false sharing. Once v1 stuff is
-	 * moved in a separate struct, an explicit padding is needed.
+	 * and update often fields to avoid false sharing. If v1 stuff is
+	 * not present, an explicit padding is needed.
 	 */
 
 	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;
+#else
+	CACHELINE_PADDING(_pad1_);
 #endif
 
 	/* Fields which get updated often at the end. */
-- 
2.45.2.803.g4e1b14247a-goog



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] mm: memcg: drop obsolete cache line padding in struct mem_cgroup
  2024-07-01 18:59 [PATCH 1/2] mm: memcg: drop obsolete cache line padding in struct mem_cgroup Roman Gushchin
  2024-07-01 18:59 ` [PATCH 2/2] mm: memcg: add cache line padding to mem_cgroup_per_node Roman Gushchin
@ 2024-07-01 19:16 ` Shakeel Butt
  1 sibling, 0 replies; 4+ messages in thread
From: Shakeel Butt @ 2024-07-01 19:16 UTC (permalink / raw)
  To: Roman Gushchin
  Cc: Andrew Morton, linux-mm, linux-kernel, Johannes Weiner,
	Michal Hocko, Muchun Song

On Mon, Jul 01, 2024 at 06:59:31PM GMT, Roman Gushchin wrote:
> After the grouping of the cgroup v1-related fields and the
> corresponding reorganization of the struct mem_cgroup, the existing
> cache line padding doesn't make much sense anymore. Let's drop
> it for now and put back to new places, if necessary.
> 
> Suggested-by: Shakeel Butt <shakeel.butt@linux.dev>
> Signed-off-by: Roman Gushchin <roman.gushchin@linux.dev>

Acked-by: Shakeel Butt <shakeel.butt@linux.dev>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] mm: memcg: add cache line padding to mem_cgroup_per_node
  2024-07-01 18:59 ` [PATCH 2/2] mm: memcg: add cache line padding to mem_cgroup_per_node Roman Gushchin
@ 2024-07-01 19:17   ` Shakeel Butt
  0 siblings, 0 replies; 4+ messages in thread
From: Shakeel Butt @ 2024-07-01 19:17 UTC (permalink / raw)
  To: Roman Gushchin
  Cc: Andrew Morton, linux-mm, linux-kernel, Johannes Weiner,
	Michal Hocko, Muchun Song

On Mon, Jul 01, 2024 at 06:59:32PM GMT, Roman Gushchin wrote:
> Memcg v1-specific fields serve a buffer function between read-mostly
> and update often parts of the mem_cgroup_per_node structure.
> If CONFIG_MEMCG_V1 is not set and these fields are not present,
> an explicit cacheline padding is needed.
> 
> Suggested-by: Shakeel Butt <shakeel.butt@linux.dev>
> Signed-off-by: Roman Gushchin <roman.gushchin@linux.dev>

Acked-by: Shakeel Butt <shakeel.butt@linux.dev>


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-07-01 19:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-07-01 18:59 [PATCH 1/2] mm: memcg: drop obsolete cache line padding in struct mem_cgroup Roman Gushchin
2024-07-01 18:59 ` [PATCH 2/2] mm: memcg: add cache line padding to mem_cgroup_per_node Roman Gushchin
2024-07-01 19:17   ` Shakeel Butt
2024-07-01 19:16 ` [PATCH 1/2] mm: memcg: drop obsolete cache line padding in struct mem_cgroup Shakeel Butt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox