)]}'
{
  "commit": "e009bb30c8df8a52a9622b616b67436b6a03a0cd",
  "tree": "af36a8ea7ff8acb0bcc22130b28c3dd38cfa35d0",
  "parents": [
    "c4088ebdca64c9a2e34a38177d2249805ede1f4b"
  ],
  "author": {
    "name": "Kirill A. Shutemov",
    "email": "kirill.shutemov@linux.intel.com",
    "time": "Thu Nov 14 14:31:07 2013 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Fri Nov 15 09:32:15 2013 +0900"
  },
  "message": "mm: implement split page table lock for PMD level\n\nThe basic idea is the same as with PTE level: the lock is embedded into\nstruct page of table\u0027s page.\n\nWe can\u0027t use mm-\u003epmd_huge_pte to store pgtables for THP, since we don\u0027t\ntake mm-\u003epage_table_lock anymore.  Let\u0027s reuse page-\u003elru of table\u0027s page\nfor that.\n\npgtable_pmd_page_ctor() returns true, if initialization is successful\nand false otherwise.  Current implementation never fails, but assumption\nthat constructor can fail will help to port it to -rt where spinlock_t\nis rather huge and cannot be embedded into struct page -- dynamic\nallocation is required.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nTested-by: Alex Thorlton \u003cathorlton@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"Eric W . Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Paul E . McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Robin Holt \u003crobinmholt@gmail.com\u003e\nCc: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "861cad53b74469407e7f0186f5c185a7550cba4a",
      "old_mode": 33188,
      "old_path": "include/linux/mm.h",
      "new_id": "255750d9b1be306254e5202dc8e2a5c46a276718",
      "new_mode": 33188,
      "new_path": "include/linux/mm.h"
    },
    {
      "type": "modify",
      "old_id": "566df579c51fe0cd78ac1fc3bd59e1c5c85984de",
      "old_mode": 33188,
      "old_path": "include/linux/mm_types.h",
      "new_id": "9342610999753685cc8636d3d24d3f8ae9054f3a",
      "new_mode": 33188,
      "new_path": "include/linux/mm_types.h"
    },
    {
      "type": "modify",
      "old_id": "e2520756e0054b4508665c59178f4a651277521b",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "728d5be9548ce61913c85e14303248363eae0a31",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    },
    {
      "type": "modify",
      "old_id": "c28d247e524abc9581001fd4c52295570a37d3c6",
      "old_mode": 33188,
      "old_path": "mm/Kconfig",
      "new_id": "7aa02def4666006f2da91adf5717dae7db8c3493",
      "new_mode": 33188,
      "new_path": "mm/Kconfig"
    }
  ]
}
