|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH xen 2/2] xen: update system time immediately when VCPUOP_register_vcpu_info
On 12.10.2021 18:15, Dongli Zhang wrote:
> Hi Jan,
>
> On 10/12/21 8:49 AM, Jan Beulich wrote:
>> On 12.10.2021 17:43, Dongli Zhang wrote:
>>> Hi Jan,
>>>
>>> On 10/12/21 1:40 AM, Jan Beulich wrote:
>>>> On 12.10.2021 09:24, Dongli Zhang wrote:
>>>>> The guest may access the pv vcpu_time_info immediately after
>>>>> VCPUOP_register_vcpu_info. This is to borrow the idea of
>>>>> VCPUOP_register_vcpu_time_memory_area, where the
>>>>> force_update_vcpu_system_time() is called immediately when the new memory
>>>>> area is registered.
>>>>>
>>>>> Otherwise, we may observe clock drift at the VM side if the VM accesses
>>>>> the clocksource immediately after VCPUOP_register_vcpu_info().
>>>>>
>>>>> Cc: Joe Jin <joe.jin@xxxxxxxxxx>
>>>>> Signed-off-by: Dongli Zhang <dongli.zhang@xxxxxxxxxx>
>>>>
>>>> While I agree with the change in principle, ...
>>>>
>>>>> --- a/xen/common/domain.c
>>>>> +++ b/xen/common/domain.c
>>>>> @@ -1695,6 +1695,8 @@ long do_vcpu_op(int cmd, unsigned int vcpuid,
>>>>> XEN_GUEST_HANDLE_PARAM(void) arg)
>>>>> rc = map_vcpu_info(v, info.mfn, info.offset);
>>>>> domain_unlock(d);
>>>>>
>>>>> + force_update_vcpu_system_time(v);
>>>>
>>>> ... I'm afraid you're breaking the Arm build here. Arm will first need
>>>> to gain this function.
>>>>
>>>
>>> Since I am not familiar with the Xen ARM, would you please let me your
>>> suggestion if I just leave ARM as TODO to the ARM developers to verify
>>> and implement force_update_vcpu_system_time()?
>>
>> I'd much prefer to avoid this. I don't think the function can be that
>> difficult to introduce. And I'm sure the Arm maintainers will apply
>> extra care during review if you point out that you weren't able to
>> actually test this.
>>
>
> I do not see pvclock used by arm/arm64 in linux kernel for xen.
>
> In addition, the implementation at xen hypervisor side is empty.
>
> 348 /* VCPU PV clock. */
> 349 void update_vcpu_system_time(struct vcpu *v)
> 350 {
> 351 /* XXX update shared_info->wc_* */
> 352 }
>
> I will add a wrapper for it.
>
> The bad thing is I see riscv is supported by xen and we may need to add the
> function for riscv as well.
There's not really any code for RISC-V yet, so that'll be of concern to
those who are working on adding actual code later on. I'm actually
wondering about the status of that effort - after the initial bits were
added over 3 months ago, no further activity has been visible.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |