On 22 April 2016 at 12:12, Christoffer Dall <christoffer.d...@linaro.org> wrote:
> For KVM to use Transparent Huge Pages (THP) we have to ensure that the
> alignment of the userspace address of the KVM memory slot and the IPA
> that the guest sees for a memory region have the same offset from the 2M
> huge page size boundary.
>
> One way to achieve this is to always align the IPA region at a 2M
> boundary and ensure that the mmap alignment is also at 2M.
>
> Unfortunately, we were only doing this for __arm__, not for __aarch64__,
> so add this simply condition.
>
> This fixes a performance regression using KVM/ARM on AArch64 platforms
> that showed a performance penalty of more than 50%, introduced by the
> following commit:
>
> 9fac18f (oslib: allocate PROT_NONE pages on top of RAM, 2015-09-10)
>
> We were only lucky before the above commit, because we were allocating
> large regions and naturally getting a 2M alignment on those allocations
> then.
>
> Reported-by: Shih-Wei Li <shih...@cs.columbia.edu>
> Signed-off-by: Christoffer Dall <christoffer.d...@linaro.org>
> ---
> The first version of this patch was accidentally made against the v2.5.0
> release instead of master, so this is a rebased version.
Thanks; applied to master (with the long line wrapped).

-- PMM

Reply via email to