[PATCH v5 11/12] KVM: selftests: arm64: Determine max ipa size per-page size

Ryan Roberts ryan.roberts at arm.com
Wed Nov 22 05:47:49 PST 2023


On 21/11/2023 23:34, Oliver Upton wrote:
> On Thu, Nov 16, 2023 at 02:29:30PM +0000, Ryan Roberts wrote:
> 
> [...]
> 
>> @@ -518,9 +530,14 @@ void aarch64_get_supported_page_sizes(uint32_t ipa,
>>  	err = ioctl(vcpu_fd, KVM_GET_ONE_REG, &reg);
>>  	TEST_ASSERT(err == 0, KVM_IOCTL_ERROR(KVM_GET_ONE_REG, vcpu_fd));
>>  
>> -	*ps4k = FIELD_GET(ARM64_FEATURE_MASK(ID_AA64MMFR0_EL1_TGRAN4), val) != 0xf;
>> -	*ps64k = FIELD_GET(ARM64_FEATURE_MASK(ID_AA64MMFR0_EL1_TGRAN64), val) == 0;
>> -	*ps16k = FIELD_GET(ARM64_FEATURE_MASK(ID_AA64MMFR0_EL1_TGRAN16), val) != 0;
>> +	gran = FIELD_GET(ARM64_FEATURE_MASK(ID_AA64MMFR0_EL1_TGRAN4), val);
>> +	*ipa4k = max_ipa_for_page_size(ipa, gran, 0xf, 1);
>> +
>> +	gran = FIELD_GET(ARM64_FEATURE_MASK(ID_AA64MMFR0_EL1_TGRAN64), val);
>> +	*ipa64k = max_ipa_for_page_size(ipa, gran, 0xf, 0);
>> +
>> +	gran = FIELD_GET(ARM64_FEATURE_MASK(ID_AA64MMFR0_EL1_TGRAN16), val);
>> +	*ipa16k = max_ipa_for_page_size(ipa, gran, 0, 2);
> 
> Oh, also: we have the generated system register definitions available in
> KVM selftests at this point. It'd be a good idea to move away from
> 'magic' values and use the enumerations instead.
> 

OK will do!



More information about the linux-arm-kernel mailing list