Re: [PATCH] mm, vmscan: guarantee drop_slab_node() termination

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2021/8/19 5:48, Chris Down wrote:
Vlastimil Babka writes:
@@ -948,7 +949,7 @@ void drop_slab_node(int nid)
        do {
            freed += shrink_slab(GFP_KERNEL, nid, memcg, 0);
        } while ((memcg = mem_cgroup_iter(NULL, memcg, NULL)) != NULL);
-    } while (freed > 10);
+    } while ((freed >> shift++) > 0);

I think this is a good idea, thanks for bringing it up :-)

I'm not sure about the bitshift idea, though. It certainly makes sure that even large, continuous periods of reclaim eventually terminates, but I find it hard to reason about -- for example, if there's a lot of parallel activity, that might result in 10 constantly reintroduced pages, or 1000 pages, and it's not immediately obvious that we should treat those differently.

What about using MAX_RECLAIM_RETRIES? There's already precedent for using it in non-OOM scenarios, like mem_cgroup_handle_over_high.

Yes, we meet this issue too, and we add a max loop limit in drop_slab_node() in our kernel, which also could be reconfigured by sysctl ;)


.






[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux