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

Re: [PATCH v4 02/10] x86/mm: Avoid hard-coding PAT in get_page_from_l1e()


  • To: Demi Marie Obenour <demi@xxxxxxxxxxxxxxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • Date: Fri, 16 Dec 2022 02:49:33 +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=p2ge+GkOC7El9ntlN/PBjK4WkVoHAT/EfTL6RKH2eV0=; b=ESKAh5YbZeAxkdaphkp+iX2w+P95+IkeumCwyEmIhWIpxc4ntgsLzs7hQ+D0HSfhvnp9RwAFXAJi5SXjzDw7ImKH7QaydyAzsMaqM21a1jegJ92yLvG1hFnjk7XrgQVHvGDwxu30bVNk3SbWzyNMGUzMOmPavg6samxoOzpHK+z5o96u84iRng61VREDE5DqGRETw/cGamRRZqydsXfm4K9QYVUvw1RA7MNIE8b+RxMSWM+titwRkRf13Iib2ALcwxyBuWYHATOvD7z3dKsJrMLcRKDJucmG6i1hsQOYyFm4jyKPP0sZ/8qnBHaWp4XtkTXxozhBsTI8onI45vt7xA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SzxoTaZRsNoH9qwvocVqQM2PGPGN7j81kuqWL1m8HUuOH+VKEPW7xdRgcAup9lVT5N5QA2bsSeJOOHSRksc0IJsbPpx8dkEdTz8Zy+6F7Qin+DOG2ZjvTJwth4wBfY0lMoNtiuGqojZZ2D5o7s/S4IadxBTTJIn3dqe8+fRJ+h88HngFwn1jYqT2Xi5lAP+euCUw6HHFdHIzQhgKOk3gR2wQCUrIwXyR2fduaQoumXfC21mw8pAbuVzbKI2gr4mtBy8BEs/BU6VwYhr0fdqcAjNyOvxxHj2DXvl3JtchR+LBAJ5pdRDMW1Rbiqh2JqwIXO7YNyi6IIquIegYzKP6gA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Roger Pau Monne <roger.pau@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Jun Nakajima <jun.nakajima@xxxxxxxxx>, Kevin Tian <kevin.tian@xxxxxxxxx>, George Dunlap <George.Dunlap@xxxxxxxxxx>, "Tim (Xen.org)" <tim@xxxxxxx>
  • Delivery-date: Fri, 16 Dec 2022 02:49:56 +0000
  • Ironport-data: A9a23:wKK6KaqDvtSImHZ8uK319UE3S5BeBmK9ZBIvgKrLsJaIsI4StFCzt garIBmCO/aDZzD9f9t+YNng/UoPusCByNBgSABkrn80Fi1B9JuZCYyVIHmrMnLJJKUvbq7FA +Y2MYCccZ9uHhcwgj/3b9ANeFEljfngqoLUUbKCYWYpAFc+E0/NsDo788YhmIlknNOlNA2Ev NL2sqX3NUSsnjV5KQr40YrawP9UlKm06W1wUmAWP6gR5gaEziRNUfrzGInqR5fGatgMdgKFb 76rIIGRpgvx4xorA9W5pbf3GmVirmn6ZFXmZtJ+AsBOszAazsAA+v9T2Mk0MC+7vw6hjdFpo OihgLTrIesf0g8gr8xGO/VQO3kW0aSrY9YrK1Dn2SCY5xWun3cBX5yCpaz5VGEV0r8fPI1Ay RAXAC8/UE/Zh+av+bKUUMh+hZsiJsX7BapK7xmMzRmBZRonabbqZvyToPR/hXI3jM0IGuvCb c0EbzYpdA7HfxBEJlYQDtQ5gfusgX78NTZfrTp5p4JuuzSVkFM3jearaYWJEjCJbZw9ckKwj 2TK5WnmRDodM8SS02Gt+XOwnO7f2yj8Xer+EZXoqaAx0AXInwT/DjU/f33nsNjm1XevBZFZA hYduXJ1v7ctoRnDot7VGkfQTGS/lhIRXtt4Eusk6RqMwK7Z/waYAGcfSjdLLtchsaceVTEsk 1OEgd7tLThuq6GOD2KQ8K+OqjG/MjRTKnUNDQcBRBEA6sPuo6kyiAzOVddpFKOpjtzzFir0y jrMpy87750Rh8MW06Sw/Xjcnimh4JPOS2Yd+QH/Tm+jqARja+aNZZGur17S7v9CLYOQZliHo HUA3cOZ6YgmDpyTlSrLXOQEGpmo4eqINHvXhlsHN4Ug8hy99njleppfiAySP29sO8cAPDTuO UnavFoI4IcJZST2K6hqf4i2FsImi7D6EsjoXezVadwIZYVtcAiA/2dlYkv4M33RrXXAWJoXY f+zGftAx15DYUi75FJan9sg7II=
  • Ironport-hdrordr: A9a23:FRPRPqlAV7XArHWV2Fm9FvG5oYbpDfO5imdD5ihNYBxZY6Wkfp +V8cjzhCWftN9OYhodcIi7SdG9qXO1z+8X3WBjB8bYYOCGghrgEGgG1+ffKlLbakrDHmA279 YHT0ETMrzN5DtB/I7HCWuDYq8dKbC8mcjG69s2pE0dLz2CHpsQizuRfTzrd3GeKjMnObMJUL 6nouZXrTupfnoaKu6hAGMeYuTFr9rX0Lr7fB8vHXccmUOzpALtzIS/PwmT3x8YXT8K66wl63 L5nwvw4bjmm+2nyyXby3TY4/1t6ZbcI5p4dYCxY/ouW3vRYzWTFcVcsnq5zXAISdSUmRkXeR /30lQd1opImjHslyqO0GHQMkHboUsTAjnZuBSlaDLY0LDEbSN/BMxbiY1DdBzFr0ImodFnya pOm3mUrpxNEHr77VDADvXzJmNXf3CP0A8fuP9Wi2YaXZoVabdXo4Ba9ERJEI0YFCa/7Iw8Cu FhAMzV+f4TKDqhHgbkl3gqxMbpUmU4Hx+ATERHssuJ0yJOlHQ8y0cD3sQQknoJ6Zp4QZhZ4O bPNLhuidh1P7grRLM4AP1ETdq8C2TLTx6JOGWOIU7/HKVCIH7Jo46f2sRH2AhrQu158HIfou WxbLoDjx9MR6vHM7zx4KF2
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHZEOEYwMi/YxVbW0ewrekF3Th9Oq5v0EuA
  • Thread-topic: [PATCH v4 02/10] x86/mm: Avoid hard-coding PAT in get_page_from_l1e()

