From nobody Sun May 19 11:06:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1683107109; cv=pass; d=zohomail.com; s=zohoarc; b=VAtwwmM0fjKmC1SibwarjHh1ztJQKww+qB8l4zRx57L223ZnCupSsMHsjmdFad2ycSUeNByEnJo7yIKJAZ7Q6/b0XJ+8x+5DeL+o3hrNnVphVti1mIBA3n5u6WcOiYv0zSzg0DCfHql2ExLiQARUOdCpcEw2QyMhJvSnO1BlYYM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1683107109; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=uG2zYnfRmLb43OT9mdiD5lm/T/9r7Wlaz+YjVV6KHds=; b=CwszDPujBeVBdb4blbiieOFS1levnHlyyKQ1enSmQg00cezWc6NBGD2u/fJQSFP7M0v/Q2vxfpUysYmFbZL4P8oAKR0C6YyJBcVPyxyZBJeekyzKTpdDbBH/Pja6okdYZSrpgu25PIaoK3Lh2bhiOkzlrBYRvPESXqWhmIvFSHY= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 168310710903931.149500349416257; Wed, 3 May 2023 02:45:09 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.529056.822997 (Exim 4.92) (envelope-from ) id 1pu92S-0007ce-EK; Wed, 03 May 2023 09:44:44 +0000 Received: by outflank-mailman (output) from mailman id 529056.822997; Wed, 03 May 2023 09:44:44 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu92S-0007cX-BG; Wed, 03 May 2023 09:44:44 +0000 Received: by outflank-mailman (input) for mailman id 529056; Wed, 03 May 2023 09:44:43 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu92Q-0007cL-VY for xen-devel@lists.xenproject.org; Wed, 03 May 2023 09:44:42 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on20627.outbound.protection.outlook.com [2a01:111:f400:fe16::627]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 20d896b0-e997-11ed-b225-6b7b168915f2; Wed, 03 May 2023 11:44:42 +0200 (CEST) Received: from AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) by VI1PR04MB7086.eurprd04.prod.outlook.com (2603:10a6:800:121::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.21; Wed, 3 May 2023 09:44:40 +0000 Received: from AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7]) by AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7%6]) with mapi id 15.20.6340.031; Wed, 3 May 2023 09:44:40 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 20d896b0-e997-11ed-b225-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nvlRo9gffZaOASpcLxLtB6sqsLqdsDbGzUGPPf3VBZ1Zi9glelxkR9Hf0+CQEZj1TYnvboQwjk3TJIxDuSCtUS6I1sWw75HzkajVwc34j9Eyl2WqfXjC0tyd5TfDXMjTpgpEqwsxsN7p71ZhZ7B5qnAke3g9koOO6MoJkFe0UcOl6VYQiukFMFJK9C9q8NmqNj2HadTmEMh96eWNhFQ7jibSwhE9prtSxsRI895dKtETfdnw3tGIAXNrYy3a1Sj1yf2NWcME7xzUIaSdFwzQUWRgvEY0kLsWcn72KAflvXh1bctnf15JrrKQUAOl7UhO7pkNWi+Z9j84W/GuxHFksw== 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=uG2zYnfRmLb43OT9mdiD5lm/T/9r7Wlaz+YjVV6KHds=; b=BjZkalo36iwu8/QwTG0G1MjeJE6yJHJFk5fmd/6RHu2DrlsqKjH5LJWj4AhOV4VWv3x/8WNh+0PdUb4hBfqmdOiZ4AYjdk8Vj1r1anXMAX5ZAbroWc//TbJNgn25Z3ENIS1VGLaIprJXn8KywolSmvLyGnq+AJI2hRni05MH8/3Ob3ub+nkAK1puW4a42UspU6bgGBVaFXvs1kXgGdDRqn7gvh0UoO9IYgnZ9oXOzyAkwvjD3duWYBkrVV1TfzuCS9KVhqqqzBzPcxaHhV5V1F/6kjyUYkY5jyctio0kqu9+AdAMvcvPMuTmAVdiAb1WlihEIhOHUlYeieudGtsuXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uG2zYnfRmLb43OT9mdiD5lm/T/9r7Wlaz+YjVV6KHds=; b=I6EBmK5BzFg05tm4Le3m41t63GyqeAInXGTuf2aQf/7gKeVehD7mElMeE5B0s5x5HsGs27aIYf+w4+XXB0Rs4ZbhAknWLcenQwt1FgQtgLNzmI2Q81u7SUDNZ3CdyffSSHyHNARnB9ntTHmEfZn7ReGn8rFbwm0cfGk0+vIz+K4fut4yHNZk3ngtBom4s5KQVgFWBkj6LG6Fr7hekTcyC8Rl9NdaHkdzDbNgzEf15dUQrrYwuAWuLLJHOKBWegyDnHC643K31abqubZp0e3nHHyjS8EplO+ttQsJ/qde+yBF1H77SoVKXS5YEj5LQU+lUITywzd60nhL1JWxw9O5ow== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Wed, 3 May 2023 11:44:39 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v2 1/6] x86: support cache-writeback in flush_area_local() et al Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0182.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a4::17) To AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB6551:EE_|VI1PR04MB7086:EE_ X-MS-Office365-Filtering-Correlation-Id: 8524c7b2-6117-4f39-caea-08db4bbb0445 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WwaZuD7vJLgsKWHayFHThjQ9LIhWqFoDzh4bQG2FlAaXxPpj3gLoFX2UZV0YJ7Ceb/b3VT3PYVTA9yrHABhXtfWodKBcPDVypkO+BakHm+BG1mgmD+rZ7tQAkQFbRsfAJhB+Ds9vc7OQ0Vadd+PGA+KzFUFqQro1qkTi7+LdpF5p7Qg0F7mZjvIYxMohHV3X5bT52Z6jew+usGCyerlBPQHFV0tnSF4qKejZFPHeq9JyEd9st/s0yixzolhvtXs8xrHogi4I63nhFhcYlArF9/iRDLkJS/Du8gJuRaJ/uySFQUWUHYox7phTSZOnhypyonyt0ItYUEnsufxTZpdE0RI0vsLu82pE/DI1JGjBdIPUnhUbhLrn9ql0iFgIzWIJnNtWmvwpq7HNyTWeNEcJ3mWMGJx7AUFTpmDMZThiechytmC8/5+eDd8or4hGI+Iy7RnO05CU8tJrNxySjHZy/9XuNdPmVQHHYALEAbCcGYKfjKkcKHuFtpmznNkJkSI4iNFnv2OT3/UXCdJ56b4a/PoheVEwkRvcfFJLXGzmEzspOVqqf034pRH8W4oRIRaOc07B0Ha9kwjQA+3NmVgSC30Vvh3bb/WASAUaL0H6ynCZmp5fCYhCMqJE1WlOJQhGip8YfFEXJTgSyYb4s+rsaA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB6551.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(39860400002)(366004)(376002)(136003)(346002)(451199021)(31686004)(36756003)(5660300002)(2906002)(38100700002)(31696002)(8676002)(316002)(86362001)(66476007)(66946007)(66556008)(41300700001)(8936002)(4326008)(83380400001)(54906003)(186003)(6512007)(26005)(6916009)(478600001)(6486002)(6506007)(2616005)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WFJWRlBzdWRVYzFrOE5XRWlDNUp0Zk92VlJDM0ZHY0NpVmNReVAxMzg3QVRH?= =?utf-8?B?ckVXYU1HYmtvQ0UrUnk5VndFMkI2Z2pSczZQUzJjVHJERFBWZERWeGxiRnVM?= =?utf-8?B?NjJlWVlWbE9mRjJGajd2eFdQa0NCT3ZsQVRyY04vSEQycFBLWkJqZHRNTlly?= =?utf-8?B?M2M4ZUwzTkh3VjgyN3F4VFV4TzdhblpyK3VCUWQvMlpZZEtkdkMyblh2b09s?= =?utf-8?B?cHExU1oxeHZrdGl4bVBoWVpJaHNPblpmbjhPZnI0WjhuekZvdmd2Y0R6anBr?= =?utf-8?B?d1pYRzk3L3BzdzFmdDFpVzRYemFTMzVnNGJQSUtacW82dlV5bVI3ekNjOVc3?= =?utf-8?B?YTdzcWNoaHdrd2F4TUh0ZmhKMG94Qy9wRCtYemFQQmkyeUtyRFdEMVZESk5K?= =?utf-8?B?TC9lcjU5Qmd2cFJscXRMUzJFdks1UFBrcVplNFJtTnZKN2hvTUZyK0Q5MnVP?= =?utf-8?B?M2l2Zi9Gd2JuaHFWenZEeTBPRlNmbmpMeEFkei9Qc0w0VGNaWGRrMUNoTHdZ?= =?utf-8?B?OW84NU9mQnNySlREL2xSVmpvQXZsbmtnK2Mxc2xtNVBFUXRyaGJkTHpDekdr?= =?utf-8?B?cWhRZUhueHAzWjRFd0dxQkFkdVl5emgrY0RYL284VjI4ekVHdnZocXZENUhJ?= =?utf-8?B?dlEwV0hGZ1IxdDlPNmU1dkFFWFMvK0EyYUFSaGttTGljZmpqZVpnZWdJdjZ0?= =?utf-8?B?dDF3MDJFZC95eWg1bzR4V3JZaUQxWitxUittWUg0MjRWbVZCR0tzazlDQzNB?= =?utf-8?B?YmpLSU9RUkJiVzBCWmgrbEVLY2h3dXEyb1pmcUM4eFg4Y0YrNjZlc2xTdUpR?= =?utf-8?B?ZTJodTFPb0prb2hIYUdubkRiT1ZSMTUrdHpnMTZDZk1CelpIOEVTSFNxTUdI?= =?utf-8?B?cE15L0hMOG4reklLSkM3dmpjWXVKeVdMK3pHRUd6L2tpOGc1SFB1OGVkaCt5?= =?utf-8?B?MDZneGJqMG5kUlQxN1FraGZ5TzU4TGgxdGVqTkY0Ni9BWmhSa2kyUkdUOVU0?= =?utf-8?B?ZFhDYmJKOUhFd0dPdHU0dVEySEFjSU92am1GNGk3VHVQTFNpQmN5Y0t3eGcv?= =?utf-8?B?QUJ5eTVvRS9jZU1SZllYaDVGZEJydUZweTN4bjkxWUJ2dmdkcHM0MjRPQUZP?= =?utf-8?B?a3puaEFabFhDa1F5MmI5T3NONmdBU3U4VHIvbzJCU3FJNitwMGlmOU90T1Ew?= =?utf-8?B?ekVia0paeXRXTFFreElrd1U5cDVNMHZsQXlWcUZXTGRUbmU2c0Z4STBtSjMr?= =?utf-8?B?OEpMZ2Y4Qi9rZkk5b2V6THZFQTVIS09wY2VHYnBuL01vbi93SHY2bXBscmlH?= =?utf-8?B?bm9lMHBFUEFuSlVDU2JyUlJRdThCVFczUkNtbVU3c1ZnWlU2QlhlZ0pFK0ph?= =?utf-8?B?U1piZEViQnRtM1BsRHJQaXNhUGxBL0c0dW9EZFNVWlVjb1VhY3gxSFd6RFJ5?= =?utf-8?B?R3FuZzhXbXJkK2llMHhYMEpqaDhLa1R0bXR6ekdOaVpERjZpM3RFUFB2QVNw?= =?utf-8?B?c0JpUTlhS3Z6bzBGT1prRzhjZXVqYXZaNS9HUHh6dk9wUjFwa1hCalRLR0Fv?= =?utf-8?B?OERtS2tHOTF0ZmwvU0lvTUREQmpBVkRndE8rMHk5Q3JQbWZUdkJjQ21aYWEz?= =?utf-8?B?MUhkY3J2S1RscVMvZGcvbmlESzdsRy84OEVWUUMvLzVJM1IyTUNGTFdsMmtO?= =?utf-8?B?VFRjMGtUc2NHTXJxTlZDSXVPK0JGNkhKaXRTa2pqTExMVmlVb3NMRzhsd0wv?= =?utf-8?B?cTZPQlRzUnp1TXUvTGM4all4aVEyZVY1LzBmSWpZZi9mKytSaXVYNDI2THI5?= =?utf-8?B?aEZTckVxZVp2ellzMlg2RGlRRXY0TmdtTDZ2YlpEejl0MC9TMGR2ZUFrTzI5?= =?utf-8?B?RHl3K1pwdmdiU0dldFc2TS92MC9ON29pOXhZbmhHbU9BWUw4cWxqc0ZRUTRz?= =?utf-8?B?RitwdlM5TFRzK1pLb2pZU21EcEVIUzNhVEQzV3dMTmY0cWVoTGptQjkyK0Vw?= =?utf-8?B?RGRBdGp2TW5PMGc1dW4xTmozRldUZVBkZTA1Tm1GdmFHT3lwZlZLc1M0MktN?= =?utf-8?B?RWxmTjFnUmVydVhwMFptKzlHSkdMZEhFT3V1eFZqZDJEMTFSZllqc3pucDNm?= =?utf-8?Q?s2AIRFmnOe2ypOBYDwOvg2X/u?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8524c7b2-6117-4f39-caea-08db4bbb0445 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6551.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2023 09:44:40.6861 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QZ2rxB6r1k1fURd8zcHoxXn0iyi9GaEvBtbH2jri/gUD5oOfPxd0fpTJws8tlcn01FJhd/+r/veyNTp1yBu3Yg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7086 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1683107110259100001 Content-Type: text/plain; charset="utf-8" The majority of the present callers really aren't after invalidating cache contents, but only after writeback. Make this available by simply extending the FLUSH_CACHE handling accordingly. No feature checks are required here: cache_writeback() falls back to cache_flush() as necessary, while WBNOINVD degenerates to WBINVD on older hardware. Signed-off-by: Jan Beulich --- v2: FLUSH_WRITEBACK -> FLUSH_CACHE_WRITEBACK. --- a/xen/arch/x86/flushtlb.c +++ b/xen/arch/x86/flushtlb.c @@ -232,7 +232,7 @@ unsigned int flush_area_local(const void if ( flags & FLUSH_HVM_ASID_CORE ) hvm_flush_guest_tlbs(); =20 - if ( flags & FLUSH_CACHE ) + if ( flags & (FLUSH_CACHE | FLUSH_CACHE_WRITEBACK) ) { const struct cpuinfo_x86 *c =3D ¤t_cpu_data; unsigned long sz =3D 0; @@ -245,13 +245,16 @@ unsigned int flush_area_local(const void c->x86_clflush_size && c->x86_cache_size && sz && ((sz >> 10) < c->x86_cache_size) ) { - cache_flush(va, sz); - flags &=3D ~FLUSH_CACHE; + if ( flags & FLUSH_CACHE ) + cache_flush(va, sz); + else + cache_writeback(va, sz); + flags &=3D ~(FLUSH_CACHE | FLUSH_CACHE_WRITEBACK); } - else - { + else if ( flags & FLUSH_CACHE ) wbinvd(); - } + else + wbnoinvd(); } =20 if ( flags & FLUSH_ROOT_PGTBL ) --- a/xen/arch/x86/include/asm/flushtlb.h +++ b/xen/arch/x86/include/asm/flushtlb.h @@ -135,6 +135,8 @@ void switch_cr3_cr4(unsigned long cr3, u #else # define FLUSH_NO_ASSIST 0 #endif + /* Write back data cache contents */ +#define FLUSH_CACHE_WRITEBACK 0x10000 =20 /* Flush local TLBs/caches. */ unsigned int flush_area_local(const void *va, unsigned int flags); @@ -194,7 +196,11 @@ static inline int clean_and_invalidate_d } static inline int clean_dcache_va_range(const void *p, unsigned long size) { - return clean_and_invalidate_dcache_va_range(p, size); + unsigned int order =3D get_order_from_bytes(size); + + /* sub-page granularity support needs to be added if necessary */ + flush_area_local(p, FLUSH_CACHE_WRITEBACK | FLUSH_ORDER(order)); + return 0; } =20 unsigned int guest_flush_tlb_flags(const struct domain *d); From nobody Sun May 19 11:06:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1683107155; cv=pass; d=zohomail.com; s=zohoarc; b=Smd9/SxInk7GDY0VN9tg65RqGDVhXBMY/HmtRRVkSI1A3oxvsPGEGCOVRRl3zPpsyHpiGuQ8TU1/prfVQN3T2F60BxK2aESBpn/qm9CE4F+A2SAEgHAEMkvfioEErnxpGX6QjWdP+A21Rnm72EVhp4lWEm0aIRi+8tOWjRYZgWs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1683107155; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zX9q4vPbP6ZoAmb7n1j4z3y9de90GGwg4j8OmjDy0DU=; b=XRQ5KkMoXVMq9b0IaB2npXpzt/9DvG8oDweKHmir6feCSb+khaIXI/HTu27X6ATiNRAyZrriPKBOje7sOD5kSxe8uh/hgqBSjUXgQmmseMef1e10SYtqZHG4NxkEtQLy/O4Af2ga3Zc25PfeMaj/CvYs2+V0AGmDtMtMJYf6S9c= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1683107155918786.8656864202748; Wed, 3 May 2023 02:45:55 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.529058.823007 (Exim 4.92) (envelope-from ) id 1pu939-0008AE-PE; Wed, 03 May 2023 09:45:27 +0000 Received: by outflank-mailman (output) from mailman id 529058.823007; Wed, 03 May 2023 09:45:27 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu939-0008A7-L3; Wed, 03 May 2023 09:45:27 +0000 Received: by outflank-mailman (input) for mailman id 529058; Wed, 03 May 2023 09:45:26 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu938-00089y-Kw for xen-devel@lists.xenproject.org; Wed, 03 May 2023 09:45:26 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on20608.outbound.protection.outlook.com [2a01:111:f400:fe16::608]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 3adfdd92-e997-11ed-b225-6b7b168915f2; Wed, 03 May 2023 11:45:25 +0200 (CEST) Received: from AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) by VI1PR04MB7086.eurprd04.prod.outlook.com (2603:10a6:800:121::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.21; Wed, 3 May 2023 09:45:24 +0000 Received: from AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7]) by AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7%6]) with mapi id 15.20.6340.031; Wed, 3 May 2023 09:45:24 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 3adfdd92-e997-11ed-b225-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VGtyGOsO7zERtWbhfcjaOWGePa40SgKqvrcfepqF2fArWmil5qv4VIvrXkSGMca/IGS8/eyDw1VpIhSYiOTjg/eRJdNBDsyYhF3uYx9WEATvW1BFkuFeFqg7+2c+FWKdhFh5KaDdRgl9GKA3Q2kewwjxoCaHiGnNLdiU0hNASgfScggtt8t+9AOFVWxqTXS6cFfCRkZE5z9Ox9RJZYtW9XdeG0+vOaPSptP1lYV4V0kwCdY5N9fYgAbKMcQw9W8mSqGHhTaU4WlT0yamXyDqtmQw0hBdOgte5NJNxmwJkSxOxqpvvQKODrFwYMEi7HO8jJMXNq4KzBrdtRhDM3Qkgg== 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=zX9q4vPbP6ZoAmb7n1j4z3y9de90GGwg4j8OmjDy0DU=; b=eDnvx2/8VO+DaLCVpFsqNOU5ScZZ+2au3awGE2RNnzrxAm9cGATuI9WymdbXehLcYEd7w+Q9F70ZG8WNLGlzBWBalAB2lTDqupEhzabKLCFr+hlUGZD1xVj51ab25pfBGDwfIzFfYkhyMw3UfTDtYSBJKXKILiekQT+5/B4RsHcluqUecP+jM/QUHQynLBliYEL8RCnVmldl64sblV+FqTQEYWp6VeJvH7DvEz9JDKBa/zxux8K5HlTCscuhGjrc04jWliwVYCPz2Qpe8WupwPCoO6TIJhegpdruuqHIeUX3dGfVNSUi8pYSIOcXKi0Pex7L3vHA0InxLko98wvOog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zX9q4vPbP6ZoAmb7n1j4z3y9de90GGwg4j8OmjDy0DU=; b=GenVxBVomwXnuwavtyG0H/gbr6cPoySUXFaIK+rS5sejKNgT5Hvawu+6aoHK8C5JV6bn7kdFyuys+tt2ds1q07OTUD3NIqrw1bsPIO0IaJw+DzsTJSBaQWU73GgDp56Pu1Tcjuhb2cGHFL4MGWcZp/utHirWVNLc6DkFCuYCR0j82S46gHFQBCXcubS8xTM7NXwLfCRfWPyZh7wEHxBabgMCLkFOu+j9LHZwm9P2fVbO7V8tEmXBCKmdrfH4a26BJJI4NohLEkqHt+Skk4IAgc5e10yZtmqSdBlOSN/j3DS+CYo0rVmWhRowq4+ZxeYhd+W16lvmld5ZU7IDQfINjw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Wed, 3 May 2023 11:45:22 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v2 2/6] x86/HVM: restrict guest-induced WBINVD to cache writeback Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , Kevin Tian , Jun Nakajima References: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0090.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1f::6) To AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB6551:EE_|VI1PR04MB7086:EE_ X-MS-Office365-Filtering-Correlation-Id: d0a95501-d4d9-423a-b453-08db4bbb1e75 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pVu+Re5JO518uDmDhT6tkkfRyCRtvjUc1uHnT30Gfc8oPwLSsfckovHlIhCKdkryMdyP9+RELS4e2MhcVugtQvBXeCfHeVepuIQzS+XG2duFgeGA9EWLzXLJriR0E+tMpqeya8Kjkdb7BUB9T2wk+sOBx5PT9y7P5JBtmSX1/9JS90qNtzWF8Pq4JC+SxhOiaT3Ui6Ng3BhTSQIDzLyINHsFG1+b7+lDhzafnzsIWO97UfsyET0HIFDKplPHdTeB5aQ8bzd73B0D/+kh033HNiORKeF5oKeZp/xTFHr2k5/lSy88IcQb1AoQgcau7kn9P+nmwo2rU43pToiW6Dty7Mu5BZComGSHTOcXG7MClOsPwYQnv7dcS/mVly7QjZARM3KY0flUQSyOze5Ty4KbBgmpGwm9mdB7ae16NVuulaKJkOgAivNqrTxFPLC7ipZ4Tq3TacVeT+L3vAK9n2CGz/fT0LnhPba4QXuIAr77CRzsyWOXLhBdtqAr/N7Nr7BnwbzXyi+ikddaqc3WIYsKNj/nveeSOV0WiiyVuDsI6elT0s+lwKpqNR3n30Kpjr0o1AXeOPCMKG5XVUDwDSoczr99CmDXyX3+dnL2XhhQObixXjnZHKFHC8ME3dN8JXM2iqeaagXCEudXHmkEiaqpZA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB6551.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(39860400002)(366004)(376002)(136003)(346002)(451199021)(31686004)(36756003)(5660300002)(2906002)(38100700002)(31696002)(8676002)(316002)(86362001)(66476007)(66946007)(66556008)(41300700001)(8936002)(4326008)(83380400001)(54906003)(186003)(6512007)(26005)(6916009)(478600001)(6486002)(6506007)(2616005)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z0NpK1JRb2MwTUFyYkpPRjBmaFUvajh3b0tCQkFmMTFuZGl3UWRCcTF3UENV?= =?utf-8?B?YU5JNVFKQ25vS3JRRDFQZjZZR1RQa0l5eG1QSlV6N3ZkMEpZVU03QU5mSlcz?= =?utf-8?B?M3BLME90alpRaVI2QzlzQkN2OGlSU1MrZUszMG1RMmFhS09BV2VtMVlTNCth?= =?utf-8?B?Wm8weFF4UVV2cU1ScVRvYU9kakU0ZmQ3VSs2UThORDdZVkpXQXBOdnEwRnJp?= =?utf-8?B?dGR1L3JJZURrYlBTZFR5akcwM2V5Q0VPckh4OEJzcnU2ZHFXVUpVaW1VNEdn?= =?utf-8?B?enIyV3Rrb3NXWkZrdkJCSHNMQW0yWmVyTE1qUU1vK3FLdjhmVG9URXRDaFFn?= =?utf-8?B?Wklvam5zdU1seHMwblRRWUtrM09WMkhUWVJUQmdNUThnM2tKT0dVeUVSVGRS?= =?utf-8?B?c1k5ZlpyMzNPWWN4UXRqRmcwOWd4MkVtelBtNWNIK1F3bTg2SXRSM3lXS3BE?= =?utf-8?B?TXE4VVlyOExPRUN4L1N6cVRqTWFUejVoWjQvcFJXcHBpSjFtanZlVkFyaWc4?= =?utf-8?B?RTc0TUdtd25jMG1HTDFId3hQRVkxdkVJcnJZb0hTWC9KQkUrMFNURmVQS2pZ?= =?utf-8?B?RkRISENxZGRjbmVMSklNdnUzaW9WUEtEV3dZZktSSEZpV2pYUFhNaVUxd2tt?= =?utf-8?B?MEt2WCttb1lQR1ptRUsxTGYyWXo1NTR4eE5PMzl3WXdQTFZuME5Icm9OeXFL?= =?utf-8?B?VVBPRUR2T0pkeTFHWmNpYjJEdzlOaDgwODIxNnVDMWtReGJHL096TGdjZ1Jj?= =?utf-8?B?bjAyOE53Zk94TWdTbUZXdlRweGVySXc0YVVNVlNIVy90Z3JVWm9vaThMamtu?= =?utf-8?B?NVBnUW54b0txbkJxWjEvK0ppRmovNDREY3JCQzQ1SWM1MmtLYy9lSkFSYmw1?= =?utf-8?B?dE1zTHk2RjdkUGFOS1h6b2lGRVFYYVZGUFoxalE1VVgrREc0aStVbzlqbHph?= =?utf-8?B?OUFGbVBPMHhPYnpkeFYzSkFRN1pSQ3ZzSWhZV2VFR2o0aFRDUHVaMVcrM1Ju?= =?utf-8?B?SGlaaS9QbEU0MWJlUElSeTdxZDdwYzdwWFI1REZsT1F0UFNlNjNJSDhtbkEw?= =?utf-8?B?cXRrVTh3WitXMVd0QUV1N043OHBIRFc2VVQ4Nzg1NGorenFDZG1JQjRtYk5N?= =?utf-8?B?aXVzWGJKV2J6anRKLzhWQmpRMkNkY2h6UVdKYVZKTS94NlVhYy9zT1lMcXEv?= =?utf-8?B?Wm0vdllGNVJHVDVXQVVKbWJLbjd2YWtUbXh3VTFrT0FYTkg3SE0rZ3h5YXR4?= =?utf-8?B?Q09SQWhMZjVvSXJiR0R0eTJYei92N1kwTUdNazFRcGlvS1NRZmdVbVBMZ0lr?= =?utf-8?B?UEI1NDl5bjhGbWp0VHVZT25RNlZPRnZHOFh4MHFkTk1CRk1HZjkwVjdqNnlM?= =?utf-8?B?dGlwSkpwSGxGWGxtcnpYcCsxUkJQL09KQkVxcGlOVEdPWEg0aEhpb3FDQTJo?= =?utf-8?B?Ymh6eWtvOUVnaitOenhQS0pCa2Iyd3VOdDlRNnJaTml5OGh3dnFqQUFtdVRy?= =?utf-8?B?OFY5Z0FSMS9VeVpDZkR4TWZRWHZ3by9nNWZtQVBMZ25KM01ReTJseVlxcG1V?= =?utf-8?B?N3ZHVTFkckRUdjJ3T3I0TEZWdmtWMWFpM01aK204UEgxY1lKYjg5eFR5SWxx?= =?utf-8?B?cDFiZVhpcWdyc2lUSlBaNS8rVy9rQklweEJQeXRKOFJEZVBoRjZvK25naHU2?= =?utf-8?B?QlNYbld0YitWMEVrZkcrOWZQOHVrcnhwRHZ0T1Y4em0xRys2Z0diZGY3R1cz?= =?utf-8?B?c2wxZi9rRGI1RnBIUEpLZkhXdVdtdEpKdGoxTGh0SDNVeDRqTUR3ZjVzWjEx?= =?utf-8?B?R3VhK2czTzNGVkY2elFDWHh4czVHNHVDV2pUckNtc0N3NlBXdXZoRkp0cENl?= =?utf-8?B?MjV4Y0RmNDluck9MVWdldmtraExkZ25qSEZrU25OeDE4WmNHUjJSSDB3OUpx?= =?utf-8?B?RGNrSzl3dzV5OHVYM1lKUkJtWGUrT0lJdUZmeEMwSmtiOG53ZFJET1E0Wm9W?= =?utf-8?B?Vmgyd2pDVkNNUkVLUGZaSDB0aWlDdGF4dkFOQmpKemxaa2ZSWjhGQ203T3F3?= =?utf-8?B?SzdhNmpJYWxWS21hVGtmZFlJTHBxT05QbWkwaDNaNGlxT0dBT0tMZ1ZFZFlN?= =?utf-8?Q?7oQxkoMiIkilqkYfjhd7cJcVe?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d0a95501-d4d9-423a-b453-08db4bbb1e75 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6551.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2023 09:45:24.6381 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XjPGC+mrbEbWB9KG0+jRskqWVRrRhdkXsYYzGAwLXeu5NWzhJxRzGugBXDJIcKxHzYtyvK6QIpz/opdlekX+bA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7086 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1683107158038100001 Content-Type: text/plain; charset="utf-8" We allow its use for writeback purposes only anyway, so let's also carry these out that way on capable hardware. With it now known that WBNOINVD uses the same VM exit code as WBINVD for both SVM and VT-x, we can now also expose the feature that way without further distinguishing the specific cases of those VM exits. Note that on SVM this builds upon INSTR_WBINVD also covering WBNOINVD, as the decoder won't set prefix related bits for this encoding in the resulting canonicalized opcode. Signed-off-by: Jan Beulich --- v2: FLUSH_WRITEBACK -> FLUSH_CACHE_WRITEBACK. --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -2364,7 +2364,7 @@ static void svm_vmexit_mce_intercept( static void cf_check svm_wbinvd_intercept(void) { if ( cache_flush_permitted(current->domain) ) - flush_all(FLUSH_CACHE); + flush_all(FLUSH_CACHE_WRITEBACK); } =20 static void svm_vmexit_do_invalidate_cache(struct cpu_user_regs *regs, --- a/xen/arch/x86/hvm/vmx/vmcs.c +++ b/xen/arch/x86/hvm/vmx/vmcs.c @@ -1881,12 +1881,12 @@ void cf_check vmx_do_resume(void) { /* * For pass-through domain, guest PCI-E device driver may leverage= the - * "Non-Snoop" I/O, and explicitly WBINVD or CLFLUSH to a RAM spac= e. - * Since migration may occur before WBINVD or CLFLUSH, we need to - * maintain data consistency either by: - * 1: flushing cache (wbinvd) when the guest is scheduled out if + * "Non-Snoop" I/O, and explicitly WB{NO,}INVD or CL{WB,FLUSH} RAM= space. + * Since migration may occur before WB{NO,}INVD or CL{WB,FLUSH}, w= e need + * to maintain data consistency either by: + * 1: flushing cache (wbnoinvd) when the guest is scheduled out if * there is no wbinvd exit, or - * 2: execute wbinvd on all dirty pCPUs when guest wbinvd exits. + * 2: execute wbnoinvd on all dirty pCPUs when guest wbinvd exits. * If VT-d engine can force snooping, we don't need to do these. */ if ( has_arch_pdevs(v->domain) && !iommu_snoop @@ -1894,7 +1894,7 @@ void cf_check vmx_do_resume(void) { int cpu =3D v->arch.hvm.vmx.active_cpu; if ( cpu !=3D -1 ) - flush_mask(cpumask_of(cpu), FLUSH_CACHE); + flush_mask(cpumask_of(cpu), FLUSH_CACHE_WRITEBACK); } =20 vmx_clear_vmcs(v); --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -3714,9 +3714,9 @@ static void cf_check vmx_wbinvd_intercep return; =20 if ( cpu_has_wbinvd_exiting ) - flush_all(FLUSH_CACHE); + flush_all(FLUSH_CACHE_WRITEBACK); else - wbinvd(); + wbnoinvd(); } =20 static void ept_handle_violation(ept_qual_t q, paddr_t gpa) --- a/xen/include/public/arch-x86/cpufeatureset.h +++ b/xen/include/public/arch-x86/cpufeatureset.h @@ -238,7 +238,7 @@ XEN_CPUFEATURE(EFRO, 7*32+10) / /* AMD-defined CPU features, CPUID level 0x80000008.ebx, word 8 */ XEN_CPUFEATURE(CLZERO, 8*32+ 0) /*A CLZERO instruction */ XEN_CPUFEATURE(RSTR_FP_ERR_PTRS, 8*32+ 2) /*A (F)X{SAVE,RSTOR} always sav= es/restores FPU Error pointers */ -XEN_CPUFEATURE(WBNOINVD, 8*32+ 9) /* WBNOINVD instruction */ +XEN_CPUFEATURE(WBNOINVD, 8*32+ 9) /*S WBNOINVD instruction */ XEN_CPUFEATURE(IBPB, 8*32+12) /*A IBPB support only (no IBRS, us= ed by AMD) */ XEN_CPUFEATURE(IBRS, 8*32+14) /*S MSR_SPEC_CTRL.IBRS */ XEN_CPUFEATURE(AMD_STIBP, 8*32+15) /*S MSR_SPEC_CTRL.STIBP */ From nobody Sun May 19 11:06:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1683107201; cv=pass; d=zohomail.com; s=zohoarc; b=ktTFR+A8LGouhKwdQ6Yf0QCVt6wjk/hHZm/A7KcQdJRvE0X6dRDRKVObBIHo5sSFybzSsUxILqV9XuTxgXbNUiG78Uwt8L+qcErZ5vi4ZfDjdJSdzevN6fTKeJ7/P780p4kG9K3UY2RdtV0AXFnRjlqFmC9COIh62z/H5/dO9Zw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1683107201; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6s2ziFxyLLrxphcX9bcoXKx8fmbmlbg2IZSNSJNSJw4=; b=GBqfLNu9oG+HXiPCfs8uhkRqSEjyGv/dGZTWB855M71M+l9O6RpXBMC7wV9vpGeaRoHnPaOFNHTQPbnZOoPb5eUTJtt8XOh/P4Buk+A86z2G/487asPvh9q87eCvki7XQq0F7pc4up6nLwF9I0VBw/FKpQUqXXsHiDngKs/fK+M= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1683107201176629.3311952200801; Wed, 3 May 2023 02:46:41 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.529061.823017 (Exim 4.92) (envelope-from ) id 1pu943-0000Nu-63; Wed, 03 May 2023 09:46:23 +0000 Received: by outflank-mailman (output) from mailman id 529061.823017; Wed, 03 May 2023 09:46:23 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu943-0000Nn-3F; Wed, 03 May 2023 09:46:23 +0000 Received: by outflank-mailman (input) for mailman id 529061; Wed, 03 May 2023 09:46:21 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu941-0000NW-Hl for xen-devel@lists.xenproject.org; Wed, 03 May 2023 09:46:21 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2052.outbound.protection.outlook.com [40.107.7.52]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 5a6b7481-e997-11ed-8611-37d641c3527e; Wed, 03 May 2023 11:46:18 +0200 (CEST) Received: from AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) by DBBPR04MB7980.eurprd04.prod.outlook.com (2603:10a6:10:1f0::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.22; Wed, 3 May 2023 09:45:49 +0000 Received: from AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7]) by AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7%6]) with mapi id 15.20.6340.031; Wed, 3 May 2023 09:45:49 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 5a6b7481-e997-11ed-8611-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J4Ti2FyuNUFQo5B8p5+8s/4oJXDMxJr4KKeZe8p8wtr3e1k4W5eDwmb7tNGjKTiFZ8R/2fkCzoQvb6S4L99qPz2G34yxw8XbbZVeemMv81G3lhYCOHzpHw4I65ar99LXv10pzDykBzWDVazamiMiMmx9HfjndxVUJCgLzcbh/iKhqWcjIFPjzSsZHoI4EDdp4hGtkCI+hVrpMjP7b9moBgopZCanlq8r7+I7yKd5e6rTaE5py+ai2W+PWhln8wHBC1UuDxiGc6yU8NhPug96hjWXoHXzDDhvwxs3R8ICcyJBxNJvLh8YquXWKaSBk9wUBJV0V45n20+K72K9bOE8TA== 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=6s2ziFxyLLrxphcX9bcoXKx8fmbmlbg2IZSNSJNSJw4=; b=FMTOR7WhKDNt4LkIe9tfRUyAZ9nEOLx/by1cEAo2LlyZ5ifueXwpA/HV+aR6OoIW5CEkERNlu5TVRQn83k+D1B7mSuZurzkjyBo3tRgz1cuGopmXbf9lJ2Od1QcEIIdUxtJV430GitjlOt18S11dJA7r3u47WGDksihXrkR5QBWahZ0uAlSJnIa6Xtis2qJDSeOByAUFV8lTHfpNAhOEvaD4X5r+3GqSKbNf6Fn+6FJc1VvkRJ9KVQyO1vkIopyMzcWKR8owXyByqrCRNhi4rGAXqta5RjNKyk1U5z599nJ0K/81KV0vWi0VKomsTIC40pmDsKXZ21YC01BXucjgbQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6s2ziFxyLLrxphcX9bcoXKx8fmbmlbg2IZSNSJNSJw4=; b=ktwluAyIBMs75Hpu+3Nb54GPGgIiTdVoBjUA0PphmB0CUjFKOJ8yTC02HwGmI3PjNOqanvVR2B9VgCMxN2ckOEbsiNRTmPAkaihvZHoZMNe7w1VphDaNqHRLL4s8vGVMxMIC3OagahJ7OsCA15OpgCdr8ULVu/T9cMFuKLZX3RgR0yGdfc3QKa01jjk7kDS0vgr72tEk6VAmkSC/EMof96tEsQkMrOhuOhMSb9QEqEUNeS3zYVA+6qNHQ7culh1Ob5q0pNPAXqCJxKnj1+GlYKYmJTLzXnehamKrXeAD7aLU6HdAKskqtWor14jog8a7YX0T+dy3sEU2gHpwcCLFKA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <9dc789fe-6c03-165d-c361-6aaa4ba09763@suse.com> Date: Wed, 3 May 2023 11:45:48 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v2 3/6] x86/PV: restrict guest-induced WBINVD (or alike) to cache writeback Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0040.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:92::7) To AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB6551:EE_|DBBPR04MB7980:EE_ X-MS-Office365-Filtering-Correlation-Id: d6d72f2c-df64-4a34-50b1-08db4bbb2d63 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zfJSpX52zNoSJgSDqDh8oLyEvYsXe+x+6prtXbYx8ALGbJb96oKPqeyHF5F+meIC3b8O4RI4gNZhxPNXdDWBxyUElvQ9I/Lhv3I60Rwue4pRhfItPmrpK//PLjdVH5960/t612XGZePRHIKawThacTL0cka/7GjDCrvOhHBzgrcnBH98DzrcVP3cGCgtVAvNgOXZiBK8VsoGGrjazOguvxYU9wubhbZSRfC1rRyoTMOviOPKCE5Q7PSjhsXEleE5FuRysMF/XhmUn/KVFwNtMAlJea0hysPzlCKBQxdWY+tPuLFuwfy//EPhlMI5KkAGgf/ElUFbjnA9Mg1qGerYDU0EF8Av4SZzw/E8xq43HcOUZj/z0WlG1RpR8+zbY7pYO7vd3jYhbZ0aHblAVXPWmjBmn+v3kUZp/DckA8afR2Q+EeeSlDEzdPISB45X2c/IyhpzI2LvgCLRjMrwrqhVqPaC7g9z9S8dug8PyLISR169G6OSqN5LLy4DjrNSQuHQVz3XHTCgH/cIpxfLtyqPy7y4A8smtbRou9uLySp9suCu7YnlBkGrU8wWv8ye05NgDp4g7MSKDml3yZtKy1L7IoxnZwyxy+KLh42yDMebpWkBqhvp3SNU7Oeo9R7pB15Z260MTz6CSIrdpw7akGxAsg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB6551.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(39860400002)(136003)(346002)(376002)(366004)(396003)(451199021)(6506007)(26005)(6512007)(186003)(31686004)(2616005)(2906002)(5660300002)(83380400001)(8936002)(8676002)(6486002)(41300700001)(36756003)(478600001)(54906003)(38100700002)(66476007)(66556008)(316002)(31696002)(66946007)(6916009)(4326008)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VU5kWGhqKzNkK29WdFVEb25pdG5Rc2JKL0xvL0UvTXc1V3FrdllDaElBQ2Ft?= =?utf-8?B?SHc1NGFwdFNEdGxoNForSFRTUllieVhERG82aFE0RlZXTnU5NUJVaklZK1RE?= =?utf-8?B?UnJPTno4NDhyR0RId3BaVk1KdXVFODZuUk1PdzFvcHBwUXFveTdtMlFqVUVs?= =?utf-8?B?bk9yYnNxZkc4b3RUMVJrK1RQSFFScUhTVDFzVmtWbVoyLzBiZW9FWlVTZlQw?= =?utf-8?B?d1FLNGhlK0F5cDdDM2RSVE5wM1MvTVVHSlBDcHJma1B1eHl3RXlNeTRZSW5L?= =?utf-8?B?Qi90bFpQaVpNaXFoVllPNStMeDVzNEdwMVVYYkJJMGtQcUFVMTJuZzFzSVk4?= =?utf-8?B?UFJMRWQyRTdHSFFiT2VjdFVBUWU1VXh4Z3JGUkFjdjdiM24rQUljSWhtNDdD?= =?utf-8?B?THJoNkRublZpdlRmdCtkTEw0RVd5WFN1NWVvb2JhLy8rVmFTdllObDQxR2hM?= =?utf-8?B?SThmK1YzU3U4cWRYRlhIQUpYOC9UN2RvMHBGM0t6Y2lGVVFyYlpyU0hkbTB4?= =?utf-8?B?NkNUcHhKZmhBMFhOWkNBOTM0ZHR0ZFRlc2NXOEMyNm41THl5dlZVVVBHTFBi?= =?utf-8?B?SHdHZkVML3pSVjA1b3htN3kxeUMvcWVwZHhQeGpoSSt4UUpUTWhhaWprWlk3?= =?utf-8?B?MTRySGFvVWUrMlBJaXBmb3lpdHI4cXkzTC9WNVJmWmtIUUMvQ0dJK1JISURQ?= =?utf-8?B?TEI1TlJ1M0svV01HTE5mc2NtYWlYUnZHRGkwNWNyUmZ1RE5McDNwZFdYdThE?= =?utf-8?B?Y0NpTlE5THprSGtWMGg4Qjlaa1BZVjY5WmV2WVFqT0dJWlQxb016NkpFTld0?= =?utf-8?B?RGdYK3ZaU1BIcmpVZ0tpODkrOGMyNFZ6TzMvdVdvbE9kRjhVNitPZDdVNUtP?= =?utf-8?B?c2o4QXlzNDdpR1krRU9tZHVLbEh3N25saXRMbldaVDk3RkRkU25vVGN0TElp?= =?utf-8?B?WXkzR1J2UE9Qd1VDdWlUdWt6L3czQ2dSZnVNVTNLRjZVLzJQRXN3emljQ2pZ?= =?utf-8?B?Ui9sVStwZXZYSlduVmhaWHAyTGVDamp2dUxSS2poYStidGMvQkZSbFhuVTVv?= =?utf-8?B?c3M1L0dDODlwcmh5ZzgxUU9IMEVTN09aZlI3Y3FJYUtCS1NNV05ZRFlEb1Mv?= =?utf-8?B?eTBWSmlEb2JEd2c5eGw2RHJlL29nQzVnaE1pYks4TEZGbHU0UVdUUFJoRFdJ?= =?utf-8?B?Rmo4dnFvQkhiSzBDOElBclR3Y0JzWU50NVpuWjV1dUVaUDVhL3E0L3lCck1L?= =?utf-8?B?ZkE4d2ZTdUdyV2RkdmdpNThQdlVXUW9QZjJCdWJqSUVJNUF2Wkd6aWlGTlhN?= =?utf-8?B?M0NLaW9ybnh5N1lIbG1aeWs4VzVob2ZIZUhzdXJXcXc3VlUzUkdyaHJnR0x3?= =?utf-8?B?RnQya2F2TkVLYTA3ZUZia2pKNTVOUEc0dUJlY0Z1TTYwTjZTVUNzSG1GZVcx?= =?utf-8?B?SW1zc1VNaVBiMVIxQStWeU45STJzeEJwdTl4TWt0SmZDRnNFc05ZVlRTZTNK?= =?utf-8?B?SEVDMkdGdGdOb1RaY212Wm5ZaG1YOU1ENFcvTWZ5dDBYQlBVdFdTN2p3VVRu?= =?utf-8?B?VmE3Nm5HOVZra1Z5ckFiRTI5YlZic2s3eGtyZUF5VGRYZlpWbEJsdms4TWdU?= =?utf-8?B?akhwNlZ6WFBrSEtMaTdjM3JuZXExNUdMV2JMR3EwemhmVHZMV014QTBWQmZt?= =?utf-8?B?NG1ZalloKyt6bDlXRE9aTEcyWjhvOUNxSUYrbXo3dnZrTVdkblczUFRaYWgw?= =?utf-8?B?bVlyaDFqSnlrUUJOSTN0ckx0QTZ1NEJFT2s2dDdOYXBwdlVOSDA2MnBNUVlo?= =?utf-8?B?b0ZTT2Nya2Z0QjNKcGJ1YzBkcmhpSGdHTDhoYi9iOEYwdVJ2MW5ZcTRRMmJ6?= =?utf-8?B?S1JWd0UrVkltRFdhdUZuNDFFMTVyTjhWV1FOUlFwWktlRnBDOVAveGplWkNs?= =?utf-8?B?bXJJc0VPVXJ6Ylh4VnhzY24wWkFKOEV0R05sR1JDblk5VXRqcUJUVDR0blVT?= =?utf-8?B?L2JvUEszVUUvNGVvb2Rhdm5FZ09wb2tqeU14OTdWUG5hK21UMThGVEFQOHl6?= =?utf-8?B?YkVIWVFKM1dYYksySjJML3RMZFVoZElCUmMrT2V6THhhUWxueVRHMUtrVHla?= =?utf-8?Q?TCaWxD72OPwrIrqFmACPfYKct?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d6d72f2c-df64-4a34-50b1-08db4bbb2d63 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6551.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2023 09:45:49.6761 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HZSwL4/OqmrpkAbdfihTLGdGwYzfL8zA+AX5fDWRIJJwdCV0osEFvJvWF/yJv3ziRbzjENpPGGkk5olv6NBIYw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7980 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1683107202307100001 Content-Type: text/plain; charset="utf-8" We allow its use for writeback purposes only anyway, so let's also carry these out that way on capable hardware. We can then also expose the WBNOINVD feature, as there's no difference to WBINVD anymore. Note that respective emulation logic has already been in place since ad3abc47dd23 ("x86emul: support WBNOINVD"). Signed-off-by: Jan Beulich --- v2: FLUSH_WRITEBACK -> FLUSH_CACHE_WRITEBACK. --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -3772,7 +3772,7 @@ long do_mmuext_op( else if ( unlikely(!cache_flush_permitted(currd)) ) rc =3D -EACCES; else - wbinvd(); + wbnoinvd(); break; =20 case MMUEXT_FLUSH_CACHE_GLOBAL: @@ -3788,7 +3788,7 @@ long do_mmuext_op( if ( !cpumask_intersects(mask, per_cpu(cpu_sibling_mask, cpu= )) ) __cpumask_set_cpu(cpu, mask); - flush_mask(mask, FLUSH_CACHE); + flush_mask(mask, FLUSH_CACHE_WRITEBACK); } else rc =3D -EINVAL; --- a/xen/arch/x86/pv/emul-priv-op.c +++ b/xen/arch/x86/pv/emul-priv-op.c @@ -1196,10 +1196,8 @@ static int cf_check cache_op( * newer linux uses this in some start-of-day timing loops. */ ; - else if ( op =3D=3D x86emul_wbnoinvd /* && cpu_has_wbnoinvd */ ) - wbnoinvd(); else - wbinvd(); + wbnoinvd(); =20 return X86EMUL_OKAY; } --- a/xen/include/public/arch-x86/cpufeatureset.h +++ b/xen/include/public/arch-x86/cpufeatureset.h @@ -238,7 +238,7 @@ XEN_CPUFEATURE(EFRO, 7*32+10) / /* AMD-defined CPU features, CPUID level 0x80000008.ebx, word 8 */ XEN_CPUFEATURE(CLZERO, 8*32+ 0) /*A CLZERO instruction */ XEN_CPUFEATURE(RSTR_FP_ERR_PTRS, 8*32+ 2) /*A (F)X{SAVE,RSTOR} always sav= es/restores FPU Error pointers */ -XEN_CPUFEATURE(WBNOINVD, 8*32+ 9) /*S WBNOINVD instruction */ +XEN_CPUFEATURE(WBNOINVD, 8*32+ 9) /*A WBNOINVD instruction */ XEN_CPUFEATURE(IBPB, 8*32+12) /*A IBPB support only (no IBRS, us= ed by AMD) */ XEN_CPUFEATURE(IBRS, 8*32+14) /*S MSR_SPEC_CTRL.IBRS */ XEN_CPUFEATURE(AMD_STIBP, 8*32+15) /*S MSR_SPEC_CTRL.STIBP */ From nobody Sun May 19 11:06:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1683107201; cv=pass; d=zohomail.com; s=zohoarc; b=Hf2+9tJtqpEOAiBSReQ/IUNONoDtXoTpQKCAqa7XcjDC9f5afMQOS1mCyoKsoCK6uhL6w/azDFXVzY4GvLmsOCUxcvkKpDigHbAjRlK/DpWUNmlrHIfn6r1VxXp3NySIDdWxH2jfHRM/R7uE6Vc0NFTOn7JGvS5bI+gt4Uqa0Xc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1683107201; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ws+81il08fZF9Iyvf//QRJ+mt2teUl0Lbm4jBjIkcAo=; b=L/twm+1DmBES5J9l1snYHZ0YG3qSTHAWHyWNlULF2Vpb/3LuyZnAUyhL9HQ8C+0WrmySg7c/PW4eGuwc9cusG9LWC0ADw6B2UsnFGEWrJVmw6H+jIc9lW1ifxBSvkllwx8fA2j3tjwFikeGKmpg2oBrA9g1pP7UF9tnZ7hr+9nw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 168310720189712.383007337367076; Wed, 3 May 2023 02:46:41 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.529062.823027 (Exim 4.92) (envelope-from ) id 1pu944-0000dN-HC; Wed, 03 May 2023 09:46:24 +0000 Received: by outflank-mailman (output) from mailman id 529062.823027; Wed, 03 May 2023 09:46:24 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu944-0000dE-CN; Wed, 03 May 2023 09:46:24 +0000 Received: by outflank-mailman (input) for mailman id 529062; Wed, 03 May 2023 09:46:22 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu942-0000NW-EQ for xen-devel@lists.xenproject.org; Wed, 03 May 2023 09:46:22 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2052.outbound.protection.outlook.com [40.107.7.52]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 5bbe9fa1-e997-11ed-8611-37d641c3527e; Wed, 03 May 2023 11:46:20 +0200 (CEST) Received: from AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) by DBBPR04MB7980.eurprd04.prod.outlook.com (2603:10a6:10:1f0::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.22; Wed, 3 May 2023 09:46:13 +0000 Received: from AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7]) by AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7%6]) with mapi id 15.20.6340.031; Wed, 3 May 2023 09:46:13 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 5bbe9fa1-e997-11ed-8611-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=baVyL1YjsprtZuoztGplHhfLl3GIExQ+Byq4JgrWfmfX7r/N303+eIdSzV4KloqlV3Ymvl+PrAlL5VRjF8UVgvw7M+1PItN2OAPJdooiD2IrPFrnJSXSES4CLNUbPJX68veDCfJZ3JnI3TcmsLxl0NdRrQfi+2GQN5sexOVt6EISbi9TAp7oa6Z2DcpvLraGfWmREB8yXOnQ9dyfN693LlKy9pwIhsAie6+5t8IE573CaRqHtBPhfkHzee5yGDqYX8f1237YxM/G2kdqGRSNw4cBCeZvG1wRy2EcMblr94BrfSYndG7mGDXU8PzOozxLv5ESnq8ygfS3LjDHOlf0lA== 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=ws+81il08fZF9Iyvf//QRJ+mt2teUl0Lbm4jBjIkcAo=; b=c2NF8nB8CjOAOryJyw4anItilvXvtyfOf6XAkN6Yu/yH6QEfle4SY+flQ20iC4mrSkeAfPmM0eCLfxrUXpgvsdew3cVMza9Nx2SEFgMtLe9Y47L+sA/+htm666ln2/uI4kktOMXmGT3uuRHlPpB2NLXKAN27qvWYwbwIEOGtLyGALLwNvHqrZrBjPldOEi1LZtG1HEQKODKF/TegIl1BT0ttOgp75CvMmRfYewVKsqFtDGSZIT1goLrGpouRaj87bB27I68iR3MQUp+PB3G8cZB0o3VjepFZCrLL0AMP1N1/C3/SU2zeEWCOD9MNhgO23GKdsjieYmGhF2MPp38gGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ws+81il08fZF9Iyvf//QRJ+mt2teUl0Lbm4jBjIkcAo=; b=amgxSUQqariV5Z5kqocOG8FAyVQZS3nVpB2u23E7qGlxCuq6nkpSIucU/Jbd+XxNMf9kdcaiEPzg47WNX08Vdw2FHmyrxCo80HhyyI50qPC9A+/R57HD8xHPYm7ieVPsOkJ5Iy8rdUJetjWfSuQFQaiVG4JSgqSyeJLTGutVVdok4Cce4XVzaOLyz9x/dTQExuQI9rxV7Ug3Ik0Wj5hw8RbdJxKb2Lg6b0CwnY3ws0pk3Q7IiGshPQnEfh5eTSLL5O6UocmAwdt39Sbc7DD783t3sMcuSdlxbG9S84h0CZaWvoCnbZ10I90kUQDjQuzsX9p/wbDqpbSTknBz4MSmKA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Wed, 3 May 2023 11:46:11 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v2 4/6] VT-d: restrict iommu_flush_all() to cache writeback Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , Kevin Tian References: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0001.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a::11) To AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB6551:EE_|DBBPR04MB7980:EE_ X-MS-Office365-Filtering-Correlation-Id: 7a1238cc-c88c-40f4-e604-08db4bbb3b83 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ClJdEjTpDKlYlZcz6EMYiejEPiGMD6VV9DUGIWvjRhbtqGCMWn9eTa3PBqsD73O6+3VuB/pXw1JhvarF2XrgnYMFSxocaFfEur5pLLravmG6Jvkxo0Hy9UFW6LlXLPUPbtnDSy1NU4T0FPnPyataGDtoSSFi4hqoZAy5LRdR5Z3VEbmjp3KDInh/HJ+35+lBbhVo7lM4M2MuCEBCcsBiWL/p39oQF7TNZwWUYtRZ8eSycmO6Ng9UdFGdOdPGZZgb/llj78CWDXKEmKELQPcNxqbPpOEx+kfNP0VgXvLQB2nbb0jwWrR95kwXttTp9KFNXZJ55k+z5/Y5irGXA0oiEfucu2lQddq0ygsS23ylOW//mppRPJrd4nwqeF22rWtmWcDPXNTgVXqfVzFtW8SHDlcxGQT21yw4LZyaxtmwpJusr4oFsQDkY0ahREfNq1F/klT21FJ9K9ccagZ2We/GPnBG1yFm6xYgUoCHL1TgGoKB6FYGO4AXeAD5BSe7BAC8X/h24+uec8ww8y+gFBRYMMellTG7ravC8Bf9IJuI7kroKni6NTs0feNeMjMZH13ZXmI2ZQhpGIuZlGjBojzMkCxDYAwdwcrMopQmkc7uTf5gjep3X902jo9JIJ1ksNXPmYrw+iQyP32893itb/713g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB6551.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(39860400002)(136003)(346002)(376002)(366004)(396003)(451199021)(6506007)(26005)(6512007)(186003)(31686004)(2616005)(4744005)(2906002)(5660300002)(83380400001)(8936002)(8676002)(6486002)(41300700001)(36756003)(478600001)(54906003)(38100700002)(66476007)(66556008)(316002)(31696002)(66946007)(6916009)(4326008)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NVdzZ2tsaU5oRkkrbmhIY1J2UVNMWXpGSmg3M09UOVNkOWRUK0xxNzFzWWVj?= =?utf-8?B?SmdHK2pxNFA0NXUzK2ZSa2E5aTlBQVUrVkNGdTdWYzlQbVhucklvNzdUYzJE?= =?utf-8?B?MEMwVVFDUkRranIza3dBU0RFOExhQi9ZN2s0WEljWGMzaktNYkRnUUZBK0pk?= =?utf-8?B?c09WL2ludGxvSlIyK3g1alFCYS92aHFiRWNQaXc5ckJLQ2lpd2NPNmJKZ0VV?= =?utf-8?B?RUdyZ0IxVVZ1Y1M5VXM4bW4vMmVvbkJxYm1tdXkvbVV1cGd2eUtVb3RtUXJ4?= =?utf-8?B?cTM1aTNaN2FETmFSS0JJR2pFbmtTUGs4Z0VES09mVG5KNVIzZWdXS2dQQ2Rs?= =?utf-8?B?ZzBQcjNLK2k4aHY3ZUNSZDRDN3FrczZyWVR1ZllMd1FLbE9Hd3p0Z2NkS0xx?= =?utf-8?B?d1U2b1p6d2kwc0hrVHkrTm9YQTdmVkZhVkwraFdENzg0V3dLOTN3ZnBMUkZy?= =?utf-8?B?eFVoWlNiMVVnaGRGaWRWZ3dMU1lpdnpLUlpIRmtuN29UZmZPRmU4enZvcjFN?= =?utf-8?B?NGpsUFJlNFZTdDhvaHU4VEFUdmdTWithd2hwV2o5eXNWa1lQaHArQ1oxd2hV?= =?utf-8?B?aUprcHhmbVcrNmZMN0lzQnBEYS9PdkVMTkFSY1A2VlcwNTFoRE50a2c3bUpQ?= =?utf-8?B?d0hwTm1LSVIzZVFmQ3gySWVqRGNxZU1oNldST1ZTS1FzMDNqMERTUUU4UzZy?= =?utf-8?B?NDMwVCtMMmlPMVc4L09JSG5FWW9MYUVXM0cwbFVXTGw0Y1lCTmIrYm12dUtG?= =?utf-8?B?cEQxY2RhMzNlUXZVa1VKS3FZTjlHdWF4Qkh2bzNabFdWb2dkN3NndWJjYjcv?= =?utf-8?B?cWQ3Uis4UW1MQks4MitpWGJBSittR1laakt5U09EQ3FYQ0hNWWxHOHZLWnZa?= =?utf-8?B?UTZMS3g5OWg4ZW5XT3dXaGF5QWNJbkxObXJza3Y2V1Y0c2FYT2UyWW52Zks2?= =?utf-8?B?R1QxRTlSRmwrb0VNUlBwb0pqOWozNzBsZDY0QUVJRi9VZWVxVkV1MCtzY2xL?= =?utf-8?B?WFZQcHV3L1crNUhPUXJBcXptOEt5bzk4OFkyYUlwYy9KK1k4Z0d4aWVtb21K?= =?utf-8?B?cUhHTUxTbGFBbU1NUHg3VFBwUFZqUGt4TWpOWUlNYjlibVVBYkZoZnBJaC9K?= =?utf-8?B?N1VjVDJjSGtmMGRVZFd6MkpNUFhkM3kyc2JhSkxldDZLRlprUzBzamJWS3oy?= =?utf-8?B?VnhXS2NuSlFlTU5qMGo2cEFNK2VqTUZOalZ5a1FHc01XSlhKZHpNUTdycm05?= =?utf-8?B?RU55ejlRUmtHRVVKOGErbXV1WHRiN2NGT0hiNXVtWUIwdDV6UTBYMDkvNGMy?= =?utf-8?B?MSszQS9qR1preXlsZWRKS2x4TDhSMlRjR09wUEFramgzUE8rTGNPa0NpLzZp?= =?utf-8?B?R1A1V3B3UHNaSUprbytRQzhkVjJtL05TQXRndWFBTTd6UER3OHBTTTVBTUJm?= =?utf-8?B?U21pRnVFQkY5YzdteTJ4U3hqNTdqMWVva2JXdWlGS0ltY0x1TlBrQmJ5RXNB?= =?utf-8?B?UkpjRlR1cSthNEdjVUNxM1NmbGlJbXMrbnhJOFFZYVdNL3ROTE92MnZoUTA3?= =?utf-8?B?SFJydDZuTjhLUk9YMXZoRHVFS2ZWcWwxUUgwL1R3czVUaFZiTkFVb1BKQXhT?= =?utf-8?B?MkMyVVhyTkxqeHpJM3Vkamdac3pPNEhSZXdncW1teVd4SWhrSmczTTRWcW5y?= =?utf-8?B?RmZOcStrcFlWd1VVRGNYLzNkK1VZY2ZOQXpTWVFBc2ZQRVpaM0ZGaEZtc1NN?= =?utf-8?B?VE00UDRlN2JEWmhoY2FHc3ZhZThsOXhWSlk4RHVrbWpicmZwZy9peERGZzN6?= =?utf-8?B?bFVUTk1IaVNmdWZQV243MjFVVzJEVlJueEpPRVdUbVhWZitCdEw0UllwdnRz?= =?utf-8?B?VjU1anBlQlhZaWVQQURHWE5ORUgxVkRuTmlwc05SeFoxNFVoMTlPb1pIWk5w?= =?utf-8?B?RElpSU1OaW93WkQ3OXUzRWNUQkx2QzN2clZSQlJ5VXRNVEJ3eVRjWVZVdTZF?= =?utf-8?B?Z2RTWUZhcFAyQkpIRThoZUVERm01cUJKU2tsMENWQkR3VzkvVWFmTGlWNFpV?= =?utf-8?B?MTg0U0tydjlZWmRZUDRpSGhMOEthaVFkQktSSlc1dWx2elhUdnNjRVZNVGk1?= =?utf-8?Q?YAnr6AOKPPVA74P/Fj2VOMMw1?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a1238cc-c88c-40f4-e604-08db4bbb3b83 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6551.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2023 09:46:13.4542 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XzSW4C2/tBeUvdnlgoTGW4+dhDrRraPPIiedr5w9JzuBXfbHq3IqBvBeFO2kv90l2W9ZNez75QPniwfFM8W/Jw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7980 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1683107203619100003 Content-Type: text/plain; charset="utf-8" We don't need to invalidate caches here; all we're after is that earlier writes have made it to main memory (and aiui even that just in case). Signed-off-by: Jan Beulich --- This, aiui, being an analogue to uses of iommu_sync_cache() (just not range restricted), I wonder whether it shouldn't be conditional upon iommu_non_coherent. Then again I'm vaguely under the impression that we had been here before, possibly even as far as questioning the need for this call altogether. --- v2: FLUSH_WRITEBACK -> FLUSH_CACHE_WRITEBACK. --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -693,7 +693,7 @@ static int __must_check iommu_flush_all( bool_t flush_dev_iotlb; int rc =3D 0; =20 - flush_local(FLUSH_CACHE); + flush_local(FLUSH_CACHE_WRITEBACK); =20 for_each_drhd_unit ( drhd ) { From nobody Sun May 19 11:06:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1683107226; cv=pass; d=zohomail.com; s=zohoarc; b=aNlLS799y4LO1rtqy8OD02HUk05JDrm3ujd14O1UDPaDq5vIENBVH+xphncJfc8gQfIPWI0heOL3M8a2mhQu33WGhO2YxZpUp+vYm5sA9Ke3ybN6Hmbx3dPtS3SQ2RLOTw+N0pPiNPOMnT90JZYX5j8vKKpi/R0ig48D76VXXE8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1683107226; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=sedWtunTwKdoeXFOwuCOGYeVfeFrxIMCs6hPZD4OxMU=; b=gmvlQfxBN2w0l3P2/aaYggpQnaSM2hPJVIPWP38aLWQRuipnvkIQmJ7EY+B0f85asPb4Qg/zdgyE8uIUXq+DYRWLJC4XGYBFIT3Ip8ZT6r7Yy+xSfmMje+MDQ41n+A3bHHGMwaq7icHzECoSePUWSY+yCJSOno0zCxyW6FW41QM= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 168310722633392.2381556720461; Wed, 3 May 2023 02:47:06 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.529065.823037 (Exim 4.92) (envelope-from ) id 1pu94R-0001Kn-PF; Wed, 03 May 2023 09:46:47 +0000 Received: by outflank-mailman (output) from mailman id 529065.823037; Wed, 03 May 2023 09:46:47 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu94R-0001Ke-MX; Wed, 03 May 2023 09:46:47 +0000 Received: by outflank-mailman (input) for mailman id 529065; Wed, 03 May 2023 09:46:45 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu94P-0000NW-M8 for xen-devel@lists.xenproject.org; Wed, 03 May 2023 09:46:45 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2045.outbound.protection.outlook.com [40.107.7.45]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 698984d9-e997-11ed-8611-37d641c3527e; Wed, 03 May 2023 11:46:44 +0200 (CEST) Received: from AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) by DBBPR04MB7980.eurprd04.prod.outlook.com (2603:10a6:10:1f0::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.22; Wed, 3 May 2023 09:46:42 +0000 Received: from AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7]) by AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7%6]) with mapi id 15.20.6340.031; Wed, 3 May 2023 09:46:42 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 698984d9-e997-11ed-8611-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VaR0A5tp8fMh/lROh/quBvvsVXHbFyPUdvPfJjuVjjyQRZZuJBQOo0LApaCs6cVHp87yH2bgp/Sa5Z9DyZIdrKe3+dmqxP47joldFirb/eG+Wy78vsTd7Nu9Xyq2qGYCz/SBsf+07yLLQIX/wjvc2AgUbUCuH8++U8X8zzzqWbKzX0i5A+jXE2XM3MZ3et/QBI7jSCguqOPA7Nxa15NfYy8LC+2DnfISTnsVnsTrHyUPucKgX/q2aFml3F9hDJieEwRnOTDbHQj2A+4ZcSl4tk3S1caj+1J9jleBLTmTaX6yuO6LFtHsgrLD9E1ZMNsoX+JrwW1MNyz45YDDGMsWGA== 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=sedWtunTwKdoeXFOwuCOGYeVfeFrxIMCs6hPZD4OxMU=; b=N1pcB5tDRlN0LlN57NvJ5aF40rJTwHSKxP3kG44dClPY1SNKXzF3A3OqnEY3aotZffpCw4qVAF8TRHHc3TsTQNPkw9LrIgur5VbWFkfMzYcQNEjynCNjRAOX1uc0eEjWOqSAq8RPwY0x4mcLKL+BcJiWLvEIt8JxurkyfbtfiIV1RT3O9Mr1Ehyn0vhlc5WC1sosOuokalGkAjkRQsJY5CYS6C5gxcLdtlrvCawBRfF9LdKElPxFzuAmYPNlHJrbZVih8gg+MrFSZB0XTZ9mWgnAaR4OV1VjJZpt0FuLMmoCfhmx6LS5f2nj5Z1o/TvnyUsFe8bCTIAxjbhOrBsq1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sedWtunTwKdoeXFOwuCOGYeVfeFrxIMCs6hPZD4OxMU=; b=Za8+QXovpFpczNGsYnFlYDIa+np3IluLtYet1NBmSLVW3ZHAk3/gDmRmmW2xManq7N58K1y323lr/9vKQ+OBOrifqwwNpyyhmfek7+4l7kSMIF9xFKnTxIVA54CAWunJjd/vUTpiJktvWLMgvvx/H++yRKfOiA8tYq2kgKsXgeRoBDpMU3wjMZRW/OAmITlA5EbXyUt1102hZAVHDPahDIVrEK0gnBF1UWhFREbYnoP49cqx14ppXHXdOQDVMp6VbHflegDgn2+Yux2aoHpU9jZNLbbJt/iAuSM2rO3+ywb4NesbPqTxcqk2SuukTSzGd1vY2Q+inKVvvvUT2CK6ow== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Wed, 3 May 2023 11:46:41 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v2 5/6] x86: FLUSH_CACHE -> FLUSH_CACHE_EVICT Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0157.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:99::18) To AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB6551:EE_|DBBPR04MB7980:EE_ X-MS-Office365-Filtering-Correlation-Id: c2546fdf-8b07-4440-6e49-08db4bbb4cf0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fpRL9bnhCOhnsC6alSfEVtWe8YJYTJaE2+JHcW9qTIonFtJjgm7EYSzObIfQ1vQRifbWAy3nvRlXyZwI+IrftptNWbY9jM8AuTfbkBg+oa46wl2OwhEt/3DZoaDg92anp+nA/7eEui9hQqhnhVC4/yn0110QK1gPAAK3c6PQTFfMH6ibSEUFgvmClWAbO9HlryKswV4aoqcIfbQxnD55OqiqLC03TyZhHELFhf8U4oGvYCWpDPX5MUdxU9sQIUC22jZIMA06xeXPBkSlHBir+OQ6DAgO4uK9PZMXzCfkZFq36TAU/NCUcabVG1XDwpfBeWHzRjDMsSjmOq0RjVA/bOpCRqgTi1SbAQ9fzp5wOzC0kmDvAckavSRbX3SwKuL0Ej0Ht0N/54vRMj53qmiw2dFUoLSFI+HJDIgsqXu2V6D9kj5hlum75vDItSwcdzlkhgeBpAY20rtqmFaCMb6/OgZjrF1Sa5wslNiIP+Gx0nj2BqkY51JqG+qqHn0l9T10gRqkeN/NomuFcpcw+mEE6wDYIqF0la2FOs1Yyyg/7sgWzw+O306RiHl0QksDfJjjV0FlMuGOoc7gXj8LOU3wiEIJvOwAfGZ8EOVjVz9dH4wt5iYaNWURSDCk3qhQ3VMZpNxp4kHI9oDJJQ14QJwshA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB6551.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(39860400002)(136003)(346002)(376002)(366004)(396003)(451199021)(6506007)(26005)(6512007)(186003)(31686004)(2616005)(2906002)(5660300002)(83380400001)(8936002)(8676002)(6486002)(41300700001)(36756003)(478600001)(54906003)(38100700002)(66476007)(66556008)(316002)(31696002)(66946007)(6916009)(4326008)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M0EvZ1VtNjZCMEg4amc3Tmkra0EvMWFhVTgwbjRSTVByN1FCdTQwYzVWcUg4?= =?utf-8?B?c0NNSHZsS2ZRU2p6S0dYSi90a0RiRUt5OFNVdk1OTWp0VkpNOGhtd0N0dVAw?= =?utf-8?B?SDdVVloyK0ZTaGI4bDFOdUFwVnljdkQzVnNiSlhMMDFtanF3NGpmWUZaaDVW?= =?utf-8?B?UVhITVZaTmhnejdqL20yNWdCdTltcDJYUytIYWZwMWxpQlFTTHRhVU5lWE1L?= =?utf-8?B?R0loUzgwQWU2cldLRjhjWUR3Ym5ncHpoYXdiOVNQZWVZUDVENWJhNUpOeXU3?= =?utf-8?B?V1hJYVBCZWZIOEMwbXZ6SkdvMlE4V0l3M0VBYXJMWUFKalBlcldtNnB3eTN1?= =?utf-8?B?cHFmMUVPTkJpdlN5dHEvZHhVQ0R5ZFIvWlY3TWVFc29EK3cwMlZxSE1lRWlK?= =?utf-8?B?WkNoY3lWRDRiSGxwVEoxL0owVUQ1bFN4STZnUkduQ1lXaWRjWlU3QTExbk5x?= =?utf-8?B?R0RGUlNITVFVbWRyWjA0WmdZOUladmlQQlRubWkvU3ZzbnZWOW9wNTFSelZq?= =?utf-8?B?S1JkblBUUnZ6enU5c0ovdWQvejNucEFJMEVhS3hxVU0vV3FlbGNENVhEWGht?= =?utf-8?B?M3c5THB2YWh5RnlrYzdnUkpHZ2lTR3pYMWFCUExheFF6cEJkQzFmZWJwM2hZ?= =?utf-8?B?UkVlZ0pHNUQ3NkxPeDNOUmoxZVQwcEFzSk1hM21yd3ZrRmZXTDYzVzRybDBG?= =?utf-8?B?MGk4WDZvdFJOMXY1bG5CUnJCbkp4bGxtTlRwdURydGYraEFGUDU1LytueUJF?= =?utf-8?B?UzdtOGZGVTlXVGNGQzNHcXVGM05iTXpxUklIUnROY3o4eUI5OUk4RnpsV3BB?= =?utf-8?B?ZWFUNFlpRFFSWnBqSmJIVDg2WEpNbitUcWlUWTRFS0lIQTJvNG9WQldPVHpT?= =?utf-8?B?b2VaL1hlTGgwaXZmNkhrbUR0U0N6amxzN3hxTnowMW5hMU5rSFZPckp2Rkp6?= =?utf-8?B?WnFNVGZHaTNBWlhkUHlYR3VwdDI4K3A3YUJKbHFFUUVEZmtnQVh1cDhOZGI0?= =?utf-8?B?S3JWTjV6TWZCSHhVV2J5NkRqMXJwamF2ZGYweDBqbmozTGsydytieUNBOUMv?= =?utf-8?B?TlF5L0dDcC90bURvc0loTjFPcTNXdGFOdG50WWpNUEdtZ1JOSFlOVFlQN01F?= =?utf-8?B?elRwRmk4Q0ZUdFQzS3R0cmRUYlBRNXFsNm1UUWdKb3dSVVdIMC8waHlTYTZT?= =?utf-8?B?OUlTakdJSlhYbU11bWE3OUp1V3VSRno1YzZJNGQyd2x3eTZSR25NbkVzTFJQ?= =?utf-8?B?WitZbURxUTRuUXBQZnh2WWRad0ZmMzhJeFFBMmJKeDh1VGVBNFl4RnoyRElr?= =?utf-8?B?WFV3WFJSL2ZuYWZCb2d1L1FTaXB5L0NFaVl2djIwL09yZHA3amQ3a1hXWWlp?= =?utf-8?B?NmZ2NUp4d1hzcnc4ei9nTml4TG5FUkluRW5zR25aVDJXV3FNdUdHd2pBVWpz?= =?utf-8?B?djlkQ1JmWVJCNlowekdpUWZXa1ZVOUJMWnJwaWJzWjh1UUR1RnI3a1o3V1Bv?= =?utf-8?B?blhtK3lZNHNWMXl3cWJIK2RiMEU0aVg1OFFZTUY2MUdJbWdEWG1lVHJyMis2?= =?utf-8?B?MTErajVLQjdnWDZiRU9GZjlPbFpiYTIvWWRXRzgzTTI3NHdBaW1mKzBBaHp2?= =?utf-8?B?bStvVjVoczBSWVo2OFVGNVljaUhZZ3h4bWJxYzNtWU1EaElnSWFsSVNpeHps?= =?utf-8?B?RFBHYk91Qmtzdzg0U3l3cFoxODZYUzZ5aEtsM0pmV3FvYjZrV3doMFA3SzJK?= =?utf-8?B?dFVwMWRwYy9LN1F2UGNkRGQ1VWNqMVFtM3czNWFpMFJwak1NSDA5QlF0b211?= =?utf-8?B?ZkFpOWJWTWdhWkJiN3hDak1BV3dmeG5WZlRYY2JHUW5CZFkwMGYvczRtUmFZ?= =?utf-8?B?T0pzZjhXanZ1Ymx3aGZjSm1JdEkyL1NSS1ZxSnpLN0lhaG1naHFHQzFtc3lW?= =?utf-8?B?NWVSNUpRRHlDUUtkWXQwbHdJaUpDK2dBWEszUjdORDVOVDVheWEvM1Jvdnpx?= =?utf-8?B?TytrRDFjODM4WktURFRCeVlaME5MZDc1aUo3Z1VYRlU0enhwUUwxQUxMdVF2?= =?utf-8?B?SnZQQndKalltVkpjcjJtRzhpd3RmTGsvS21jNnVxaEZPU00xTC9EakdEWUNj?= =?utf-8?Q?SMk1duqpQVan/4rXP6UMAz3wg?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c2546fdf-8b07-4440-6e49-08db4bbb4cf0 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6551.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2023 09:46:42.6204 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oAbjnMzlOUvnn1zJGckmhAAb86n+GubmED2soiX7lSxTEnNaTZRkLr5UBhYyPwfCpCMDaHSs8fAZ12vNbF69VQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7980 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1683107228474100001 Content-Type: text/plain; charset="utf-8" This is to make the difference to FLUSH_CACHE_WRITEBACK more explicit. Requested-by: Andrew Cooper Signed-off-by: Jan Beulich --- Note that this (of course) collides with "x86/HVM: restrict use of pinned cache attributes as well as associated flushing". --- v2: New. --- a/xen/arch/x86/flushtlb.c +++ b/xen/arch/x86/flushtlb.c @@ -232,7 +232,7 @@ unsigned int flush_area_local(const void if ( flags & FLUSH_HVM_ASID_CORE ) hvm_flush_guest_tlbs(); =20 - if ( flags & (FLUSH_CACHE | FLUSH_CACHE_WRITEBACK) ) + if ( flags & (FLUSH_CACHE_EVICT | FLUSH_CACHE_WRITEBACK) ) { const struct cpuinfo_x86 *c =3D ¤t_cpu_data; unsigned long sz =3D 0; @@ -245,13 +245,13 @@ unsigned int flush_area_local(const void c->x86_clflush_size && c->x86_cache_size && sz && ((sz >> 10) < c->x86_cache_size) ) { - if ( flags & FLUSH_CACHE ) + if ( flags & FLUSH_CACHE_EVICT ) cache_flush(va, sz); else cache_writeback(va, sz); - flags &=3D ~(FLUSH_CACHE | FLUSH_CACHE_WRITEBACK); + flags &=3D ~(FLUSH_CACHE_EVICT | FLUSH_CACHE_WRITEBACK); } - else if ( flags & FLUSH_CACHE ) + else if ( flags & FLUSH_CACHE_EVICT ) wbinvd(); else wbnoinvd(); --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -2228,7 +2228,7 @@ void hvm_shadow_handle_cd(struct vcpu *v domain_pause_nosync(v->domain); =20 /* Flush physical caches. */ - flush_all(FLUSH_CACHE); + flush_all(FLUSH_CACHE_EVICT); hvm_set_uc_mode(v, 1); =20 domain_unpause(v->domain); --- a/xen/arch/x86/hvm/mtrr.c +++ b/xen/arch/x86/hvm/mtrr.c @@ -614,7 +614,7 @@ int hvm_set_mem_pinned_cacheattr(struct break; /* fall through */ default: - flush_all(FLUSH_CACHE); + flush_all(FLUSH_CACHE_EVICT); break; } return 0; @@ -680,7 +680,7 @@ int hvm_set_mem_pinned_cacheattr(struct =20 p2m_memory_type_changed(d); if ( type !=3D X86_MT_WB ) - flush_all(FLUSH_CACHE); + flush_all(FLUSH_CACHE_EVICT); =20 return rc; } @@ -782,7 +782,7 @@ void memory_type_changed(struct domain * d->vcpu && d->vcpu[0] ) { p2m_memory_type_changed(d); - flush_all(FLUSH_CACHE); + flush_all(FLUSH_CACHE_EVICT); } } =20 --- a/xen/arch/x86/include/asm/flushtlb.h +++ b/xen/arch/x86/include/asm/flushtlb.h @@ -113,7 +113,7 @@ void switch_cr3_cr4(unsigned long cr3, u /* Flush TLBs (or parts thereof) including global mappings */ #define FLUSH_TLB_GLOBAL 0x200 /* Flush data caches */ -#define FLUSH_CACHE 0x400 +#define FLUSH_CACHE_EVICT 0x400 /* VA for the flush has a valid mapping */ #define FLUSH_VA_VALID 0x800 /* Flush CPU state */ @@ -191,7 +191,7 @@ static inline int clean_and_invalidate_d { unsigned int order =3D get_order_from_bytes(size); /* sub-page granularity support needs to be added if necessary */ - flush_area_local(p, FLUSH_CACHE|FLUSH_ORDER(order)); + flush_area_local(p, FLUSH_CACHE_EVICT | FLUSH_ORDER(order)); return 0; } static inline int clean_dcache_va_range(const void *p, unsigned long size) --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -5193,7 +5193,7 @@ int map_pages_to_xen( if ( (flags & _PAGE_PRESENT) && \ (((o_) ^ flags) & PAGE_CACHE_ATTRS) ) \ { \ - flush_flags |=3D FLUSH_CACHE; \ + flush_flags |=3D FLUSH_CACHE_EVICT; \ if ( virt >=3D DIRECTMAP_VIRT_START && \ virt < HYPERVISOR_VIRT_END ) \ flush_flags |=3D FLUSH_VA_VALID; \ From nobody Sun May 19 11:06:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1683107289; cv=pass; d=zohomail.com; s=zohoarc; b=I6gxUOEyJ1Kb23y+LKw6mAhpbhuo8fWskB7cbtGGQ+xlHbEY/kzlSw8BxRq8bRNUDotUax31KQT40x3rmWxvkpDDUwE+2fcv6aDehwnvt6dscmDcy+e6du2hFRHNXi4B1ho5uLgRKrg+vOQtCU5sfg9VG7jj0H2n9E01rw+Zxo0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1683107289; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KxFwwb3BZGcHC7xshgmJ4kLtF4OIl105qptm5zCcXSA=; b=WiT6b3soKkiD8IV1A8m6VlOTjECAcJn33J2fcFxZOUB6Rxm4mtlXjxvJp8BDOa3DzaAhXrWydEBPvRCOpduND937WT86UwSvII/9oTrbQONMJfb99OlMwUAhdwFbEsA42uJNHafj+iftYkr0hbT4IpMuftng5j9FokjfopweOYk= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1683107289492808.8942708536664; Wed, 3 May 2023 02:48:09 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.529069.823047 (Exim 4.92) (envelope-from ) id 1pu95T-00026b-6t; Wed, 03 May 2023 09:47:51 +0000 Received: by outflank-mailman (output) from mailman id 529069.823047; Wed, 03 May 2023 09:47:51 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu95T-00026U-46; Wed, 03 May 2023 09:47:51 +0000 Received: by outflank-mailman (input) for mailman id 529069; Wed, 03 May 2023 09:47:50 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pu95S-00026M-D7 for xen-devel@lists.xenproject.org; Wed, 03 May 2023 09:47:50 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2053.outbound.protection.outlook.com [40.107.7.53]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 8fb96d3f-e997-11ed-8611-37d641c3527e; Wed, 03 May 2023 11:47:48 +0200 (CEST) Received: from AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) by DBBPR04MB7980.eurprd04.prod.outlook.com (2603:10a6:10:1f0::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.22; Wed, 3 May 2023 09:47:19 +0000 Received: from AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7]) by AM6PR04MB6551.eurprd04.prod.outlook.com ([fe80::768c:6df7:9afb:acd7%6]) with mapi id 15.20.6340.031; Wed, 3 May 2023 09:47:19 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 8fb96d3f-e997-11ed-8611-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nk+Zig6DRm5g/T5AVqh2RtQ8dg9/LyGuF5laszhFvbe1uMMb5mlaJqSHr/WU8pGJ77yS035Hb28sjnc0Q2/prmEKrTMc+E3jDls9fReKBToVOyjN2oQc39Ce4xUNIddkAIj//pvqlsVbw7+o0BLYazQ9W5FG4Uped0cK2setlLk4lKUIXO6ESrbjqLf4qTEvJK4c56u4jM6IirY+Rf1ij7AIa1NxPFGmNGU1CNUhYdXZHT+FJ8SCyaMBQftiNLZ62BqYly2jY0xyImSK594kXeuFzglZo1ht1jxs/xwZZy8F7NwveNFpIQGeUhyU3C9uyjzwCu/K0RcEcr05RsGTPg== 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=KxFwwb3BZGcHC7xshgmJ4kLtF4OIl105qptm5zCcXSA=; b=EvRaJti7qqk2J+WJxPzZjlQXlhvK+HeaG+lI9+Y1K2xn44lZ+ndYG+jU9OA1o7O4nYp8BnqyGRI0b/77JT9ULtMpDhBSc5Gl4oue4WOlqcUq4b7XFhPYrax4/MqNbTqJlXUyK0YXNUNTonIfOU3S7fBz+AAOigxySRmQUQ8Q0K+7MG8NzpGYF/GybQSBo/0HW+GMzI9ZG7vFbp0DCIIYMcz1FSdIKDyH2yM5sB3R+qb5b085IxctWm0F7pHMliTgh4hVVVo3yiS0vQZqyMzvDKUupRUF3lecc4tmPZVgmG1MYcGhvuYHt33dZvAVApbZogfwoQvbVeQDgQgpZ0DOuA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KxFwwb3BZGcHC7xshgmJ4kLtF4OIl105qptm5zCcXSA=; b=4Tpn1AY+3Nx41MSek8MHxr+5itCcZ7tF23iHge2xklIIplLYV1eQ3k9heNhYzehSRfLs65OHGiVAlOid4d2m5YEjNh4B1lIyU266kJAlqfQFLM3hUPC+Acw60PDJ7fMpPBKeTbMtbmWfj/U3AyGWv2rocydVdNdFxktx5IhsscRSgGEpYOSI3NlDs2OT/RqAyMZAOwT4RIyi0WEux0WateV//cylzMA7PLRCilCaudcJq3SQt4R5tpbAIW49RoRyBBPV0yYIy2FP7KcMk3zw4JR2hgXAyKSuUM2kHEI42cMCXlKi7t6qt+4e7SyYcJB/iLCbB/R/mX9lKOqUMkDY/A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <9274fbb1-c1be-9570-ecfc-8f0ac9a1f42b@suse.com> Date: Wed, 3 May 2023 11:47:18 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v2 6/6] x86/HVM: limit cache writeback overhead Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , Kevin Tian , Jun Nakajima References: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0157.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:99::18) To AM6PR04MB6551.eurprd04.prod.outlook.com (2603:10a6:20b:fa::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB6551:EE_|DBBPR04MB7980:EE_ X-MS-Office365-Filtering-Correlation-Id: fc04887b-0423-4823-8252-08db4bbb632d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /yNMJBKt644QL+6Shjl0FzLE8bJGk7zcFnsk+9lyD1eO8QyJKn9AsTHj6yhQpGMXOxwDhJsft+Vh0WttnFSst+ZeZozBie4UMoJifjPQlhYiJFINjVYF3VjY//lam9Z/JrB6cgIKM/iJPG5ivecenOkgyqp5L5/ZcJgz1PQX/CzEOAPBy33JS9WhXK9F7SJc8EmG8CBAwkyddrczQta6AzNDp7oGo9TpfLLNb4lzmFy1t0qIp6eXckyE7CVGid4CfRUxG3Fhbtrhc+juoiiLOsb65JKxa1vzSOjyMW1/oa8xTY6t+qky4J/JOAmysgDBaRVJuwWkreYBnoM3D0hUM7JifTLkyo79OS4BuJcjpTvEFDFnlQhF4rTPj37Ba1yrzUsRJr5F7Q2HGsrgEBi4rYKgxsGd0rBiNLTXcGop8zNwjBjMWE+6jrYeHSh9D3WFTM68aq79lURWF8+/Ee39ZY1SQC637A9n+ilPNyYJUq4y3AHgh7D/rsTGE78/xOdP7zW9oH7OoOf158x5q4jv5bgOopvh2R+my6mB/CwHgicBNlTQNN45h6003oUbujkb7stmvreJVrAr1vze6VuSjou9SPLBisAT1Hs5wCctX4g97N/VRXTa/apvOqTmgFJxupQ/ybBGq/92QhS4LKWqLg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB6551.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(39860400002)(136003)(346002)(376002)(366004)(396003)(451199021)(6506007)(26005)(6512007)(186003)(31686004)(2616005)(2906002)(5660300002)(83380400001)(8936002)(8676002)(6486002)(41300700001)(36756003)(478600001)(54906003)(38100700002)(66476007)(66556008)(316002)(31696002)(66946007)(6916009)(4326008)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WHFZTG9pMHNKQkZlT21TTWVGMkVnMVkrNUpBeXhTWTZWdjBKc1lQZWg5QmtC?= =?utf-8?B?U2dkdVNiamRNb2F3RTdUeDh2Y2Jzd3JyRC9KYnJ2K2cvUlJKTVlOL2lFRTdk?= =?utf-8?B?MlBZM0VwdVNBUDVndHRVT2tQZGtZZGVwM3p0VFN1YkNxOHpJNThCMUtPdURF?= =?utf-8?B?b3djQlhkSTQ3UytjMmpoWmhRTzh5clJvSE9va0tFbXZkLzRZa2Ficmt1NzBr?= =?utf-8?B?SnNFNkU3ZWJkM3hVSE1aWFYvM0hKL3VXNWp5SW1qYncrcW5PMGNNaWpsTXVI?= =?utf-8?B?Q0trZGUzZ1VaSnRBYU1RcjN0cEUzaW1MaURWVngxakVUMXBSSTFrV05JZUNa?= =?utf-8?B?MkJuZVIySXl1YTVtZEEvaXJXVFl0RXhlQkN2U05wMjlheGhhL09nSjQxbFNq?= =?utf-8?B?ajB3NVY2NjJRK1p1V0JlSGFEVXp3QURsM3Z4SDNZOXo3WWwrWkYwTnJuOGpM?= =?utf-8?B?TlVhc1JZOVdyTTU1ZUJSdi9WS1JTQ1pvQjFXMjNweGdoWURGcmtIcVd1ZUkz?= =?utf-8?B?cXcvUlZuS1d1Q1BFQ3NvWXl4YnE5Z0hsVTdWTU1xeEF3N2ZUaFJPN1hVa21K?= =?utf-8?B?V0pmVGtmTklLVHdVMzRHTFJLenNOQVo0SlowSTg1WnpycmxSeWcvQWJDOFVw?= =?utf-8?B?UXhmcW5BTGV1L2NlKzl2WVpzNHp6ZCs2NEJXYjU4S1NLN1c5RmNjSjR2OUdB?= =?utf-8?B?ZnJWT0tXZ2cwbmM2dWk5bmNZUlhMTVlBbG9jalZFaUJTakhVaFBvRWhhdzhH?= =?utf-8?B?a21SSWFUNWo3aUpTSUlKdDVYTm1ZZE9PSTdJUW5NWmFnYUxZUVljR2NtbHF2?= =?utf-8?B?MWpJN0thQktvL3R1cEFkMjJGWmFzMjV2bldNVXQvMFVkZ0lnMXdBUndqQWhG?= =?utf-8?B?VFFuWXh3RFMvVzNqTXBNOXd1b3ZVOW9WZld0Nm0rSTZnUzJEbEp3bENWcUhs?= =?utf-8?B?VGZNLzFUV2FzOTNKUXZmQlhIVWExeFUyS2FjOFdMbFhrMEJObkhaNFhiZ3B5?= =?utf-8?B?NG1wNEhmTVlHa0gwUkpXNVN0dnU4blZOU2M4TEpOSUR2S3NNaTVRVVcrWDBO?= =?utf-8?B?S1VGRnZRVmFJb1RWRTFDQURvc1ZxYjdRWlFXRzhaMUtsNDR5TVVsbHpZbUN0?= =?utf-8?B?ZXhpZEpxcDRLYno5MDdkdkVoWFNCSUhja1FKQ3dyWEU2RURTWHVTbm0wYXRt?= =?utf-8?B?UGZXbU5UWTVhN0JDU2d1UGM4RVc4SEtjREJmakdhZlhtK2RWM2drMlN2K2Uz?= =?utf-8?B?R2R2Q3NYdXMrWTI2NjJoVUhaVkpoT0pZVFNmZzMrUWtxc1E5R1VrQTBHUC9t?= =?utf-8?B?eGR4b08vZVpWblBCSFRJRFJzRmxPYStRQ09Vazl2WVB1TmtyVmJzK2pEQkp6?= =?utf-8?B?RmZhYVNCMkpBdEpmbE44Z1UvdzRLY0F4RVZRQmEwUGhuZkpGNlNteTlWckty?= =?utf-8?B?SXJHaUttZjQ2WG51UU9aS3cyQXhLWHBwbTlWTGxwMVV1d3NvMjRsczFENEdh?= =?utf-8?B?eHJVeEZ2Y2lCSXhGTVVDN2crT3RrenMyaDNSN3MvS0xTeHhxa2wwbExiL0ov?= =?utf-8?B?NzhwT2hGOEFjMEEremVieXpDM3lzRUtIaElmc0tRMlVLcVZ0SkwyU2hENU9w?= =?utf-8?B?QUR3MExyZkhTVU1wam45cFEzR3ZwMHBHSlg2SU5xb2NMR2IxcnZvVjlCNFlJ?= =?utf-8?B?R214WWxFY0pOYzduTmRMOTAxekRlNXV0K1BoUHVleG1QT1dzR2s5UHI1U1JQ?= =?utf-8?B?RWVvOGF4NktETExEaG9sd2VNYU9PVFk4VUxNK3hiVDdrNy9FUG5hdG1VcU9H?= =?utf-8?B?ajhaRmczdG93ZVBMclh1QnNMOXREamM1ZkFyK1I4MmRqWHJESkQ2WjBSZzFV?= =?utf-8?B?aEU0S2owMWpEclppdm5DK2hTSzZvc0tacEFHYnhXZitvVjJZRUpJODFsYnJD?= =?utf-8?B?SUsrbXIvWnpTYUQ2WHBybnZRQ2F4K1pGdk8vVVZCVEpqZVRzM0kxMzJKc2x4?= =?utf-8?B?SVNQSXVFSkIvVnNWTklaREtzbWk2cDBuWUFVWkRjN0RoNCtyQWlkb2ZaNjJq?= =?utf-8?B?VEgwNitISTFkSlVHTUV3K2F1NE1LcVRuZDVLdFl0QncvVmNkK0VqZERPY1Qr?= =?utf-8?Q?OZaxGm2A3BCEUCFQjdMckCsvD?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc04887b-0423-4823-8252-08db4bbb632d X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6551.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2023 09:47:19.9090 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: pS4CniR+agOgejHU9tQB0i7PoAuRN3b2C3kIYP+c35gMjDm0T6Q3bB9l3l8HGnmYyRWVNqpKt3klmdqIyG3Fmg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7980 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1683107291144100001 Content-Type: text/plain; charset="utf-8" There's no need to write back caches on all CPUs upon seeing a WBINVD exit; ones that a vCPU hasn't run on since the last writeback (or since it was started) can't hold data which may need writing back. Signed-off-by: Jan Beulich --- With us not running AMD IOMMUs in non-coherent ways, I wonder whether svm_wbinvd_intercept() really needs to do anything (or whether it couldn't check iommu_snoop just like VMX does, knowing that as of c609108b2190 ["x86/shadow: make iommu_snoop usage consistent with HAP's"] that's always set; this would largely serve as grep fodder then, to make sure this code is updated once / when we do away with this global variable, and it would be the penultimate step to being able to fold SVM's and VT-x'es functions). --- v2: Re-base over changes earlier in the series. --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -537,6 +537,8 @@ void hvm_do_resume(struct vcpu *v) v->arch.hvm.inject_event.vector =3D HVM_EVENT_VECTOR_UNSET; } =20 + __cpumask_set_cpu(v->processor, v->arch.hvm.cache_dirty_mask); + if ( unlikely(v->arch.vm_event) && v->arch.monitor.next_interrupt_enab= led ) { struct x86_event info; @@ -1592,6 +1594,10 @@ int hvm_vcpu_initialise(struct vcpu *v) if ( rc ) goto fail6; =20 + rc =3D -ENOMEM; + if ( !zalloc_cpumask_var(&v->arch.hvm.cache_dirty_mask) ) + goto fail6; + rc =3D ioreq_server_add_vcpu_all(d, v); if ( rc !=3D 0 ) goto fail6; @@ -1621,6 +1627,7 @@ int hvm_vcpu_initialise(struct vcpu *v) hvm_vcpu_cacheattr_destroy(v); fail1: viridian_vcpu_deinit(v); + FREE_CPUMASK_VAR(v->arch.hvm.cache_dirty_mask); return rc; } =20 @@ -1628,6 +1635,8 @@ void hvm_vcpu_destroy(struct vcpu *v) { viridian_vcpu_deinit(v); =20 + FREE_CPUMASK_VAR(v->arch.hvm.cache_dirty_mask); + ioreq_server_remove_vcpu_all(v->domain, v); =20 if ( hvm_altp2m_supported() ) --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -2363,8 +2363,14 @@ static void svm_vmexit_mce_intercept( =20 static void cf_check svm_wbinvd_intercept(void) { - if ( cache_flush_permitted(current->domain) ) - flush_all(FLUSH_CACHE_WRITEBACK); + struct vcpu *curr =3D current; + + if ( !cache_flush_permitted(curr->domain) ) + return; + + flush_mask(curr->arch.hvm.cache_dirty_mask, FLUSH_CACHE_WRITEBACK); + cpumask_copy(curr->arch.hvm.cache_dirty_mask, + cpumask_of(curr->processor)); } =20 static void svm_vmexit_do_invalidate_cache(struct cpu_user_regs *regs, --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -3710,11 +3710,17 @@ static void vmx_do_extint(struct cpu_use =20 static void cf_check vmx_wbinvd_intercept(void) { - if ( !cache_flush_permitted(current->domain) || iommu_snoop ) + struct vcpu *curr =3D current; + + if ( !cache_flush_permitted(curr->domain) || iommu_snoop ) return; =20 if ( cpu_has_wbinvd_exiting ) - flush_all(FLUSH_CACHE_WRITEBACK); + { + flush_mask(curr->arch.hvm.cache_dirty_mask, FLUSH_CACHE_WRITEBACK); + cpumask_copy(curr->arch.hvm.cache_dirty_mask, + cpumask_of(curr->processor)); + } else wbnoinvd(); } --- a/xen/arch/x86/include/asm/hvm/vcpu.h +++ b/xen/arch/x86/include/asm/hvm/vcpu.h @@ -161,6 +161,8 @@ struct hvm_vcpu { struct svm_vcpu svm; }; =20 + cpumask_var_t cache_dirty_mask; + struct tasklet assert_evtchn_irq_tasklet; =20 struct nestedvcpu nvcpu;