)]}'
{
  "commit": "6194ba6ff6ccf8d5c54c857600843c67aa82c407",
  "tree": "657dd9f452b252260fcf59959c0586920b8fe4c3",
  "parents": [
    "fd40d6e3188b12c59696d6cb4a6f26333814d66f"
  ],
  "author": {
    "name": "Jeremy Fitzhardinge",
    "email": "jeremy@goop.org",
    "time": "Wed Jan 30 13:34:11 2008 +0100"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Wed Jan 30 13:34:11 2008 +0100"
  },
  "message": "x86: don\u0027t special-case pmd allocations as much\n\nIn x86 PAE mode, stop treating pmds as a special case.  Previously\nthey were always allocated and freed with the pgd.  The modifies the\ncode to be the same as 64-bit mode, where they are allocated on\ndemand.\n\nThis is a step on the way to unifying 32/64-bit pagetable allocation\nas much as possible.\n\nThere is a complicating wart, however.  When you install a new\nreference to a pmd in the pgd, the processor isn\u0027t guaranteed to see\nit unless you reload cr3.  Since reloading cr3 also has the\nside-effect of flushing the tlb, this is an expense that we want to\navoid whereever possible.\n\nThis patch simply avoids reloading cr3 unless the update is to the\ncurrent pagetable.  Later patches will optimise this further.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "02d269c07b964ab6c38c183ae2e7d24785e7e82e",
      "old_mode": 33188,
      "old_path": "arch/x86/mm/init_32.c",
      "new_id": "da524fb22422eafc8b4d6514609aec749ffc2dc0",
      "new_mode": 33188,
      "new_path": "arch/x86/mm/init_32.c"
    },
    {
      "type": "modify",
      "old_id": "3a6c9200058d6dd962c0956792310041e9cab9eb",
      "old_mode": 33188,
      "old_path": "arch/x86/mm/pgtable_32.c",
      "new_id": "5ca3552474ae104ee35758c91028f2aab901955a",
      "new_mode": 33188,
      "new_path": "arch/x86/mm/pgtable_32.c"
    },
    {
      "type": "modify",
      "old_id": "3482c342789786d71683c9ebd2870441da705208",
      "old_mode": 33188,
      "old_path": "include/asm-x86/pgalloc_32.h",
      "new_id": "0caa37a9a25ffe94a5f96cff26a7f75fb93b4aff",
      "new_mode": 33188,
      "new_path": "include/asm-x86/pgalloc_32.h"
    },
    {
      "type": "modify",
      "old_id": "62a1ffbc8784ce06d1e68edc631a1ee6a0c76f45",
      "old_mode": 33188,
      "old_path": "include/asm-x86/pgtable-3level.h",
      "new_id": "ed4c6f0e57ec28464b018f6a61e4fed80a6257dc",
      "new_mode": 33188,
      "new_path": "include/asm-x86/pgtable-3level.h"
    },
    {
      "type": "modify",
      "old_id": "ca7b150ca8b7006a39c5843f6127dbe50955639f",
      "old_mode": 33188,
      "old_path": "include/asm-x86/pgtable_32.h",
      "new_id": "7b61cb5989b0a0a43231fc19ff5ef2f3c236d31e",
      "new_mode": 33188,
      "new_path": "include/asm-x86/pgtable_32.h"
    }
  ]
}