On 15/12/2022 11:57 pm, Demi Marie Obenour wrote:
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index 
> 78b1972e4170cacccc9c37c6e64e76e66a7da87f..802073a01c5cf4dc3cf1d58d28ea4d4e9e8149c7
>  100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -959,15 +959,22 @@ get_page_from_l1e(
>              flip = _PAGE_RW;
>          }
>  
> -        switch ( l1f & PAGE_CACHE_ATTRS )
> +        /* Force cacheable memtypes to UC */
> +        switch ( pte_flags_to_cacheability(l1f) )
>          {
> -        case 0: /* WB */
> -            flip |= _PAGE_PWT | _PAGE_PCD;
> +        case X86_MT_UC:
> +        case X86_MT_UCM:
> +        case X86_MT_WC:
> +            /* not cached */
>              break;
> -        case _PAGE_PWT: /* WT */
> -        case _PAGE_PWT | _PAGE_PAT: /* WP */
> -            flip |= _PAGE_PCD | (l1f & _PAGE_PAT);
> +        case X86_MT_WB:
> +        case X86_MT_WT:
> +        case X86_MT_WP:
> +            /* cacheable, force to UC */
> +            flip |= (l1f & PAGE_CACHE_ATTRS) ^ _PAGE_UC;
>              break;
> +        default:
> +            BUG();

This is guest reachable.

But the more I think about it, the more I'm not sure this logic is
appropriate to begin with.  I think it needs deleting for the same
reasons as the directmap cacheability logic needed deleting in XSA-402.

~Andrew

 


Rackspace

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