The quilt patch titled Subject: mm-zswap-fix-global-shrinker-memcg-iterationpatch-fix has been removed from the -mm tree. Its filename was mm-zswap-fix-global-shrinker-memcg-iterationpatch-fix.patch This patch was dropped because it was folded into mm-zswap-fix-global-shrinker-memcg-iteration.patch ------------------------------------------------------ From: Yosry Ahmed <yosryahmed@xxxxxxxxxx> Subject: mm-zswap-fix-global-shrinker-memcg-iterationpatch-fix Date: Fri, 2 Aug 2024 21:14:17 -0700 move the spin_lock/unlock() closer to the loop to make the critical section more obvious, and unify the comments above and below into a single block. Link: https://lkml.kernel.org/r/CAJD7tkaScz+SbB90Q1d5mMD70UfM2a-J2zhXDT9sePR7Qap45Q@xxxxxxxxxxxxxx Signed-off-by: Yosry Ahmed <yosryahmed@xxxxxxxxxx> Cc: Chengming Zhou <chengming.zhou@xxxxxxxxx> Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Nhat Pham <nphamcs@xxxxxxxxx> Cc: Takero Funaki <flintglass@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/zswap.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) --- a/mm/zswap.c~mm-zswap-fix-global-shrinker-memcg-iterationpatch-fix +++ a/mm/zswap.c @@ -1335,24 +1335,22 @@ static void shrink_worker(struct work_st * until the next run of shrink_worker(). */ do { - spin_lock(&zswap_shrink_lock); - /* * Start shrinking from the next memcg after zswap_next_shrink. * When the offline cleaner has already advanced the cursor, * advancing the cursor here overlooks one memcg, but this * should be negligibly rare. + * + * If we get an online memcg, keep the extra reference in case + * the original one obtained by mem_cgroup_iter() is dropped by + * zswap_memcg_offline_cleanup() while we are shrinking the + * memcg. */ + spin_lock(&zswap_shrink_lock); do { memcg = mem_cgroup_iter(NULL, zswap_next_shrink, NULL); zswap_next_shrink = memcg; } while (memcg && !mem_cgroup_tryget_online(memcg)); - /* - * Note that if we got an online memcg, we will keep the extra - * reference in case the original reference obtained by mem_cgroup_iter - * is dropped by the zswap memcg offlining callback, ensuring that the - * memcg is not killed when we are reclaiming. - */ spin_unlock(&zswap_shrink_lock); if (!memcg) { _ Patches currently in -mm which might be from yosryahmed@xxxxxxxxxx are mm-zswap-fix-global-shrinker-memcg-iteration.patch