* [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