)]}'
{
  "commit": "ffeedafbf0236f03aeb2e8db273b3e5ae5f5bc89",
  "tree": "e00f1b0bba1c217afbcf4dda00ef950afdfcafbc",
  "parents": [
    "ada6c1de9ecabcfc5619479bcd29a208f2e248a0"
  ],
  "author": {
    "name": "Alexei Starovoitov",
    "email": "ast@plumgrid.com",
    "time": "Fri Jun 12 19:39:12 2015 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Mon Jun 15 15:53:50 2015 -0700"
  },
  "message": "bpf: introduce current-\u003epid, tgid, uid, gid, comm accessors\n\neBPF programs attached to kprobes need to filter based on\ncurrent-\u003epid, uid and other fields, so introduce helper functions:\n\nu64 bpf_get_current_pid_tgid(void)\nReturn: current-\u003etgid \u003c\u003c 32 | current-\u003epid\n\nu64 bpf_get_current_uid_gid(void)\nReturn: current_gid \u003c\u003c 32 | current_uid\n\nbpf_get_current_comm(char *buf, int size_of_buf)\nstores current-\u003ecomm into buf\n\nThey can be used from the programs attached to TC as well to classify packets\nbased on current task fields.\n\nUpdate tracex2 example to print histogram of write syscalls for each process\ninstead of aggregated for all.\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": "2235aee8096aa66a13b730571e2229b76091a181",
      "old_mode": 33188,
      "old_path": "include/linux/bpf.h",
      "new_id": "1b9a3f5b27f6cdfccc5e7e6f85fcb1e7f9dc9a37",
      "new_mode": 33188,
      "new_path": "include/linux/bpf.h"
    },
    {
      "type": "modify",
      "old_id": "602f05b7a2757f9c80c76ded04855df826819dba",
      "old_mode": 33188,
      "old_path": "include/uapi/linux/bpf.h",
      "new_id": "29ef6f99e43d1d46586fb308c15b0c65bfc33e17",
      "new_mode": 33188,
      "new_path": "include/uapi/linux/bpf.h"
    },
    {
      "type": "modify",
      "old_id": "1e00aa3316dcb53f2ab832c0aec5074e053c050c",
      "old_mode": 33188,
      "old_path": "kernel/bpf/core.c",
      "new_id": "1fc45cc830766219bef6a7d7e267a4cd63a436a2",
      "new_mode": 33188,
      "new_path": "kernel/bpf/core.c"
    },
    {
      "type": "modify",
      "old_id": "7ad5d8842d5b28e2fcdfeba7b14061bb65d1c30e",
      "old_mode": 33188,
      "old_path": "kernel/bpf/helpers.c",
      "new_id": "1447ec09421ebc4905c922f4f4fa2b65b52b474a",
      "new_mode": 33188,
      "new_path": "kernel/bpf/helpers.c"
    },
    {
      "type": "modify",
      "old_id": "50c4015a8ad3ee4e89f9000934bda2143c8bf40b",
      "old_mode": 33188,
      "old_path": "kernel/trace/bpf_trace.c",
      "new_id": "3a17638cdf460c9a499357ae3c08e89f3ae6aa0b",
      "new_mode": 33188,
      "new_path": "kernel/trace/bpf_trace.c"
    },
    {
      "type": "modify",
      "old_id": "d271c06bf01f70c8c84ae9aa166e9f3d94011488",
      "old_mode": 33188,
      "old_path": "net/core/filter.c",
      "new_id": "20aa51ccbf9dfd21a0fb2269ebcebf5bdd15368d",
      "new_mode": 33188,
      "new_path": "net/core/filter.c"
    },
    {
      "type": "modify",
      "old_id": "f531a0b3282d593dac6bbec2bfb1726c6a7bbd54",
      "old_mode": 33188,
      "old_path": "samples/bpf/bpf_helpers.h",
      "new_id": "bdf1c1607b808e9ac0d7ada164a25694c56b6965",
      "new_mode": 33188,
      "new_path": "samples/bpf/bpf_helpers.h"
    },
    {
      "type": "modify",
      "old_id": "19ec1cfc45dbb7b4f856b4cba8594467736e3d2e",
      "old_mode": 33188,
      "old_path": "samples/bpf/tracex2_kern.c",
      "new_id": "dc50f4f2943f937d5c389e5384d39a0153d3f273",
      "new_mode": 33188,
      "new_path": "samples/bpf/tracex2_kern.c"
    },
    {
      "type": "modify",
      "old_id": "91b8d0896fbb706487951cea8d2ab4fbece0fb44",
      "old_mode": 33188,
      "old_path": "samples/bpf/tracex2_user.c",
      "new_id": "cd0241c1447a5fb37d0e9e1633f4a47a457f344f",
      "new_mode": 33188,
      "new_path": "samples/bpf/tracex2_user.c"
    }
  ]
}
