)]}'
{
  "log": [
    {
      "commit": "f7b7fd8f3ebbb2810d6893295aa984acd0fd30db",
      "tree": "01afc1edafc50a3c65ec8576c05c60da53d8d242",
      "parents": [
        "a93a117eaa0bec426d4671a49bfa96a6fdcd2ac9"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Nov 28 13:44:07 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:25 2005 -0800"
      },
      "message": "[PATCH] temporarily disable swap token on memory pressure\n\nSome users (hi Zwane) have seen a problem when running a workload that\neats nearly all of physical memory - th system does an OOM kill, even\nwhen there is still a lot of swap free.\n\nThe problem appears to be a very big task that is holding the swap\ntoken, and the VM has a very hard time finding any other page in the\nsystem that is swappable.\n\nInstead of ignoring the swap token when sc-\u003epriority reaches 0, we could\nsimply take the swap token away from the memory hog and make sure we\ndon\u0027t give it back to the memory hog for a few seconds.\n\nThis patch resolves the problem Zwane ran into.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fcdae29aa7a5c79f245110f6680afdc1858d3626",
      "tree": "09634921c68dd82a661c1ba389133e7f805e2d0f",
      "parents": [
        "eb92f4ef320b738e41ad43476a5d05c8a20d5cc7"
      ],
      "author": {
        "name": "Rik Van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 29 18:15:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:35 2005 -0700"
      },
      "message": "[PATCH] swaptoken tuning\n\nIt turns out that the original swap token implementation, by Song Jiang, only\nenforced the swap token while the task holding the token is handling a page\nfault.  This patch approximates that, without adding an additional flag to the\nmm_struct, by checking whether the mm-\u003emmap_sem is held for reading, like the\npage fault code does.\n\nThis patch has the effect of automatically, and gradually, disabling the\nenforcement of the swap token when there is little or no paging going on, and\n\"turning up\" the intensity of the swap token code the more the task holding\nthe token is thrashing.\n\nThanks to Song Jiang for pointing out this aspect of the token based thrashing\ncontrol concept.\n\nThe new code shows a slight degradation over the old swap token code, but\nstill a big win over running without the swap token.\n\n2.6.12+ swap token disabled\n\n$ for i in `seq 10` ; do /usr/bin/time ./qsbench -n 30000000 -p 3 ; done\n101.74user 23.13system 8:26.91elapsed 24%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (38597major+430315minor)pagefaults 0swaps\n101.98user 24.91system 8:03.06elapsed 26%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (33939major+430457minor)pagefaults 0swaps\n101.93user 22.12system 7:34.90elapsed 27%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (33166major+421267minor)pagefaults 0swaps\n101.82user 22.38system 8:31.40elapsed 24%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (39338major+433262minor)pagefaults 0swaps\n\n2.6.12+ swap token enabled, timeout 300 seconds\n\n$ for i in `seq 4` ; do /usr/bin/time ./qsbench -n 30000000 -p 3 ; done\n102.58user 16.08system 3:41.44elapsed 53%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (19707major+285786minor)pagefaults 0swaps\n102.07user 19.56system 4:00.64elapsed 50%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (19012major+299259minor)pagefaults 0swaps\n102.64user 18.25system 4:07.31elapsed 48%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (21990major+304831minor)pagefaults 0swaps\n101.39user 19.41system 5:15.81elapsed 38%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (24850major+323321minor)pagefaults 0swaps\n\n2.6.12+ with new swap token code, timeout 300 seconds\n\n$ for i in `seq 4` ; do /usr/bin/time ./qsbench -n 30000000 -p 3 ; done\n101.87user 24.66system 5:53.20elapsed 35%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (26848major+363497minor)pagefaults 0swaps\n102.83user 19.95system 4:17.25elapsed 47%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (19946major+305722minor)pagefaults 0swaps\n102.09user 19.46system 5:12.57elapsed 38%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (25461major+334994minor)pagefaults 0swaps\n101.67user 20.61system 4:52.97elapsed 41%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (22190major+329508minor)pagefaults 0swaps\n\nSigned-off-by: Rik Van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
