mm: memcg: drop obsolete cache line padding in struct mem_cgroup
Subsystems (2)
Roman Gushchin
maintainerPATCH 1/2 mm: memcg: drop obsolete cache line padding in struct mem_cgroup
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.
--- include/linux/memcontrol.h | 4 ---- 1 file changed, 4 deletions(-)
include/linux/memcontrol.h +0 -4
@@ -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. */
Signature · 1 line
2.45.2.803.g4e1b14247a-goog
Roman Gushchin
maintainerPATCH 2/2 mm: memcg: add cache line padding to mem_cgroup_per_node
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.
--- include/linux/memcontrol.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
include/linux/memcontrol.h +4 -2
@@ -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. */
Signature · 1 line
2.45.2.803.g4e1b14247a-goog
Re: [PATCH 2/2] mm: memcg: add cache line padding to mem_cgroup_per_node
Quoted 7 lines · Roman Gushchin
Memcg v1-specific fields serve a buffer function between read-mostly and update often parts of the
mem_cgroup_per_nodestructure. IfCONFIG_MEMCG_V1is not set and these fields are not present, an explicit cacheline padding is needed.Suggested-by Shakeel Butt <[email protected]>Signed-off-by Roman Gushchin <[email protected]>
Quoted 7 lines · 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 <[email protected]>Signed-off-by Roman Gushchin <[email protected]>