Files
linux/include/linux
Thomas Gleixner ec45783fce memcg: optimize exit to user space
memcg uses TIF_NOTIFY_RESUME to handle reclaiming on exit to user space. 
TIF_NOTIFY_RESUME is a multiplexing TIF bit, which is utilized by other
entities as well.

This results in a unconditional mem_cgroup_handle_over_high() call for
every invocation of resume_user_mode_work(), which is a pointless exercise
as most of the time there is no reclaim work to do.

Especially since RSEQ is used by glibc, TIF_NOTIFY_RESUME is raised quite
frequently and the empty calls show up in exit path profiling.

Optimize this by doing a quick check of the reclaim condition before
invoking it.

[akpm@linux-foundation.org: remove now-unneeded test of memcg_nr_pages_over_high==0, per Shakeel]
Link: https://lkml.kernel.org/r/87tt2b6zgs.ffs@tglx
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Roman Gushchin <roman.gushchin@linux.dev>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Shakeel Butt <shakeel.butt@linux.dev>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-13 16:55:01 -07:00
..
2025-05-11 17:54:10 -07:00
2025-07-23 01:38:56 -04:00
2025-06-15 21:19:08 +05:30
2025-07-21 18:18:51 +01:00
2025-07-31 11:28:03 -04:00
2025-07-31 18:23:53 -07:00
2025-05-21 13:41:03 +02:00
2025-05-21 13:39:45 +02:00
2025-07-07 12:24:50 +02:00
2025-06-11 13:39:52 -04:00
2025-06-27 16:38:02 -07:00
2025-07-22 15:57:02 +00:00
2025-07-16 14:28:21 +02:00
2025-07-19 18:59:51 -07:00
2025-07-24 19:12:32 -07:00
2025-05-22 11:07:05 +02:00
2025-08-02 12:06:10 -07:00
2025-06-11 11:57:14 -07:00
2025-07-02 17:18:01 +01:00
2025-07-17 06:01:16 -06:00
2025-07-13 16:38:24 -07:00
2025-09-13 16:54:50 -07:00
2025-07-09 22:41:56 -07:00
2025-06-17 18:18:46 -07:00
2025-07-14 15:20:02 -07:00
2025-07-14 15:20:02 -07:00
2025-07-08 19:11:57 -04:00
2025-07-31 16:11:43 -05:00
2025-05-21 16:46:37 +02:00
2025-07-09 19:32:30 -07:00
2025-06-19 14:28:24 +02:00
2025-06-19 14:28:24 +02:00
2025-07-22 18:07:11 +02:00
2025-07-01 12:29:29 +02:00
2025-06-13 08:47:18 +02:00
2025-07-10 09:39:18 +02:00
2025-05-11 17:54:09 -07:00
2025-07-19 10:17:56 +05:30
2025-07-23 11:56:02 +02:00
2025-07-21 17:48:32 -07:00
2025-06-25 15:12:17 -07:00
2025-06-26 09:44:45 -07:00
2025-07-17 11:26:56 +02:00
2025-08-02 12:01:37 -07:00