[PATCH] kvmtool: arm64: Report missing support for 32bit guests
Suzuki K Poulose
suzuki.poulose at arm.com
Thu Jul 2 11:37:08 EDT 2020
Hi Marc
On 07/01/2020 04:42 PM, Marc Zyngier wrote:
> On 2020-07-01 15:20, Suzuki K Poulose wrote:
>> When the host doesn't support 32bit guests, the kvmtool fails
>> without a proper message on what is wrong. i.e,
>>
>> $ lkvm run -c 1 Image --aarch32
>> # lkvm run -k Image -m 256 -c 1 --name guest-105618
>> Fatal: Unable to initialise vcpu
>>
>> Given that there is no other easy way to check if the host supports 32bit
>> guests, it is always good to report this by checking the capability,
>> rather
>> than leaving the users to hunt this down by looking at the code!
>>
>> After this patch:
>>
>> $ lkvm run -c 1 Image --aarch32
>> # lkvm run -k Image -m 256 -c 1 --name guest-105695
>> Fatal: 32bit guests are not supported
>
> Fancy!
>
>>
>> Cc: Will Deacon <will at kernel.org>
>> Reported-by: Sami Mujawar <sami.mujawar at arm.com>
>> Signed-off-by: Suzuki K Poulose <suzuki.poulose at arm.com>
>> ---
>> arm/kvm-cpu.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/arm/kvm-cpu.c b/arm/kvm-cpu.c
>> index 554414f..2acecae 100644
>> --- a/arm/kvm-cpu.c
>> +++ b/arm/kvm-cpu.c
>> @@ -46,6 +46,10 @@ struct kvm_cpu *kvm_cpu__arch_init(struct kvm *kvm,
>> unsigned long cpu_id)
>> .features = ARM_VCPU_FEATURE_FLAGS(kvm, cpu_id)
>> };
>>
>> + if (kvm->cfg.arch.aarch32_guest &&
>> + !kvm__supports_extension(kvm, KVM_CAP_ARM_EL1_32BIT))
>
> Can you please check that this still compiles for 32bit host?
Yes, it does. I have built this on an arm32 rootfs with make ARCH=arm.
The kvm->cfg.arch is common across arm/arm64 and is defined here :
arm/include/arm-common/kvm-config-arch.h
And the aarch32 command line option is only available on aarch64 host.
So this is safe on an arm32 host.
>
>> + die("32bit guests are not supported\n");
>> +
>> vcpu = calloc(1, sizeof(struct kvm_cpu));
>> if (!vcpu)
>> return NULL;
>
> With the above detail checked,
>
> Acked-by: Marc Zyngier <maz at kernel.org>
Thanks
Suzuki
More information about the linux-arm-kernel
mailing list