On 18.04.2018 17:32, Tetsuo Handa wrote: > Kirill Tkhai wrote: >> On 18.04.2018 17:14, Tetsuo Handa wrote: >>> Kirill Tkhai wrote: >>>> The patch introduces shrinker::id number, which is used to enumerate >>>> memcg-aware shrinkers. The number start from 0, and the code tries >>>> to maintain it as small as possible. >>>> >>>> This will be used as to represent a memcg-aware shrinkers in memcg >>>> shrinkers map. >>> >>> I'm not reading this thread. But is there reason "id" needs to be managed >>> using smallest numbers? Can't we use address of shrinker object as "id" >>> (which will be sparse bitmap, and would be managed using linked list for now)? >> >> Yes, it's needed to have the smallest numbers, as next patches introduce >> per-memcg bitmap containing ids of shrinkers. > > If you use sparse bitmap (xbitmap ?), I think you can do it. There is no implementation in kernel, and search gave me this link: https://patchwork.kernel.org/patch/10128397/ The problem is that it may allocate memory, and hence to fail. While adding an element to shrinker lists (and setting a bit in bitmap) mustn't fail. So, it's not possible to use sparse bitmap. Kirill