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

Re: [PATCH v4 1/3] VMX: use a single, global APIC access page


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Fri, 23 Apr 2021 16:17:49 +0200
  • 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-SenderADCheck; bh=/QNggnJrL6UwgR2bBdwckj8GkHrwg2kJom6UmPsQtCc=; b=KnmqOUMzz+X0HiWAEzDGnYU1J8GGrgYRpHi0tCbGEjwp45fOB39PgXpzv8+BSlrfkGF/TL+Qq7J5nlfqpJJnaU4Tv6IK9SW+OCS8F8fA4JwTkvR3gYCz6YwlPVGOpxgtiaI4G3/Xh/saenlmc5S/b+W8CByo3agIjHiIxNwkrmSLCw5Fyiv0c+F13vNidSVZhdclR2tz0NLtoHdjCGPfg0vxfF9i34poxIb3Eu6fXlITAqdBzFKtz0nyHXZuOPn6HyyvxMP1UXg96XTgffTucmTQ/RSmXW34tQTINck3u/KMZQBM8J9L2SgOvWKkeJShVi775TxDhWqH6YmaRiFzUg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ICHXMs+9DuCf8T0ZrlwMCGXwgf8T9RzICNtms1QJ0BPTnOvcvHiXK637SqS0yW+Re1NneHApySo1B1qXfcsrcheUFdivxEPtbZB6lOfgAneAsvWwq9nagDW7zBLZlxcW0h2/IE1buVkEhvxuM5zbBoymTm104zNtnTRRa6HdwSSYOMeF72AFoh2mE1G6JfETMT8hVAph+VphI/6vA1+k8Dg1Wi4frvhli049rhD/KBJobP3yETAJ7ajTQoYsuQ+FB/w1o2Kvj+UJoM2DCPf0DXlYRVlZADzWDD+daKUiwTDI7shpe+1MGsB+Yq8Zuqk9NmDDfcJb82HX6Rv+H6jfNA==
  • Authentication-results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Kevin Tian <kevin.tian@xxxxxxxxx>, Jun Nakajima <jun.nakajima@xxxxxxxxx>, Tim Deegan <tim@xxxxxxx>
  • Delivery-date: Fri, 23 Apr 2021 14:18:01 +0000
  • Ironport-hdrordr: A9a23:jQiupq+cfxZCTwgO5E1uk+F8cL1zdoIgy1knxilNYDRvWIixi9 2ukPMH1RX9lTYWXzUalcqdPbSbKEmyybdc2qNUGbu5RgHptC+TLI9k5Zb/2DGIIUHD38Zn/+ Nbf6B6YeecMXFTkdv67A6kE9wp3dmA9+SSif3Dymp2JDsKV4hLxW5Ce2GmO2dxQxRLAod8OZ qH/8xcpyehf3N/VLXAOlAuWe/fq9rX0K/8aRkdCBI9rCWIhzWk6Ln1eiLooys2eTVJ3Lsk7C z5gxX0j5/TyM2T5z398yvo75pQkMb80dcrPqKxo+UcNzmEsHfLWK1PQLuH1QpFxd2HyFFvq9 XUpgdlAsIb0QKsQkiQgT/Anzbtyywv7XiK8y7pvVLGrdbiTDw3T+pt7LgpCyfx0EYrsNFi3K 8j5Qvw3PA2fHCw7hjV3NTGWwpnkUC5uxMZ4JYupkdSTJcEb/tppZEflXklYasoJj7w64wsDY BVfafhzctRGGnqC0zxjy1ExdyhWWkLBRGWQkQOkdz96UkpoFlJi2Qf38ARhXEG6dYUTIRF/f 3NNuBSmKhJVdJ+V9MzOM4xBe6bTlXXRxjBKnifLD3cZdc6EkOIj6SyzKQ+5emsdpBN5JwumK 7ZWFcdkWIpYUrhBeCHwZUjyGGCfEyNGRDWju1O7ZlwvbPxAJDxNzeYdVwom8y8590CH8zyQZ +ISdFrKs6mCVGrNZdC3gX4VZUXA2IZStcpttEyXE/Lit7XK7ftqvfQfJ/oVfrQOAdhflm6Lm oIXTD1KskFxFusQGXEjB/YXG6oVVf4+b52DajG78kewIUALeR3w00ooGX8wvvOBSxJs6Qwck c7CqjgiLmHqW6/+nuNz2gBAGsYMm9lpJHbF19arw4DNE35NZwZvc+ERGxU1HybYjt2T8bcFh 9jt016kJjHaKC49GQHMZaKI2iah3wcqDahVJEHgJCO4s/jZ9ceAos5XrdyUSHGDQZ8lwoviG orUn5EembvUhfVzYm1hp0dA+/SM/Nmhh2wHMJSoXXD8WOGpc8uQXMfdyW0UdGehDsvQzY8vC wyz4YvxJ673Rq/I2o2h+o1dHdWbn6MPb5ABAOZILlPlqvTYwF2R2eSjTm8gxU+E1CasXk6ty jEF2m5aPvLCl1StjR93rzx+F15TGmbYnl9c2t3q4F7CGTAtEtiyOPjXNvB70KhLn85hs0NOj DMZjUfZjljwN26zza5sjePH3dO/ORlAsXtSJAYN53D0HKkL4OF0ZwcF/hP5ZB/KZTFqekQS9 +SfAeTMRL1A+4kwBauu34gISV4wUNUyM/A6VnA1iyVzXQ/Cf3dLBBaXLkdOcib9HWhaPCS0p l15OhF9NeYAyHUUJqhxq7WZTIYdU+Wjm6yUu0yqZdb+Yg1r6B+GpHHUT3OkFFLtS9OWPvcpQ c7euBc5ruEB6pEO+o1UAhd9kAylNuOIFAw2zaGSdMWTBUItTvjI9iN47D0srIhDU2KmRvoNT Ckglhg1saAexHG6KUTBK0xK1lHcUQQ6Hxt++WZao3bYT/aAN1rzR6fMnWndqVaR7XAMbIMrg xi69XgpZ7bSwPInCTRtyB8OKRA7iKORt6zGhuFHapt/8ahMVqBxous78jbtka6dRKLL2AZj5 ZCb0oec4BqjSQjlpQ+1myKcZPMy3hV22d20HVAjV7i2o+v/WfdEwVnCGTi8+prdAgWFGOJg8 TD+fWfz1Ln7lF+qMH+KHs=
  • Ironport-sdr: VWs9NX7WJcJnt1YXSxxA7EQUcgGMNZLuX2tZi4EdA0Ik1shZ76b0Pk3z6eWWRLuioV48+L9J0A K8BFxLv2v/zspiA2ioaTMcCjBOEcn1Wb5FzRV0lS5bS9rlZFUds0HdE/CtapyANIYFBBzMbOvi ZGkK15UQjgxFp0yYkddg1ck/TgxoySZtJ8W2zsDWBeBBLNTwiwnxPWoQSY6SZWkObTiNr6Un8q 15lns4d9UWSbp6t5btIsq7+5b86S6yGLtUQF8Ar4p/sCuuUZ5YMwgFzUHpFSzv7F8HUh8tU02U 6/w=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Fri, Apr 23, 2021 at 12:52:57PM +0200, Jan Beulich wrote:
