During my work on memcg-based memory accounting for bpf maps I've done some cleanups and refactorings of the existing memlock rlimit-based code. It makes it more robust, unifies size to pages conversion, size checks and corresponding error codes. Also it adds coverage for cgroup local storage and socket local storage maps. It looks like some preliminary work on the mm side might be required to start working on the memcg-based accounting, so I'm sending these patches as a separate patchset. Roman Gushchin (5): bpf: add memlock precharge check for cgroup_local_storage bpf: add memlock precharge for socket local storage bpf: group memory related fields in struct bpf_map_memory bpf: rework memlock-based memory accounting for maps bpf: move memory size checks to bpf_map_charge_init() include/linux/bpf.h | 15 ++++-- kernel/bpf/arraymap.c | 18 ++++---- kernel/bpf/cpumap.c | 9 ++-- kernel/bpf/devmap.c | 14 +++--- kernel/bpf/hashtab.c | 14 ++---- kernel/bpf/local_storage.c | 13 ++++-- kernel/bpf/lpm_trie.c | 8 +--- kernel/bpf/queue_stack_maps.c | 13 +++--- kernel/bpf/reuseport_array.c | 17 +++---- kernel/bpf/stackmap.c | 28 ++++++----- kernel/bpf/syscall.c | 87 ++++++++++++++++++----------------- kernel/bpf/xskmap.c | 10 ++-- net/core/bpf_sk_storage.c | 12 ++++- net/core/sock_map.c | 9 +--- 14 files changed, 132 insertions(+), 135 deletions(-) -- 2.20.1