On 23.12.2019 18:33, Julien Grall wrote:
> Hi Jan,
> 
> On 20/12/2019 14:55, Jan Beulich wrote:
>> There's been effectively no use of the field for HVM.
>>
>> Also shrink the field to unsigned int, even if this doesn't immediately
>> yield any space benefit for the structure itself. The resulting 32-bit
>> padding slot can eventually be used for some other field. The change in
>> size makes accesses slightly more efficient though, as no REX.W prefix
>> is going to be needed anymore on the respective insns.
>>
>> Mirror the HVM side change here (dropping of setting the field to
>> VGCF_online) also to Arm, on the assumption that it was cloned like
>> this originally. VGCF_online really should simply and consistently be
>> the guest view of the inverse of VPF_down, and hence needs representing
>> only in the get/set vCPU context interfaces.
> 
> But vPSCI is just a wrapper to get/set vCPU context interfaces. Your 
> changes below will clearly break bring-up of secondary vCPUs on Arm.
> 
> This is because arch_set_guest_info() will rely on this flag to 
> clear/set VPF_down in the pause flags.
> 
> So I think the line in arm/vpsci.c should be left alone.

Oh, I see - I didn't notice this (ab)use despite ...

>> --- a/xen/arch/arm/vpsci.c
>> +++ b/xen/arch/arm/vpsci.c
>> @@ -78,7 +78,6 @@ static int do_common_cpu_on(register_t t
>>           ctxt->user_regs.x0 = context_id;
>>       }
>>   #endif
>> -    ctxt->flags = VGCF_online; >
>>       domain_lock(d);
>>       rc = arch_set_info_guest(v, ctxt);

... it actually being in context. Thanks for noticing.

Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to