]> git.baikalelectronics.ru Git - kernel.git/commit
kvm: arm/arm64: Rework gpa callback handlers
authorSuzuki K Poulose <suzuki.poulose@arm.com>
Mon, 20 Mar 2017 18:26:42 +0000 (18:26 +0000)
committerChristoffer Dall <cdall@linaro.org>
Sun, 9 Apr 2017 14:42:50 +0000 (07:42 -0700)
commit6f4cae3cb17025e3ec6498cb3bed4c5dba2e0de7
treed40ff6eb1d75557c9b1b970766bfe1017f2c4460
parent972bf42af2e0540797254b6ac6cecd7495749afd
kvm: arm/arm64: Rework gpa callback handlers

In order to perform an operation on a gpa range, we currently iterate
over each page in a user memory slot for the given range. This is
inefficient while dealing with a big range (e.g, a VMA), especially
while unmaping a range. At present, with stage2 unmap on a range with
a hugepage backed region, we clear the PMD when we unmap the first
page in the loop. The remaining iterations simply traverse the page table
down to the PMD level only to see that nothing is in there.

This patch reworks the code to invoke the callback handlers on the
biggest range possible within the memory slot to to reduce the number of
times the handler is called.

Cc: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-by: Christoffer Dall <cdall@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Christoffer Dall <cdall@linaro.org>
arch/arm/kvm/mmu.c