)]}'
{
  "log": [
    {
      "commit": "6aab341e0a28aff100a09831c5300a2994b8b986",
      "tree": "1af3908275aa5e1b16e80efee554a9a7504c56d4",
      "parents": [
        "458af5439fe7ae7d95ca14106844e61f0795166c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:34:23 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:34:23 2005 -0800"
      },
      "message": "mm: re-architect the VM_UNPAGED logic\n\nThis replaces the (in my opinion horrible) VM_UNMAPPED logic with very\nexplicit support for a \"remapped page range\" aka VM_PFNMAP.  It allows a\nVM area to contain an arbitrary range of page table entries that the VM\nnever touches, and never considers to be normal pages.\n\nAny user of \"remap_pfn_range()\" automatically gets this new\nfunctionality, and doesn\u0027t even have to mark the pages reserved or\nindeed mark them any other way.  It just works.  As a side effect, doing\nmmap() on /dev/mem works for arbitrary ranges.\n\nSparc update from David in the next commit.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0b14c179a483e71ea41df2aa4a661760063115bd",
      "tree": "075fc303a3d2fd33f66c0af8f64064cff2b72b79",
      "parents": [
        "664beed0190fae687ac51295694004902ddeb18e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:15 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:42 2005 -0800"
      },
      "message": "[PATCH] unpaged: VM_UNPAGED\n\nAlthough we tend to associate VM_RESERVED with remap_pfn_range, quite a few\ndrivers set VM_RESERVED on areas which are then populated by nopage.  The\nPageReserved removal in 2.6.15-rc1 changed VM_RESERVED not to free pages in\nzap_pte_range, without changing those drivers not to set it: so their pages\njust leak away.\n\nLet\u0027s not change miscellaneous drivers now: introduce VM_UNPAGED at the core,\nto flag the special areas where the ptes may have no struct page, or if they\nhave then it\u0027s not to be touched.  Replace most instances of VM_RESERVED in\ncore mm by VM_UNPAGED.  Force it on in remap_pfn_range, and the sparc and\nsparc64 io_remap_pfn_range.\n\nRevert addition of VM_RESERVED to powerpc vdso, it\u0027s not needed there.  Is it\nneeded anywhere?  It still governs the mm-\u003ereserved_vm statistic, and special\nvmas not to be merged, and areas not to be core dumped; but could probably be\neliminated later (the drivers are probably specifying it because in 2.4 it\nkept swapout off the vma, but in 2.6 we work from the LRU, which these pages\ndon\u0027t get on).\n\nUse the VM_SHM slot for VM_UNPAGED, and define VM_SHM to 0: it serves no\npurpose whatsoever, and should be removed from drivers when we clean up.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-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": "705e87c0c3c38424f7f30556c85bc20e808d2f59",
      "tree": "7a237e6266f4801385e1226cc497b47e3a2458bd",
      "parents": [
        "8f4e2101fd7df9031a754eedb82e2060b51f8c45"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: pte_offset_map_lock loops\n\nConvert those common loops using page_table_lock on the outside and\npte_offset_map within to use just pte_offset_map_lock within instead.\n\nThese all hold mmap_sem (some exclusively, some not), so at no level can a\npage table be whipped away from beneath them.  But whereas pte_alloc loops\ntested with the \"atomic\" pmd_present, these loops are testing with pmd_none,\nwhich on i386 PAE tests both lower and upper halves.\n\nThat\u0027s now unsafe, so add a cast into pmd_none to test only the vital lower\nhalf: we lose a little sensitivity to a corrupt middle directory, but not\nenough to worry about.  It appears that i386 and UML were the only\narchitectures vulnerable in this way, and pgd and pud no problem.\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": "b5810039a54e5babf428e9a1e89fc1940fabff11",
      "tree": "835836cb527ec9bd525f93eb7e016f3dfb8c8ae2",
      "parents": [
        "f9c98d0287de42221c624482fd4f8d485c98ab22"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Oct 29 18:16:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] core remove PageReserved\n\nRemove PageReserved() calls from core code by tightening VM_RESERVED\nhandling in mm/ to cover PageReserved functionality.\n\nPageReserved special casing is removed from get_page and put_page.\n\nAll setting and clearing of PageReserved is retained, and it is now flagged\nin the page_alloc checks to help ensure we don\u0027t introduce any refcount\nbased freeing of Reserved pages.\n\nMAP_PRIVATE, PROT_WRITE of VM_RESERVED regions is tentatively being\ndeprecated.  We never completely handled it correctly anyway, and is be\nreintroduced in future if required (Hugh has a proof of concept).\n\nOnce PageReserved() calls are removed from kernel/power/swsusp.c, and all\narch/ and driver code, the Set and Clear calls, and the PG_reserved bit can\nbe trivially removed.\n\nLast real user of PageReserved is swsusp, which uses PageReserved to\ndetermine whether a struct page points to valid memory or not.  This still\nneeds to be addressed (a generic page_is_ram() should work).\n\nA last caveat: the ZERO_PAGE is now refcounted and managed with rmap (and\nthus mapcounted and count towards shared rss).  These writes to the struct\npage could cause excessive cacheline bouncing on big systems.  There are a\nnumber of ways this could be addressed if it is an issue.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n\nRefcount bug fix for filemap_xip.c\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": "0c942a4539c09adf09097315cc174aefd0eeedf7",
      "tree": "b9b7d5093ca0a130ef2221f8932fabcf4291f6a6",
      "parents": [
        "e040f218bb49a6965a5b77edce05fe47a62dda39"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:36 2005 -0700"
      },
      "message": "[PATCH] mm: msync_pte_range progress\n\nUse latency breaking in msync_pte_range like that in copy_pte_range, instead\nof the ugly CONFIG_PREEMPT filemap_msync alternatives.\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": "b57b98d147ef98758886a39efb94f3254542c39b",
      "tree": "1aab53a2bb1add92d55fbce963e371527c05d281",
      "parents": [
        "662f3a0b94cc92bd708c27b80f8207cd7db93204"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sat Oct 29 18:15:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:36 2005 -0700"
      },
      "message": "[PATCH] mm/msync.c cleanup\n\nThis is not problem actually, but sync_page_range() is using for exported\nfunction to filesystems.\n\nThe msync_xxx is more readable at least to me.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nAcked-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": "b4955ce3dd0818b56da532a16c9a4a3804a558ee",
      "tree": "6e01667181bfc495b56e39748783ad2235a4f56e",
      "parents": [
        "c475a8ab625d567eacf5e30ec35d6d8704558062"
      ],
      "author": {
        "name": "Abhijit Karmarkar",
        "email": "abhijitk@veritas.com",
        "time": "Tue Jun 21 17:15:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:21 2005 -0700"
      },
      "message": "[PATCH] msync: check pte dirty earlier\n\nIt\u0027s common practice to msync a large address range regularly, in which\noften only a few ptes have actually been dirtied since the previous pass.\n\nsync_pte_range then goes much faster if it tests whether pte is dirty\nbefore locating and accessing each struct page cacheline; and it is hardly\nslowed by ptep_clear_flush_dirty repeating that test in the opposite case,\nwhen every pte actually is dirty.\n\nBut beware, s390\u0027s pte_dirty always says false, since its dirty bit is kept\nin the storage key, located via the struct page address.  So skip this\noptimization in its case: use a pte_maybe_dirty macro which just says true\nif page_test_and_clear_dirty is implemented.\n\nSigned-off-by: Abhijit Karmarkar \u003cabhijitk@veritas.com\u003e\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": "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"
    }
  ]
}
