[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH RFC 05/10] x86: update GADDR based secondary time area


  • To: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • Date: Tue, 17 Jan 2023 20:31:49 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.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=ZMWaRjhc3+GSYJUKhEBkyEpFF87GRxHX285lgwcegbI=; b=LWAdb+G6T/DoA5WZ2Tx2BNaT86oqzHtAWzqWj+jT56jvQItQpmAhFeiKBMkPICGd7vB0PRN9ueyTdK0/i2PIZzr8Wp3ES8ZVUxoqvh2FXVZUGaiiMJ8QhmkICdzQiKDjmvdlwuAckI72M7vn9z5wf0qNyb4guVKSFgVbyy8aLVd31grjeFnoqYbHOFYN5d5vaGKM6WGWNqvKrvKLbZ1jg4tkJAFoUYjpf2rLPeoxwXdvlIniqiyZRQ1pEX3BZPl/Qq975zZAoRNz7t/Idhj5/B8UwMvMkMoEUazxVBjLqUSj2uglNf+SdzOU//oP9TmY8ymcQbIhcqmeLDssrB3pbg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NBJURmkCth4bD4CjNRROwCF84i9FfS412mVLLz+LFqDMdx+Mo1lIdwemqakfjtOV/9i4+U1yLJRrAZoN2Myl46DtIPqTOlZRKWHPReBoFdP3CInt2VpYFHl+n4im/LRSS2jHaSzRoD4f5UzvjK4354elOJX25/ZphX8bS03lFSeA8cRBMCiHGpjlyJpPbwE0pc4WnPXhGOIjJpllbFc86D1JZ9lYsutMSeDzenAPKqoZimMO3Sseoq27rZtvl7svDhgDJQ11SHwgdp+wZiw2DlbcPFgarPMQg7znFC9kU/1kQeZ2uwl5sEJOIhpHjhFCReAd9CAC0GIrZDh00wtpKQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: George Dunlap <George.Dunlap@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • Delivery-date: Tue, 17 Jan 2023 20:32:12 +0000
  • Ironport-data: A9a23:usQaWKMuB0dVIMjvrR2HlsFynXyQoLVcMsEvi/4bfWQNrUp31mBRz zAeUDyPM/rcZ2ameop3aIzk9R5T6sKEm9UyHgto+SlhQUwRpJueD7x1DKtS0wC6dZSfER09v 63yTvGacajYm1eF/k/F3oDJ9CU6jufQA+KmU4YoAwgpLSd8UiAtlBl/rOAwh49skLCRDhiE/ Nj/uKUzAnf8s9JPGj9Suv3rRC9H5qyo42tB5wNmP5ingXeF/5UrJMNHTU2OByOQrrl8RoaSW +vFxbelyWLVlz9F5gSNy+uTnuUiG9Y+DCDW4pZkc/HKbitq/0Te5p0TJvsEAXq7vh3S9zxHJ HehgrTrIeshFvWkdO3wyHC0GQkmVUFN0OevzXRSLaV/ZqAJGpfh66wGMa04AWEX0s9wETBx8 qAHEhMmSzqYvNvsxbiqUOY506zPLOGzVG8ekldJ6GmFSNMZG9XESaiM4sJE1jAtgMwIBezZe 8cSdTtoalLHfgFLPVAUTpk5mY9EhFGmK2Ee9A3T+vFxujeMpOBy+OGF3N79U9qGX8hK2G2fo XrL5T/RCRAGLt2PjzGC9xpAg8eexn+kA9NMTdVU8NZgvFTU+GsZFiQQC1i3saaw0HG6YtV2f hl8Fi0G6PJaGFaQZtv3UgC8oXWElgUBQNcWGOo/gCmdx6yR7wuHC2wsSj9adMdgpMIwXSYt1 FKCg5XuHzMHmKKRYWKQ8PGTtzzaBMQOBWoLZCtBSBRf5dDm+N03lkiWEYklF7OphNroHz222 yqNsCU1m7QUi4gMyrm/+lfExTmro/AlUzII2+keZUr9hisRWWJvT9XABYTzhRqYELukcw==
  • Ironport-hdrordr: A9a23:dbT4Pq7vWvsCevxx1gPXwMbXdLJyesId70hD6qkRc3Bom6mj/P xG88516faZslgssRMb+exoSZPgfZq0z/cci+Qs1NyZLWrbUQWTXeRfxLqn7zr8GzDvss5xvJ 0QF5SW0eeAb2RHsQ==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHY4449r21jsZmdvU21bR3R1n+QYq6jnlaA
  • Thread-topic: [PATCH RFC 05/10] x86: update GADDR based secondary time area

On 19/10/2022 8:41 am, Jan Beulich wrote:
> --- a/xen/arch/x86/time.c
> +++ b/xen/arch/x86/time.c
> @@ -1462,12 +1462,34 @@ static void __update_vcpu_system_time(st
>          v->arch.pv.pending_system_time = _u;
>  }
>  
> +static void write_time_guest_area(struct vcpu_time_info *map,
> +                                  const struct vcpu_time_info *src)
> +{
> +    /* 1. Update userspace version. */
> +    write_atomic(&map->version, src->version);

version_update_begin()

~Andrew

> +    smp_wmb();
> +
> +    /* 2. Update all other userspace fields. */
> +    *map = *src;
> +
> +    /* 3. Update userspace version again. */
> +    smp_wmb();
> +    write_atomic(&map->version, version_update_end(src->version));
> +}
> +
>  bool update_secondary_system_time(struct vcpu *v,
>                                    struct vcpu_time_info *u)
>  {
>      XEN_GUEST_HANDLE(vcpu_time_info_t) user_u = v->arch.time_info_guest;
> +    struct vcpu_time_info *map = v->arch.time_guest_area.map;
>      struct guest_memory_policy policy = { .nested_guest_mode = false };
>  
> +    if ( map )
> +    {
> +        write_time_guest_area(map, u);
> +        return true;
> +    }
> +
>      if ( guest_handle_is_null(user_u) )
>          return true;
>  
>


 


Rackspace

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