Messages in this thread | | | From | Shakeel Butt <> | Date | Wed, 21 Feb 2018 09:18:35 -0800 | Subject | Re: [PATCH v2 0/3] Directed kmem charging |
| |
On Wed, Feb 21, 2018 at 8:09 AM, Christopher Lameter <cl@linux.com> wrote: > Another way to solve this is to switch the user context right? > > Isnt it possible to avoid these patches if do the allocation in another > task context instead? >
Sorry, can you please explain what you mean by 'switch the user context'. Is there any example in kernel which does something similar?
Another way is by adding a field 'remote_memcg_to_charge' in task_struct and set it before the allocation and in memcontrol.c, first check if current->remote_memcg_to_charge is set otherwise use the memcg of current. Also if we provide a wrapper to do that for the user, there will be a lot less plumbing.
Please let me know if you prefer this approach.
> Are there really any other use cases beyond fsnotify? >
Another use case I have in mind and plan to upstream is to bind a filesystem mount with a memcg. So, all the file pages (or anon pages for shmem) and kmem (like inodes and dentry) will be charged to that memcg.
> > The charging of the memory works on a per page level but the allocation > occur from the same page for multiple tasks that may be running on a > system. So how relevant is this for other small objects? > > Seems that if you do a large amount of allocations for the same purpose > your chance of accounting it to the right memcg increases. But this is a > game of chance. > > >
| |