• Oleg Nesterov's avatar
    uprobes: Add mem_cgroup_charge_anon() into uprobe_write_opcode() · 29dedee0
    Oleg Nesterov authored
    Hugh says:
    
        The one I noticed was that it forgets all about memcg (because
        it was copied from KSM, and there the replacement page has already
        been charged to a memcg). See how mm/memory.c do_anonymous_page()
        does a mem_cgroup_charge_anon().
    
    Hopefully not a big problem, uprobes is a system-wide thing and only
    root can insert the probes. But I agree, should be fixed anyway.
    
    Add mem_cgroup_{un,}charge_anon() into uprobe_write_opcode(). To simplify
    the error handling (and avoid the new "uncharge" label) the patch also
    moves anon_vma_prepare() up before we alloc/charge the new page.
    
    While at it fix the comment about ->mmap_sem, it is held for write.
    Suggested-by: default avatarHugh Dickins <hughd@google.com>
    Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
    29dedee0
uprobes.c 47.3 KB