On Fri, Nov 17, 2017 at 08:45:03PM -0800, Shawn Landden wrote: > On Fri, Nov 3, 2017 at 2:09 AM, Michal Hocko <mhocko@xxxxxxxxxx> wrote: > > On Thu 02-11-17 23:35:44, Shawn Landden wrote: > > > 16 bytes per process is kinda spendy, but I want to keep > > > lru behavior, which mem_score_adj does not allow. When a supervisor, > > > like Android's user input is keeping track this can be done in > > user-space. > > > It could be pulled out of task_struct if an cross-indexing additional > > > red-black tree is added to support pid-based lookup. > > > > This is still an abuse and the patch is wrong. We really do have an API > > to use I fail to see why you do not use it. > > > When I looked at wait_queue_head_t it was 20 byes. 24 bytes actually; the compiler will add 4 bytes of padding between the spinlock and the list_head. But there's one for the entire system. Then you add a 40 byte structure (wait_queue_entry) on the stack for each sleeping process. There's no per-process cost.