On (22/11/22 01:09), Johannes Weiner wrote: > On Tue, Nov 22, 2022 at 12:42:20PM +0900, Sergey Senozhatsky wrote: > > On (22/11/21 22:12), Johannes Weiner wrote: > > > On Tue, Nov 22, 2022 at 11:15:20AM +0900, Sergey Senozhatsky wrote: > > > > On (22/11/18 16:15), Nhat Pham wrote: [..] > > What I meant was: if zs_reclaim_page() makes only partial progress > > with the current LRU tail zspage and returns -EAGAIN, then we just > > don't increment `total` and continue looping in zs_zpool_shrink(). > > Hm, but it breaks on -EAGAIN, it doesn't continue. Yes. "What if it would continue". Would it make sense to not break on EAGAIN? while (total < pages) { ret = zs_reclaim_page(pool); if (ret == -EAGAIN) continue; if (ret < 0) break; total++; } Then we don't need retry loop in zs_reclaim_page().