Messages in this thread | | | Date | Tue, 18 Mar 2008 06:44:08 +0530 | From | Balbir Singh <> | Subject | Re: [RFC][2/3] Account and control virtual address space allocations |
| |
Dave Hansen wrote: > On Sun, 2008-03-16 at 23:00 +0530, Balbir Singh wrote: >> @@ -787,6 +788,8 @@ static int ptrace_bts_realloc(struct tas >> current->mm->total_vm -= old_size; >> current->mm->locked_vm -= old_size; >> >> + mem_cgroup_update_as(current->mm, -old_size); >> + >> if (size == 0) >> goto out; > > I think splattering these things all over is probably a bad idea. >
I agree and I tried to avoid the splattering
> If you're going to do this, I think you need a couple of phases. > > 1. update the vm_(un)acct_memory() functions to take an mm
There are other problems
1. vm_(un)acct_memory is conditionally dependent on VM_ACCOUNT. Look at shmem_(un)acct_size for example 2. These routines are not called from all contexts that we care about (look at insert_special_mapping())
> 2. start using them (or some other abstracted functions in place) > 3. update the new functions for cgroups > > It's a bit non-obvious why you do the mem_cgroup_update_as() calls in > the places that you do from context. > > Having some other vm-abstracted functions will also keep you from > splattering mem_cgroup_update_as() across the tree. That's a pretty bad > name. :) ...update_mapped() or ...update_vm() might be a wee bit > better. >
I am going to split mem_cgroup_update_as() to two routines with a better name. I agree with you in principle about splattering, but please see my comments above
-- Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL
| |