)]}'
{
  "commit": "0ca87f05ba8bdc6791c14878464efc901ad71e99",
  "tree": "c37e25b30c22adae633dcacb2236e83086887418",
  "parents": [
    "3aeb7d2243e55ddcad3c0b402e7b09619a67f5da"
  ],
  "author": {
    "name": "Matt Evans",
    "email": "matt@ozlabs.org",
    "time": "Wed Jul 20 15:51:00 2011 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Thu Jul 21 12:38:32 2011 -0700"
  },
  "message": "net: filter: BPF \u0027JIT\u0027 compiler for PPC64\n\nAn implementation of a code generator for BPF programs to speed up packet\nfiltering on PPC64, inspired by Eric Dumazet\u0027s x86-64 version.\n\nFilter code is generated as an ABI-compliant function in module_alloc()\u0027d mem\nwith stackframe \u0026 prologue/epilogue generated if required (simple filters don\u0027t\nneed anything more than an li/blr).  The filter\u0027s local variables, M[], live in\nregisters.  Supports all BPF opcodes, although \"complicated\" loads from negative\npacket offsets (e.g. SKF_LL_OFF) are not yet supported.\n\nThere are a couple of further optimisations left for future work; many-pass\nassembly with branch-reach reduction and a register allocator to push M[]\nvariables into volatile registers would improve the code quality further.\n\nThis currently supports big-endian 64-bit PowerPC only (but is fairly simple\nto port to PPC32 or LE!).\n\nEnabled in the same way as x86-64:\n\n\techo 1 \u003e /proc/sys/net/core/bpf_jit_enable\n\nOr, enabled with extra debug output:\n\n\techo 2 \u003e /proc/sys/net/core/bpf_jit_enable\n\nSigned-off-by: Matt Evans \u003cmatt@ozlabs.org\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2729c6663d8a79c42705b9f81828e6ee6d6f5dd0",
      "old_mode": 33188,
      "old_path": "arch/powerpc/Kconfig",
      "new_id": "39860fce97dfc0d976c6ed1ad589195fa3fe346b",
      "new_mode": 33188,
      "new_path": "arch/powerpc/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "b7212b619c52377ddeb471cf8e32f6080522cafa",
      "old_mode": 33188,
      "old_path": "arch/powerpc/Makefile",
      "new_id": "b94740f36b1a9f9e3378027b51bf080efa6a558e",
      "new_mode": 33188,
      "new_path": "arch/powerpc/Makefile"
    },
    {
      "type": "modify",
      "old_id": "e472659d906c3203e5da6be8b8e1d3baa9fa967c",
      "old_mode": 33188,
      "old_path": "arch/powerpc/include/asm/ppc-opcode.h",
      "new_id": "e980faae4225098d37e087d502bfb70166d9ea29",
      "new_mode": 33188,
      "new_path": "arch/powerpc/include/asm/ppc-opcode.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "266b3950c3ac519099e11c698ed5b4cc5cd15519",
      "new_mode": 33188,
      "new_path": "arch/powerpc/net/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "af1ab5e9a691e6b3c70b8d08415992f8c2205049",
      "new_mode": 33188,
      "new_path": "arch/powerpc/net/bpf_jit.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ff4506e85cce80bc2fdb7003078cec3f5c0d9962",
      "new_mode": 33188,
      "new_path": "arch/powerpc/net/bpf_jit_64.S"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "73619d3aeb6ceebaa9d54e652b5025234f31660c",
      "new_mode": 33188,
      "new_path": "arch/powerpc/net/bpf_jit_comp.c"
    }
  ]
}
