)]}'
{
  "commit": "c56004901fa5dcf55f92318f192ab3c0e87db2d1",
  "tree": "ac53ded16ab9886ce05d4b2d424dfed80dce9e57",
  "parents": [
    "77fa5adcda6d686d2f45a2b55dcb9a03e7d33fa1"
  ],
  "author": {
    "name": "Jeff Dike",
    "email": "jdike@addtoit.com",
    "time": "Sat Sep 03 15:57:36 2005 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@evo.osdl.org",
    "time": "Mon Sep 05 00:06:22 2005 -0700"
  },
  "message": "[PATCH] uml: TLB operation batching\n\nThis adds VM op batching to skas0.  Rather than having a context switch to and\nfrom the userspace stub for each address space change, we write a number of\noperations to the stub data page and invoke a different stub which loops over\nthem and executes them all in one go.\n\nThe operations are stored as [ system call number, arg1, arg2, ... ] tuples.\n\nThe set is terminated by a system call number of 0.  Single operations, i.e.\npage faults, are handled in the old way, since that is slightly more\nefficient.\n\nFor a kernel build, a minority (~1/4) of the operations are part of a set.\nThese sets averaged ~100 in length, so for this quarter, the context switching\noverhead is greatly reduced.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c6f9628f39bfd159a87df0dd19c07053b536142e",
      "old_mode": 33188,
      "old_path": "arch/um/include/tlb.h",
      "new_id": "2deefb99c63c9966e0cf93a472dd7a42fa793b13",
      "new_mode": 33188,
      "new_path": "arch/um/include/tlb.h"
    },
    {
      "type": "modify",
      "old_id": "d983ea842547fe807fcd5b8c7bc1ca1d51887400",
      "old_mode": 33188,
      "old_path": "arch/um/kernel/skas/include/skas.h",
      "new_id": "e91064b7e5a0d664f0aeb55cb746601eef56e815",
      "new_mode": 33188,
      "new_path": "arch/um/kernel/skas/include/skas.h"
    },
    {
      "type": "modify",
      "old_id": "b0980ff3bd95bb14279ad94e2581f91ae725d1ac",
      "old_mode": 33188,
      "old_path": "arch/um/kernel/skas/mem_user.c",
      "new_id": "c976320ebe84a5044c76c08b669cba381e3e848b",
      "new_mode": 33188,
      "new_path": "arch/um/kernel/skas/mem_user.c"
    },
    {
      "type": "modify",
      "old_id": "6230999c672c90ff3a36abf31d23f8c774c3f2eb",
      "old_mode": 33188,
      "old_path": "arch/um/kernel/skas/tlb.c",
      "new_id": "4b5fd2049547f2551b0c9abe85b6ede9d94bf2f7",
      "new_mode": 33188,
      "new_path": "arch/um/kernel/skas/tlb.c"
    },
    {
      "type": "modify",
      "old_id": "83ec8d4747fd039482aca79dc9137371d0b86989",
      "old_mode": 33188,
      "old_path": "arch/um/kernel/tlb.c",
      "new_id": "7d914bb6b002a03d2dfda51ea81423fd7e299778",
      "new_mode": 33188,
      "new_path": "arch/um/kernel/tlb.c"
    },
    {
      "type": "modify",
      "old_id": "2eefb43bc9c2e3a01cb547ca657d654b98e2b19c",
      "old_mode": 33188,
      "old_path": "arch/um/kernel/tt/tlb.c",
      "new_id": "16fc6a28882d8b11dede6ecdec95fa73f7bee736",
      "new_mode": 33188,
      "new_path": "arch/um/kernel/tt/tlb.c"
    },
    {
      "type": "modify",
      "old_id": "2f2c70a8f043440ef99f68c20332158292407972",
      "old_mode": 33188,
      "old_path": "arch/um/sys-i386/stub.S",
      "new_id": "a0f9506312d11aa0c7479c1299bac0e5a4a30eb8",
      "new_mode": 33188,
      "new_path": "arch/um/sys-i386/stub.S"
    },
    {
      "type": "modify",
      "old_id": "31c14925716bc1c2cf7db2be034e79738c4cb0fa",
      "old_mode": 33188,
      "old_path": "arch/um/sys-x86_64/stub.S",
      "new_id": "957f2eff32cabde7cf1cc7e4e8dcdb06137664e2",
      "new_mode": 33188,
      "new_path": "arch/um/sys-x86_64/stub.S"
    }
  ]
}
