mirror of https://github.com/torvalds/linux.git
memcg: remove __mod_lruvec_kmem_state
__mod_lruvec_kmem_state() is already safe against irqs, so there is no need to have a separate interface (i.e. mod_lruvec_kmem_state) which wraps calls to it with irq disabling and reenabling. Let's rename __mod_lruvec_kmem_state() to mod_lruvec_kmem_state(). Link: https://lkml.kernel.org/r/20251110232008.1352063-3-shakeel.butt@linux.dev Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev> Reviewed-by: Harry Yoo <harry.yoo@oracle.com> Reviewed-by: Qi Zheng <zhengqi.arch@bytedance.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Michal Hocko <mhocko@kernel.org> Cc: Muchun Song <muchun.song@linux.dev> Cc: Roman Gushchin <roman.gushchin@linux.dev> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
7e44d00a13
commit
469241fe76
|
|
@ -957,17 +957,7 @@ unsigned long lruvec_page_state_local(struct lruvec *lruvec,
|
||||||
void mem_cgroup_flush_stats(struct mem_cgroup *memcg);
|
void mem_cgroup_flush_stats(struct mem_cgroup *memcg);
|
||||||
void mem_cgroup_flush_stats_ratelimited(struct mem_cgroup *memcg);
|
void mem_cgroup_flush_stats_ratelimited(struct mem_cgroup *memcg);
|
||||||
|
|
||||||
void __mod_lruvec_kmem_state(void *p, enum node_stat_item idx, int val);
|
void mod_lruvec_kmem_state(void *p, enum node_stat_item idx, int val);
|
||||||
|
|
||||||
static inline void mod_lruvec_kmem_state(void *p, enum node_stat_item idx,
|
|
||||||
int val)
|
|
||||||
{
|
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
local_irq_save(flags);
|
|
||||||
__mod_lruvec_kmem_state(p, idx, val);
|
|
||||||
local_irq_restore(flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
void count_memcg_events(struct mem_cgroup *memcg, enum vm_event_item idx,
|
void count_memcg_events(struct mem_cgroup *memcg, enum vm_event_item idx,
|
||||||
unsigned long count);
|
unsigned long count);
|
||||||
|
|
@ -1403,14 +1393,6 @@ static inline void mem_cgroup_flush_stats_ratelimited(struct mem_cgroup *memcg)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void __mod_lruvec_kmem_state(void *p, enum node_stat_item idx,
|
|
||||||
int val)
|
|
||||||
{
|
|
||||||
struct page *page = virt_to_head_page(p);
|
|
||||||
|
|
||||||
mod_node_page_state(page_pgdat(page), idx, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void mod_lruvec_kmem_state(void *p, enum node_stat_item idx,
|
static inline void mod_lruvec_kmem_state(void *p, enum node_stat_item idx,
|
||||||
int val)
|
int val)
|
||||||
{
|
{
|
||||||
|
|
@ -1470,14 +1452,14 @@ struct slabobj_ext {
|
||||||
#endif
|
#endif
|
||||||
} __aligned(8);
|
} __aligned(8);
|
||||||
|
|
||||||
static inline void __inc_lruvec_kmem_state(void *p, enum node_stat_item idx)
|
static inline void inc_lruvec_kmem_state(void *p, enum node_stat_item idx)
|
||||||
{
|
{
|
||||||
__mod_lruvec_kmem_state(p, idx, 1);
|
mod_lruvec_kmem_state(p, idx, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void __dec_lruvec_kmem_state(void *p, enum node_stat_item idx)
|
static inline void dec_lruvec_kmem_state(void *p, enum node_stat_item idx)
|
||||||
{
|
{
|
||||||
__mod_lruvec_kmem_state(p, idx, -1);
|
mod_lruvec_kmem_state(p, idx, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct lruvec *parent_lruvec(struct lruvec *lruvec)
|
static inline struct lruvec *parent_lruvec(struct lruvec *lruvec)
|
||||||
|
|
|
||||||
|
|
@ -799,7 +799,7 @@ void __lruvec_stat_mod_folio(struct folio *folio, enum node_stat_item idx,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(__lruvec_stat_mod_folio);
|
EXPORT_SYMBOL(__lruvec_stat_mod_folio);
|
||||||
|
|
||||||
void __mod_lruvec_kmem_state(void *p, enum node_stat_item idx, int val)
|
void mod_lruvec_kmem_state(void *p, enum node_stat_item idx, int val)
|
||||||
{
|
{
|
||||||
pg_data_t *pgdat = page_pgdat(virt_to_page(p));
|
pg_data_t *pgdat = page_pgdat(virt_to_page(p));
|
||||||
struct mem_cgroup *memcg;
|
struct mem_cgroup *memcg;
|
||||||
|
|
|
||||||
|
|
@ -749,7 +749,7 @@ static enum lru_status shadow_lru_isolate(struct list_head *item,
|
||||||
if (WARN_ON_ONCE(node->count != node->nr_values))
|
if (WARN_ON_ONCE(node->count != node->nr_values))
|
||||||
goto out_invalid;
|
goto out_invalid;
|
||||||
xa_delete_node(node, workingset_update_node);
|
xa_delete_node(node, workingset_update_node);
|
||||||
__inc_lruvec_kmem_state(node, WORKINGSET_NODERECLAIM);
|
inc_lruvec_kmem_state(node, WORKINGSET_NODERECLAIM);
|
||||||
|
|
||||||
out_invalid:
|
out_invalid:
|
||||||
xa_unlock_irq(&mapping->i_pages);
|
xa_unlock_irq(&mapping->i_pages);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue