[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


  • To: Dongli Zhang <dongli.zhang@xxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Tue, 12 Oct 2021 17:49:18 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=A8WZ82IlWMAXJKyhCrciJUxbLB/jlI/lyslnFBdBxA4=; b=fpe3joyn/3l2+Qh4HLGLRvNUdxWU97Ln9jsPteEFJmZI0PJH0bD7095oC8rHaVrbwYaugr32wbdAAgt5n17uoy1wnPKNn+4TsOMTcfy4jmMTQxmUA8pnwNtNmNNaG4S8Mf8ixXzNosasmktfHqrvOTb1QelQ4th5t04cuH08W0nuxc3lX3VudglMBKKAN0AjRESwOEStj5hK/HPdn/0xQpkeWKTJIDnBakzWDtc7TwZBiE2ds99ZThqpntV0oFfBxm/DlL6Kt8q1XIAHytsHJlXoezuTtZL7I2c0TdGpSSqqkIqSVS8Y7j1ZGJqOjSrcJxnvdf1eP7lGYX0O0KCdww==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FBES8Y8yt+IBwJ9GFVX5FvQxDE18yQIVLSyD5I75r3OER90Zz/wIOj09uED4Ud5snU855zdErpWjNcJfmZUAFf6fz63dZFuJ5WDZWavsGWhXSukXbya/jSf9vC/5uy8V88fotqkJtXQ92tinRkYmsSh63ysO3oMbUReW4sxQAWuPUsojsQQ+r7EWBSmO8doxCL0+c9qC8t0wMHnqPLPT10oC7SIjMEyN0Z2wYLQqI1dDIRrVggvO4sKtrUc0JUzRMyjm4lW6SewJ5Oa3FyyaoxKvD/CnNElnEex2qAejIu4KD2Z5vJ+fe/D2n7P+vx5ALHq3aFkMV+CPlnp+N6DGlg==
  • Authentication-results: lists.xenproject.org; dkim=none (message not signed) header.d=none;lists.xenproject.org; dmarc=none action=none header.from=suse.com;
  • Cc: sstabellini@xxxxxxxxxx, andrew.cooper3@xxxxxxxxxx, george.dunlap@xxxxxxxxxx, iwj@xxxxxxxxxxxxxx, julien@xxxxxxx, wl@xxxxxxx, joe.jin@xxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Tue, 12 Oct 2021 15:49:31 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

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.

Jan

> I have tested that the below can build with arm64/aarch64.
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 40d67ec342..644c65ecd3 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1695,6 +1695,13 @@ 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);
> 
> +#ifdef CONFIG_X86
> +        /*
> +         * TODO: ARM does not have force_update_vcpu_system_time().
> +         */
> +        force_update_vcpu_system_time(v);
> +#endif
> +
>          break;
>      }
> 
> 
> 
> Thank you very much!
> 
> Dongli Zhang
> 




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.