> --- a/xen/arch/x86/mm/shadow/set.c
> +++ b/xen/arch/x86/mm/shadow/set.c
> @@ -94,6 +94,15 @@ shadow_get_page_from_l1e(shadow_l1e_t sl
>      ASSERT(!sh_l1e_is_magic(sl1e));
>      ASSERT(shadow_mode_refcounts(d));
>  
> +    /*
> +     * Check whether refcounting is suppressed on this page. For example,
> +     * VMX'es APIC access MFN is just a surrogate page.  It doesn't actually
> +     * get accessed, and hence there's no need to refcount it.
> +     */
> +    mfn = shadow_l1e_get_mfn(sl1e);
> +    if ( mfn_valid(mfn) && page_refcounting_suppressed(mfn_to_page(mfn)) )
> +        return 0;
> +
>      res = get_page_from_l1e(sl1e, d, d);
>  
>      /*
> --- a/xen/arch/x86/mm/shadow/types.h
> +++ b/xen/arch/x86/mm/shadow/types.h
> @@ -276,9 +276,16 @@ int shadow_set_l4e(struct domain *d, sha
>  static void inline
>  shadow_put_page_from_l1e(shadow_l1e_t sl1e, struct domain *d)
>  {
> +    mfn_t mfn;
> +
>      if ( !shadow_mode_refcounts(d) )
>          return;
>  
> +    if ( mfn_valid(mfn = shadow_l1e_get_mfn(sl1e)) &&

Nit: I would prefer if assigned mfn outside of the condition, like
it's done in the chunk added to shadow_get_page_from_l1e. The rest
LGTM, so:

Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>

Thanks, Roger.



 


Rackspace

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