Re: [PATCH v2] memcg: simple cleanup of stats update functions

From: Sebastian Andrzej Siewior
Date: Mon May 27 2024 - 11:25:25 EST


On 2024-04-20 16:25:05 [-0700], Shakeel Butt wrote:
> mod_memcg_lruvec_state() is never called from outside of memcontrol.c
> and with always irq disabled. So, replace it with the irq disabled
> version and add an assert that irq is disabled in the caller.

unless PREEMPT_RT is enabled. In that case IRQs are not disabled as part
of local_lock_irqsave(&memcg_stock.stock_lock, …) leading to:

| ------------[ cut here ]------------
| WARNING: CPU: 0 PID: 1 at mm/memcontrol.c:3150 __mod_objcg_mlstate+0xc2/0x110
| CPU: 0 PID: 1 Comm: systemd Not tainted 6.10.0-rc1-rt0+ #17
| Call Trace:
| <TASK>
| mod_objcg_state+0x2b3/0x320
| __memcg_slab_post_alloc_hook+0x13c/0x340
| kmem_cache_alloc_lru_noprof+0x2bd/0x2e0
| alloc_inode+0x59/0xc0
| iget_locked+0xf0/0x290

suggestions?

Sebastian