提交 68ce032a 编写于 作者: M miaoyubo 提交者: Yang Yingliang

KVM: Enable PUD huge mappings only on 1620

virt inclusion
category: bugfix
bugzilla: 47428
CVE: NA

Disable PUD_SIZE huge mapping on 161x serial boards and only
enable on 1620CS due to low performance on cache maintenance
and complex implementation for pre-setup stage2 page table with
PUD huge page. Which would even lead to hard lockup
Signed-off-by: NZenghui Yu <yuzenghui@huawei.com>
Signed-off-by: Nmiaoyubo <miaoyubo@huawei.com>
Reviewed-by: Nzhanghailiang <zhang.zhanghailiang@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 cf366fae
...@@ -1763,6 +1763,13 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, ...@@ -1763,6 +1763,13 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,
if (vma_pagesize == PMD_SIZE || if (vma_pagesize == PMD_SIZE ||
(vma_pagesize == PUD_SIZE && kvm_stage2_has_pmd(kvm))) (vma_pagesize == PUD_SIZE && kvm_stage2_has_pmd(kvm)))
gfn = (fault_ipa & huge_page_mask(hstate_vma(vma))) >> PAGE_SHIFT; gfn = (fault_ipa & huge_page_mask(hstate_vma(vma))) >> PAGE_SHIFT;
/* Only enable PUD_SIZE huge mapping on 1620 serial boards */
if (vma_pagesize == PUD_SIZE && !kvm_ncsnp_support) {
vma_pagesize = PMD_SIZE;
gfn = (fault_ipa & PMD_MASK) >> PAGE_SHIFT;
}
up_read(&current->mm->mmap_sem); up_read(&current->mm->mmap_sem);
/* We need minimum second+third level pages */ /* We need minimum second+third level pages */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册