)]}'
{
  "log": [
    {
      "commit": "4d7670e0f649f9e6e6ea6c8bb9f52441fa00f92b",
      "tree": "52009a96e89a4fe2ff390cd34a7832c89d28f588",
      "parents": [
        "2822c1aa574d277b9ba0130b1e71c1a5874bc04a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Sep 03 15:54:48 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:43 2005 -0700"
      },
      "message": "[PATCH] mm: cleanup rmap\n\nThanks to Bill Irwin for pointing this out.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2822c1aa574d277b9ba0130b1e71c1a5874bc04a",
      "tree": "6a48d5db83831b6521bbc5795a70ea5ab7446b0e",
      "parents": [
        "c3dce2d89c269d5373a120d4a22fc2426ec992b0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Sep 03 15:54:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:43 2005 -0700"
      },
      "message": "[PATCH] mm: micro-optimise rmap\n\nMicrooptimise page_add_anon_rmap.  Although these expressions are used only in\nthe taken branch of the if() statement, the compiler can\u0027t reorder them inside\nbecause atomic_inc_and_test is a barrier.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c3dce2d89c269d5373a120d4a22fc2426ec992b0",
      "tree": "d4a52e35751484935a15f3b95e84bd28d6662b18",
      "parents": [
        "6e21c8f145f5052c1c2fb4a4b41bee01c848159b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Sep 03 15:54:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:43 2005 -0700"
      },
      "message": "[PATCH] mm: comment rmap\n\nJust be clear that VM_RESERVED pages here are a bug, and the test is not there\nbecause they are expected.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "839b9685e80592809d6dfdd865986cd1b5ddc2fb",
      "tree": "9c46cc93d8467035419028e6e47f25a547e6ad9a",
      "parents": [
        "3279ffd97f1b3962e40d3c5f09495ef8320b180b"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:42 2005 -0700"
      },
      "message": "[PATCH] rmap: don\u0027t test rss\n\nRemove the three get_mm_counter(mm, rss) tests from rmap.c: there was a\ntime when testing rss was important to avoid a particular race between\ndup_mmap and the anonmm rmap; but now it\u0027s just a rather silly pseudo-\noptimization, made even more obscure by the get_mm_counter macro.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5d337b9194b1ce3b6fd5f3cb2799455ed2f9a3d1",
      "tree": "91ed9ef6f4cb5f6a1832f2baaaabd53fcd83513e",
      "parents": [
        "048c27fd72816b44e096997d1c6901c3abbfd45b"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:42 2005 -0700"
      },
      "message": "[PATCH] swap: swap_lock replace list+device\n\nThe idea of a swap_device_lock per device, and a swap_list_lock over them all,\nis appealing; but in practice almost every holder of swap_device_lock must\nalready hold swap_list_lock, which defeats the purpose of the split.\n\nThe only exceptions have been swap_duplicate, valid_swaphandles and an\nuntrodden path in try_to_unuse (plus a few places added in this series).\nvalid_swaphandles doesn\u0027t show up high in profiles, but swap_duplicate does\ndemand attention.  However, with the hold time in get_swap_pages so much\nreduced, I\u0027ve not yet found a load and set of swap device priorities to show\neven swap_duplicate benefitting from the split.  Certainly the split is mere\noverhead in the common case of a single swap device.\n\nSo, replace swap_list_lock and swap_device_lock by spinlock_t swap_lock\n(generally we seem to prefer an _ in the name, and not hide in a macro).\n\nIf someone can show a regression in swap_duplicate, then probably we should\nadd a hashlock for the swap_map entries alone (shorts being anatomic), so as\nto help the case of the single swap device too.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ceffc078528befc008c6f2c2c4decda79eabd534",
      "tree": "a289e10162bdef0c0d9f6533f1a647b0fe1ed7a9",
      "parents": [
        "420edbcc09008342c7b2665453f6b370739aadb0"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: fs/mm: execute in place\n\n- generic_file* file operations do no longer have a xip/non-xip split\n- filemap_xip.c implements a new set of fops that require get_xip_page\n  aop to work proper. all new fops are exported GPL-only (don\u0027t like to\n  see whatever code use those except GPL modules)\n- __xip_unmap now uses page_check_address, which is no longer static\n  in rmap.c, and defined in linux/rmap.h\n- mm/filemap.h is now much more clean, plainly having just Linus\u0027\n  inline funcs moved here from filemap.c\n- fix includes in filemap_xip to make it build cleanly on i386\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c475a8ab625d567eacf5e30ec35d6d8704558062",
      "tree": "0971bef7b876f1b3eb160621fc2b61cb5313827b",
      "parents": [
        "d296e9cd02c92e576ecce5344026a4df4353cdb2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jun 21 17:15:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:21 2005 -0700"
      },
      "message": "[PATCH] can_share_swap_page: use page_mapcount\n\nRemember that ironic get_user_pages race?  when the raised page_count on a\npage swapped out led do_wp_page to decide that it had to copy on write, so\nsubstituted a different page into userspace.  2.6.7 onwards have Andrea\u0027s\nsolution, where try_to_unmap_one backs out if it finds page_count raised.\n\nWhich works, but is unsatisfying (rmap.c has no other page_count heuristics),\nand was found a few months ago to hang an intensive page migration test.  A\nyear ago I was hesitant to engage page_mapcount, now it seems the right fix.\n\nSo remove the page_count hack from try_to_unmap_one; and use activate_page in\nunuse_mm when dropping lock, to replace its secondary effect of helping\nswapoff to make progress in that case.\n\nSimplify can_share_swap_page (now called only on anonymous pages) to check\npage_mapcount + page_swapcount \u003d\u003d 1: still needs the page lock to stabilize\ntheir (pessimistic) sum, but does not need swapper_space.tree_lock for that.\n\nIn do_swap_page, move swap_free and unlock_page below page_add_anon_rmap, to\nkeep sum on the high side, and correct when can_share_swap_page called.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cafdd8ba08935d9b161bb781851dc4c0e6f70427",
      "tree": "ee6a5305902cfd6abf818e398c538694db24dcb7",
      "parents": [
        "c33880aaddbbab1ccf36f4457ed1090621f2e39a"
      ],
      "author": {
        "name": "William Lee Irwin III",
        "email": "wli@holomorphy.com",
        "time": "Tue May 24 19:31:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue May 24 20:08:13 2005 -0700"
      },
      "message": "[PATCH] try_to_unmap_cluster() passes out-of-bounds pte to pte_unmap()\n\ntry_to_unmap_cluster() does:\n        for (pte \u003d pte_offset_map(pmd, address);\n                        address \u003c end; pte++, address +\u003d PAGE_SIZE) {\n\t\t...\n\t}\n\n\tpte_unmap(pte);\n\nIt may take a little staring to notice, but pte can actually fall off the\nend of the pte page in this iteration, which makes life difficult for\nkmap_atomic() and the users not expecting it to BUG().  Of course, we\u0027re\nsomewhat lucky in that arithmetic elsewhere in the function guarantees that\nat least one iteration is made, lest this force larger rearrangements to be\nmade.  This issue and patch also apply to non-mm mainline and with trivial\nadjustments, at least two related kernels.\n\nDiscovered during internal testing at Oracle.\n\nSigned-off-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "202d182a92c60416680e31baa697faa60b0882f5",
      "tree": "361fdd4f061791e980ef686c1a914a96e6711c8b",
      "parents": [
        "7a5febe9ffeecd1e78c5b505260ccc1ef18021b4"
      ],
      "author": {
        "name": "Bjorn Steinbrink",
        "email": "B.Steinbrink@gmx.de",
        "time": "Mon May 16 21:53:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue May 17 07:59:12 2005 -0700"
      },
      "message": "[PATCH] mm: fix rss counter being incremented when unmapping\n\nThis patch fixes a bug introduced by the \"mm counter operations through\nmacros\" patch, which replaced a decrement operation in with an increment\nmacro in try_to_unmap_one().\n\nSigned-off-by: Björn Steinbrink \u003cB.Steinbrink@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "81b4082dc7666e2bc5ec229d8e837f3bafb96883",
      "tree": "d37c73b9fa3d3d321d0997113c9170b52aeb10b6",
      "parents": [
        "119f657c72fc07d6fd28c61de59cfba1566970a9"
      ],
      "author": {
        "name": "Nikita Danilov",
        "email": "nikita@clusterfs.com",
        "time": "Sun May 01 08:58:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:36 2005 -0700"
      },
      "message": "[PATCH] mm: rmap.c cleanup\n\nmm/rmap.c:page_referenced_one() and mm/rmap.c:try_to_unmap_one() contain\nidentical code that\n\n - takes mm-\u003epage_table_lock;\n\n - drills through page tables;\n\n - checks that correct pte is reached.\n\nCoalesce this into page_check_address()\n\nSigned-off-by: Nikita Danilov \u003cnikita@clusterfs.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"
    }
  ]
}
