On Fri, Dec 11, 2015 at 12:49 PM, Cyrill Gorcunov <gorcunov@xxxxxxxxx> wrote: > > This should give a way to control the amount of anonymous > memory allocated. This looks good to me, assuming it gets testing. I think we could add the hugetlb stuff later, I think it's a separate improvement. Small nit: > @@ -1214,6 +1214,8 @@ void vm_stat_account(struct mm_struct *m > { > const unsigned long stack_flags > = VM_STACK_FLAGS & (VM_GROWSUP|VM_GROWSDOWN); > + const unsigned long not_anon_acc > + = VM_GROWSUP | VM_GROWSDOWN | VM_SHARED | VM_MAYSHARE; > > mm->total_vm += pages; > > @@ -1223,6 +1225,9 @@ void vm_stat_account(struct mm_struct *m > mm->exec_vm += pages; > } else if (flags & stack_flags) > mm->stack_vm += pages; > + > + if (!file && (flags & not_anon_acc) == 0) > + mm->anon_vm += pages; > } > #endif /* CONFIG_PROC_FS */ > > @@ -1534,6 +1539,13 @@ static inline int accountable_mapping(st > return (vm_flags & (VM_NORESERVE | VM_SHARED | VM_WRITE)) == VM_WRITE; > } > > +static inline int anon_accountable_mapping(struct file *file, vm_flags_t vm_flags) > +{ > + return !file && > + (vm_flags & (VM_GROWSDOWN | VM_GROWSUP | > + VM_SHARED | VM_MAYSHARE)) == 0; > +} You're duplicating that "is it an anon accountable mapping" logic. I think you should move the inline helper function up, and use it in vm_stat_account(). Other than that, I think the patch certainly looks clean and obvious enough. But I didn't actually try to *run* it, maybe it ends up not working due to something I don't see. Linus -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>