Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1374297
| From | Christoffer Dall <christoffer.dall@linaro.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 00/17] kvm-arm: Add stage2 page table walker |
| Date | 2016-04-08 17:20 +0200 |
| Message-ID | <rlGmu-5Qa-7@gated-at.bofh.it> (permalink) |
| References | <rkfy2-5Pj-9@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Hi Suzuki, On Mon, Apr 04, 2016 at 05:26:00PM +0100, Suzuki K Poulose wrote: > This series adds support for stage2 page table helpers and makes > the core kvm-arm MMU code make use of it. At the moment we assume > that the host/hyp and the stage2 page tables have same number of > levels and hence use the host level accessors (except for some > hooks, e.g kvm_p.d_addr_end) and shares the routines for unmapping > the page table ranges. > > On arm32, the only change w.r.t the page tables is dealing > with > 32bit physical addresses. > > However on arm64, the hardware supports concatenation of tables (upto 16) > at the entry level, which could affect : > 1) number of entries in the PGD table (upto 16 * PTRS_PER_PTE) > 2) number of page table levels (reduced number of page table levels). > > Also depending on the VA_BITS for the host kernel, the number of page table > levels for both host and stage2(40bit IPA) could differ. At present, we insert > (upto) one fake software page table(as the hardware is not aware of it and is > only used by the OS to walk the table) level to bring the number of levels to > that of the host/hyp table. However, with 16K + 48bit, and 40bit IPA, we could > end up in 2 fake levels, which complicates the code. > > This series introduces explicit stage2 page table helpers and also defines > separate set of routines for unmapping hyp and stage2 tables. > > On arm64 stage2 page table helpers are defined based on the number of levels > required to map the IPA bits. See patch 15 for more details. > > Tested on TC2 (arm32), Fast models(with VHE) and real hardwares. > This looks pretty good overall. Could you rebase it on kvmarm/master where Marc addressed the 36 bits PA size of the foundation model and have a look at the interactions there? If we can solve that bit and address the cosmetic issues I had in this series, then I think we can queue this real soon. Thanks a lot for going the extra mile on this with rewriting the whole KVM page table handling! Best, -Christoffer
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
[PATCH 00/17] kvm-arm: Add stage2 page table walker Suzuki K Poulose <suzuki.poulose@arm.com> - 2016-04-04 18:30 +0200
[PATCH 13/17] kvm-arm: Add stage2 page table modifiers Suzuki K Poulose <suzuki.poulose@arm.com> - 2016-04-04 18:30 +0200
Re: [PATCH 13/17] kvm-arm: Add stage2 page table modifiers Christoffer Dall <christoffer.dall@linaro.org> - 2016-04-08 15:50 +0200
Re: [PATCH 13/17] kvm-arm: Add stage2 page table modifiers Suzuki K Poulose <Suzuki.Poulose@arm.com> - 2016-04-08 17:40 +0200
Re: [PATCH 13/17] kvm-arm: Add stage2 page table modifiers Suzuki K Poulose <Suzuki.Poulose@arm.com> - 2016-04-08 19:10 +0200
Re: [PATCH 13/17] kvm-arm: Add stage2 page table modifiers Christoffer Dall <christoffer.dall@linaro.org> - 2016-04-08 19:30 +0200
Re: [PATCH 13/17] kvm-arm: Add stage2 page table modifiers Christoffer Dall <christoffer.dall@linaro.org> - 2016-04-08 19:10 +0200
[PATCH 03/17] kvm arm: Move fake PGD handling to arch specific files Suzuki K Poulose <suzuki.poulose@arm.com> - 2016-04-04 18:40 +0200
[PATCH 01/17] arm64: Reuse TCR field definitions for EL1 and EL2 Suzuki K Poulose <suzuki.poulose@arm.com> - 2016-04-04 18:40 +0200
Re: [PATCH 01/17] arm64: Reuse TCR field definitions for EL1 and EL2 Christoffer Dall <christoffer.dall@linaro.org> - 2016-04-08 14:50 +0200
[PATCH 08/17] kvm-arm: arm: Introduce hyp page table empty checks Suzuki K Poulose <suzuki.poulose@arm.com> - 2016-04-04 18:40 +0200
Re: [PATCH 08/17] kvm-arm: arm: Introduce hyp page table empty checks Christoffer Dall <christoffer.dall@linaro.org> - 2016-04-08 15:20 +0200
[PATCH 05/17] kvm-arm: Replace kvm_pmd_huge with pmd_thp_or_huge Suzuki K Poulose <suzuki.poulose@arm.com> - 2016-04-04 18:40 +0200
Re: [PATCH 05/17] kvm-arm: Replace kvm_pmd_huge with pmd_thp_or_huge Christoffer Dall <christoffer.dall@linaro.org> - 2016-04-08 14:50 +0200
[PATCH 06/17] kvm-arm: Remove kvm_pud_huge() Suzuki K Poulose <suzuki.poulose@arm.com> - 2016-04-04 18:40 +0200
Re: [PATCH 06/17] kvm-arm: Remove kvm_pud_huge() Christoffer Dall <christoffer.dall@linaro.org> - 2016-04-08 14:50 +0200
Re: [PATCH 00/17] kvm-arm: Add stage2 page table walker Christoffer Dall <christoffer.dall@linaro.org> - 2016-04-08 17:20 +0200
csiph-web