)]}'
{
  "commit": "aaac3ba95e4c8b496d22f68bd1bc01cfbf525eca",
  "tree": "fa5df3122c2576bd2df76f1494c88619b22b6f08",
  "parents": [
    "1be7f75d1668d6296b80bf35dcf6762393530afc"
  ],
  "author": {
    "name": "Alexei Starovoitov",
    "email": "ast@plumgrid.com",
    "time": "Wed Oct 07 22:23:22 2015 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Mon Oct 12 19:13:36 2015 -0700"
  },
  "message": "bpf: charge user for creation of BPF maps and programs\n\nsince eBPF programs and maps use kernel memory consider it \u0027locked\u0027 memory\nfrom user accounting point of view and charge it against RLIMIT_MEMLOCK limit.\nThis limit is typically set to 64Kbytes by distros, so almost all\nbpf+tracing programs would need to increase it, since they use maps,\nbut kernel charges maximum map size upfront.\nFor example the hash map of 1024 elements will be charged as 64Kbyte.\nIt\u0027s inconvenient for current users and changes current behavior for root,\nbut probably worth doing to be consistent root vs non-root.\n\nSimilar accounting logic is done by mmap of perf_event.\n\nSigned-off-by: Alexei Starovoitov \u003cast@plumgrid.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "02fa3db3c1ec597b0b2d5ac8fc3907f06bcb6a4d",
      "old_mode": 33188,
      "old_path": "include/linux/bpf.h",
      "new_id": "e3a51b74e275933700690afcc6c2c233b3612066",
      "new_mode": 33188,
      "new_path": "include/linux/bpf.h"
    },
    {
      "type": "modify",
      "old_id": "b7b9501b41af4eab6a096601c3baf85c85854807",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "4817df5fffae86c1ccbcd385200c053e8eaad2ea",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "2fecc4aed119fffa896a667fa2e295aeb370d874",
      "old_mode": 33188,
      "old_path": "kernel/bpf/arraymap.c",
      "new_id": "f2d9e698c7538e61fa8dec26465608643770e06a",
      "new_mode": 33188,
      "new_path": "kernel/bpf/arraymap.c"
    },
    {
      "type": "modify",
      "old_id": "83c209d9b17ae6b23eb16d0fd0d94b873897ffba",
      "old_mode": 33188,
      "old_path": "kernel/bpf/hashtab.c",
      "new_id": "28592d79502b0dcb0deac7dfb1ac10f07d435eb5",
      "new_mode": 33188,
      "new_path": "kernel/bpf/hashtab.c"
    },
    {
      "type": "modify",
      "old_id": "83697bc8e574aadafb3ab4db613a03c4f988f83e",
      "old_mode": 33188,
      "old_path": "kernel/bpf/syscall.c",
      "new_id": "f640e5f7afbd7cece735fcbc1fe34a6d0355337a",
      "new_mode": 33188,
      "new_path": "kernel/bpf/syscall.c"
    }
  ]
}
