[PATCH v8 13/14] RISC-V: KVM: add support for FWFT SBI extension

Atish Patra atish.patra at linux.dev
Fri May 23 11:02:11 PDT 2025


On 5/23/25 9:27 AM, Radim KrÄmáŠwrote:
> 2025-05-23T17:29:49+02:00, Clément Léger <cleger at rivosinc.com>:
>> On 23/05/2025 15:05, Radim Krčmář wrote:
>>> 2025-05-23T12:19:30+02:00, Clément Léger <cleger at rivosinc.com>:
>>>> +++ b/arch/riscv/kvm/vcpu_sbi_fwft.c
>>>> +static const enum sbi_fwft_feature_t kvm_fwft_defined_features[] = {
>>>> +	SBI_FWFT_MISALIGNED_EXC_DELEG,
>>>> +	SBI_FWFT_LANDING_PAD,
>>>> +	SBI_FWFT_SHADOW_STACK,
>>>> +	SBI_FWFT_DOUBLE_TRAP,
>>>> +	SBI_FWFT_PTE_AD_HW_UPDATING,
>>>> +	SBI_FWFT_POINTER_MASKING_PMLEN,
>>>> +};
>>>
>>> How will userspace control which subset of these features is allowed in
>>> the guest?
>>>
>>> (We can reuse the KVM SBI extension interface if we don't want to add a
>>>   FWFT specific ONE_REG.)
>>
>> Hi Radim,
>>
>> I didn't looked at that part. But most likely using the kvm one reg
>> interface seems ok like what is done for STA ? We could have per feature
>> override with one reg per feature.
> 
> Sounds fine.
> 

Yeah. We can have a follow up series for SBI FWFT state that allows user 
space to toggle each state individually.

>> Is this something blocking though ? We'd like to merge FWFT once SBI 3.0
>> is ratified so that would be nice not delaying it too much. I'll take a
>> look at it to see if it isn't too long to implement.
> 
> Not blocking, but I would at least default FWFT to disabled, because
> current userspace cannot handle [14/14].  (Well... save/restore was
> probably broken even before, but let's try to not make it worse. :])
> 

User space can not enable or disable misaligned access delegation as 
there is no interface for now rightly pointed by you. I guess supporting 
that would be quicker than fixing the broader guest save/restore 
anyways. Isn't it ?

We can have the patches ready for the next MW for FWFT one reg interface.

> Thanks.
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv




More information about the kvm-riscv mailing list