|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 02/10] xen/arm: add sve_vl_bits field to domain
On 15.03.2023 11:09, Luca Fancellu wrote:
>> On 15 Mar 2023, at 09:27, Jan Beulich <jbeulich@xxxxxxxx> wrote:
>> On 15.03.2023 10:05, Luca Fancellu wrote:
>>> --- a/xen/include/public/arch-arm.h
>>> +++ b/xen/include/public/arch-arm.h
>>> @@ -304,6 +304,9 @@ struct xen_arch_domainconfig {
>>> uint16_t tee_type;
>>> /* IN */
>>> uint32_t nr_spis;
>>> + /* IN */
>>> + uint16_t sve_vl_bits;
>>> + uint16_t _pad1;
>>
>> Can register sizes be a non-power-of-2 in size?
>From logic in later patches I infer the answer is "yes" here.
>> If not, by representing
>> the value here as log2(bits) the existing 8-bit padding field could be
>> used instead. Sadly, because of it not having been checked to be zero,
>> that wouldn't avoid ...
>>
>>> --- a/xen/include/public/domctl.h
>>> +++ b/xen/include/public/domctl.h
>>> @@ -21,7 +21,7 @@
>>> #include "hvm/save.h"
>>> #include "memory.h"
>>>
>>> -#define XEN_DOMCTL_INTERFACE_VERSION 0x00000015
>>> +#define XEN_DOMCTL_INTERFACE_VERSION 0x00000016
>>
>> ... the need for the bump here. Yet you want to avoid repeating that
>> mistake and hence check that the new padding field you introduce (if
>> the value needs to remain 16 bits wide) is zero on input.
>
> Hi Jan,
>
> Thank you for your suggestion, just to be sure we are on the same page:
>
> I can store the vector length as VL/128, doing that I can use just 8 bits, so
> I can do this:
>
> struct xen_arch_domainconfig {
> /* IN/OUT */
> uint8_t gic_version;
> /* IN */
> uint16_t tee_type;
> /* IN */
> uint8_t sve_vl_bits_enc;
> /* IN */
> uint32_t nr_spis;
> [...]
>
> To take advantage of the existing not explicit padding.
>
> Is that what you meant?
Almost:
struct xen_arch_domainconfig {
/* IN/OUT */
uint8_t gic_version;
/* IN */
uint8_t sve_vl_bits_enc;
/* IN */
uint16_t tee_type;
/* IN */
uint32_t nr_spis;
[...]
I'm inclined to suggest to name the new field "sve_vl" only, with the
comment extended to clarify in what units the value is.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |