[PATCH v4 00/21] KVM: arm64: Rewrite page-table code and fault handling
Gavin Shan
gshan at redhat.com
Thu Sep 10 00:11:01 EDT 2020
On 9/10/20 2:06 PM, Gavin Shan wrote:
> Hi Will and Marc,
>
> On 9/8/20 1:23 AM, Will Deacon wrote:
>> Hi all,
>>
>> Here's version four of the KVM page-table rework I previously posted here:
>>
>> v1: https://lore.kernel.org/r/20200730153406.25136-1-will@kernel.org
>> v2: https://lore.kernel.org/r/20200818132818.16065-1-will@kernel.org
>> v3: https://lore.kernel.org/r/20200825093953.26493-1-will@kernel.org
>>
>> Changes since v3 include:
>>
>> * Removed some more unused code from the old implementation
>> * Renumbered KVM_PGTABLE_PROT_* to match file permissions in hex dumps
>> * Simplified kvm_granule_shift() and removed kvm_start_level()
>> * Only clear valid bit when invalidating a PTE, leaving phys addr intact
>> * Fail gracefully when attempting to allocate without a memory cache
>> * Rewrote stage2_apply_range() as a function instead of a macro
>> * Fixed fault address rounding with hugetlbfs
>> * Fixed permission fault handling when dirty logging is enabled
>> * Added comments
>> * Added reviewer tags
>>
>> Many thanks to Alex and Gavin for their comments.
>>
>> Will
>>
>
> [...]
>
> Eventually, I'm lucky finding a machine from our pool where 16KB page
> size is supported. I tried this series (v4) on this machine, everything
> looks good as we expected:
>
> Host: 5.9.0-rc3 + patchset (v4)
> CONFIG_ARM64_VA_BITS=47
> CONFIG_ARM64_PAGE_SHIFT=14
> Hugepagesize: 32768 kB (from /proc/meminfo)
> Config: -HugeTLBfs/-THP
> +HugeTLBfs/-THP
> -HugeTLBfs/THP
> Guest: CONFIG_ARM64_PAGE_SHIFT=12/14/16
>
> Let me know in case there are more tests needed from my side.
>
Here is the CPU info retrieved from dmidecode:
Handle 0x0004, DMI type 4, 48 bytes
Processor Information
Socket Designation: CPU 1
Type: Central Processor
Family: ARMv8
Manufacturer: Ampere(TM)
ID: 02 00 3F 50 00 00 00 00
Signature: Implementor 0x50, Variant 0x3, Architecture 15, Part 0x000, Revision 2
Version: eMAG
Voltage: 0.9 V
External Clock: 3000 MHz
Max Speed: 3300 MHz
Current Speed: 3000 MHz
Status: Populated, Enabled
Upgrade: None
L1 Cache Handle: 0x0005
L2 Cache Handle: 0x0006
L3 Cache Handle: 0x0007
Serial Number: 000000000000000000D7080502F180DC
Asset Tag: Not Specified
Part Number: Not Specified
Core Count: 32
Core Enabled: 32
Thread Count: 32
Characteristics:
64-bit capable
Multi-Core
Hardware Thread
Execute Protection
Enhanced Virtualization
Thanks,
Gavin
More information about the linux-arm-kernel
mailing list