)]}'
{
  "commit": "0d805ee70a69eabd38160dc199e183ac2f13fe4b",
  "tree": "51651296daca344832f29aeaf4c4448d0cb486b5",
  "parents": [
    "8c28ef3f1c1c57b6f468343d5959e5125b30334d"
  ],
  "author": {
    "name": "Zhenzhong Duan",
    "email": "zhenzhong.duan@oracle.com",
    "time": "Wed Sep 27 02:41:25 2017 -0700"
  },
  "committer": {
    "name": "Boris Ostrovsky",
    "email": "boris.ostrovsky@oracle.com",
    "time": "Thu Sep 28 08:26:30 2017 -0400"
  },
  "message": "xen/mmu: Call xen_cleanhighmap() with 4MB aligned for page tables mapping\n\nWhen bootup a PVM guest with large memory(Ex.240GB), XEN provided initial\nmapping overlaps with kernel module virtual space. When mapping in this space\nis cleared by xen_cleanhighmap(), in certain case there could be an 2MB mapping\nleft. This is due to XEN initialize 4MB aligned mapping but xen_cleanhighmap()\nfinish at 2MB boundary.\n\nWhen module loading is just on top of the 2MB space, got below warning:\n\nWARNING: at mm/vmalloc.c:106 vmap_pte_range+0x14e/0x190()\nCall Trace:\n [\u003cffffffff81117083\u003e] warn_alloc_failed+0xf3/0x160\n [\u003cffffffff81146022\u003e] __vmalloc_area_node+0x182/0x1c0\n [\u003cffffffff810ac91e\u003e] ? module_alloc_update_bounds+0x1e/0x80\n [\u003cffffffff81145df7\u003e] __vmalloc_node_range+0xa7/0x110\n [\u003cffffffff810ac91e\u003e] ? module_alloc_update_bounds+0x1e/0x80\n [\u003cffffffff8103ca54\u003e] module_alloc+0x64/0x70\n [\u003cffffffff810ac91e\u003e] ? module_alloc_update_bounds+0x1e/0x80\n [\u003cffffffff810ac91e\u003e] module_alloc_update_bounds+0x1e/0x80\n [\u003cffffffff810ac9a7\u003e] move_module+0x27/0x150\n [\u003cffffffff810aefa0\u003e] layout_and_allocate+0x120/0x1b0\n [\u003cffffffff810af0a8\u003e] load_module+0x78/0x640\n [\u003cffffffff811ff90b\u003e] ? security_file_permission+0x8b/0x90\n [\u003cffffffff810af6d2\u003e] sys_init_module+0x62/0x1e0\n [\u003cffffffff815154c2\u003e] system_call_fastpath+0x16/0x1b\n\nThen the mapping of 2MB is cleared, finally oops when the page in that space is\naccessed.\n\nBUG: unable to handle kernel paging request at ffff880022600000\nIP: [\u003cffffffff81260877\u003e] clear_page_c_e+0x7/0x10\nPGD 1788067 PUD 178c067 PMD 22434067 PTE 0\nOops: 0002 [#1] SMP\nCall Trace:\n [\u003cffffffff81116ef7\u003e] ? prep_new_page+0x127/0x1c0\n [\u003cffffffff81117d42\u003e] get_page_from_freelist+0x1e2/0x550\n [\u003cffffffff81133010\u003e] ? ii_iovec_copy_to_user+0x90/0x140\n [\u003cffffffff81119c9d\u003e] __alloc_pages_nodemask+0x12d/0x230\n [\u003cffffffff81155516\u003e] alloc_pages_vma+0xc6/0x1a0\n [\u003cffffffff81006ffd\u003e] ? pte_mfn_to_pfn+0x7d/0x100\n [\u003cffffffff81134cfb\u003e] do_anonymous_page+0x16b/0x350\n [\u003cffffffff81139c34\u003e] handle_pte_fault+0x1e4/0x200\n [\u003cffffffff8100712e\u003e] ? xen_pmd_val+0xe/0x10\n [\u003cffffffff810052c9\u003e] ? __raw_callee_save_xen_pmd_val+0x11/0x1e\n [\u003cffffffff81139dab\u003e] handle_mm_fault+0x15b/0x270\n [\u003cffffffff81510c10\u003e] do_page_fault+0x140/0x470\n [\u003cffffffff8150d7d5\u003e] page_fault+0x25/0x30\n\nCall xen_cleanhighmap() with 4MB aligned for page tables mapping to fix it.\nThe unnecessory call of xen_cleanhighmap() in DEBUG mode is also removed.\n\n-v2: add comment about XEN alignment from Juergen.\n\nReferences: https://lists.xen.org/archives/html/xen-devel/2012-07/msg01562.html\nSigned-off-by: Zhenzhong Duan \u003czhenzhong.duan@oracle.com\u003e\nReviewed-by: Juergen Gross \u003cjgross@suse.com\u003e\n\n[boris: added \u0027xen/mmu\u0027 tag to commit subject]\nSigned-off-by: Boris Ostrovsky \u003cboris.ostrovsky@oracle.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "509f560bd0c6d4731cac96fc64296184e6818b9c",
      "old_mode": 33188,
      "old_path": "arch/x86/xen/mmu_pv.c",
      "new_id": "58b09fcadbaa9f9d963455716c42da234deccf24",
      "new_mode": 33188,
      "new_path": "arch/x86/xen/mmu_pv.c"
    }
  ]
}
