|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v5 07/12] xen: enable Dom0 to use SVE feature
On 18.04.2023 14:47, Bertrand Marquis wrote:
>> On 12 Apr 2023, at 11:49, Luca Fancellu <Luca.Fancellu@xxxxxxx> wrote:
>> @@ -118,3 +121,21 @@ void sve_restore_state(struct vcpu *v)
>>
>> sve_load_ctx(sve_ctx_zreg_end, v->arch.vfp.fpregs, 1);
>> }
>> +
>> +int __init sve_sanitize_vl_param(int val, unsigned int *out)
>> +{
>> + /*
>> + * Negative SVE parameter value means to use the maximum supported
>> + * vector length, otherwise if a positive value is provided, check if
>> the
>> + * vector length is a multiple of 128 and not bigger than the maximum
>> value
>> + * 2048
>> + */
>> + if ( val < 0 )
>> + *out = get_sys_vl_len();
>> + else if ( ((val % SVE_VL_MULTIPLE_VAL) == 0) && (val <=
>> SVE_VL_MAX_BITS) )
>> + *out = val;
>
> Shouldn't you also check if it is not greater than the maximum vector length ?
Perhaps not "also" but "instead", because the supported length shouldn't be
larger than SVE_VL_MAX_BITS (or if there was a risk that it might be, that
should be taken care of elsewhere, e.g. in get_sys_vl_len(), not here).
>> @@ -61,6 +62,21 @@ custom_param("dom0_mem", parse_dom0_mem);
>>
>> int __init parse_arch_dom0_param(const char *s, const char *e)
>> {
>> + long long val;
>> +
>> + if ( !parse_signed_integer("sve", s, e, &val) )
>> + {
>> +#ifdef CONFIG_ARM64_SVE
>> + if ( (val >= INT_MIN) && (val <= INT_MAX) )
>> + opt_dom0_sve = val;
>> + else
>> + printk(XENLOG_INFO "'sve=%lld' value out of range!\n", val);
>> +#else
>> + no_config_param("ARM64_SVE", "sve", s, e);
>> +#endif
>
> Correct me if my understanding is wrong but here you just ignore the sve
> parameter if SVE is not supported by Xen ?
>
> I am a bit wondering if we should not just refuse it here as the user might
> wrongly think that his parameter had some effect.
>
> Or is it a usual way to handle this case ?
It is, or else we'd need to alter what no_config_param() does. Plus ignoring
the argument when !ARM64_SVE is no different from passing the same argument
to an older Xen version, or from passing any unknown one.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |