[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: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Dongli Zhang <dongli.zhang@xxxxxxxxxx>
  • Date: Tue, 12 Oct 2021 09:15:04 -0700
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.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=KRmP6MHFP6gso1JruxBlXhR8OhZX1XZEgiFtRP6a3ps=; b=Sbq6esfJtlH271zy5k6wQeTBVn/v6yD3qYUW1Ljb3wKXmLvCDcojC6kZZhlc54gOlMZD9D9xPcsnrd83ghT4bw9XWiTx2bNP5UbDF22HYXVotUbamQXMIykkO4x7f/ZBmcl6eRY9nuUG+V50vur6b9jfeIcmi6f61MJstcz9FcLWe29kcBgBXpgqjGVCuscpSxNH39PiYE7YzgRH1u4rV9BwXkbXhQ7oTs5EAbSxxmL5+HY71srIDtso1Rsuvp7vNV9LO1GIpEuYX1t1HJxLAeIJLC4M1w0trEZelp7vNgHcwOcV9BKEWUCrl9Di/tJaKOD5/xjnvLZAMVxPOiyM+g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mB0NkFpTbufLWKDaqEHweE4YfpwGzy9CbegfuFswOVkO4q9U2u4dbEiVzTtmCxC2Vu7ymUE4Y7BOM+zLpzkAemYuLa3auVI15orqNTFU5Y4i6WAiBU8drxJPU+lLEmt2B3xFa80yf4XEoLHk69qpb0j6Lcc7E9G2OmY1pX53dythr2rsXc5R+ej00Fyt5enQCbnDkhhB7mk8IfJo0lxu/tP5vX4kQb8kV4m6iaBUUzejJaghLTKzNF+XnVxiUYGDup85JkuQUt7YV0/a/8MDRdaMHzvGHwSl2stbkdk2llwODmYZ6uLTc7fAe/5X5tOewvzB75skk5Op0lvNkOb4OQ==
  • Authentication-results: lists.xenproject.org; dkim=none (message not signed) header.d=none;lists.xenproject.org; dmarc=none action=none header.from=oracle.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 16:15:19 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

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.

Thank you very much!

Dongli Zhang



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