[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
|