Thanks for the comments, Sergey! > A nit: we usually call get_first_page() in such cases. I'll use get_first_page() here in v7. > We probably better to cond_resched() somewhere here. Or in zs_zpool_shrink() > loop. I'll put it right after releasing the pool's lock in the retry loop: /* Lock out object allocations and object compaction */ remove_zspage(class, zspage, fullness); spin_unlock(&pool->lock); cond_resched(); /* Lock backing pages into place */ lock_zspage(zspage); This will also appear in v7. In the meantime, please feel free to discuss all the patches - I'll try to batch the changes to minimize the churning.