From nobody Tue May 21 03:36:08 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=1660827862; cv=pass; d=zohomail.com; s=zohoarc; b=O3Jsv+CpNrJnw2AHlE4nhC+Y12Ecm7oQ0DLKohmi2vkx0VBSt+MjDaZpcbrcIm/54IVpcraZzrlkEaFQsL39HMEEqPJeOqhc1ZvesfcbUaaO5G7co686SOrdzNubWv2YXAgBsP8NweVyloaZ4Mho2aUSMqcJawy6YUVzDhwaaRE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660827862; 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=GufiTphKbXdjH/yVuLYpS2HC1RVzDPNWpFYxqi2ghMA=; b=QaGRSewY7vhcFp2ftKfK36ZOPlD5TV4VGqjhZs8zOkZru8mFbWSXDMriRMNMvKKvWGJ4JR6bgzFDzpybfIwkAzKi0l944B2pAUu0orHDRVP9ZgNDx2elyqa+QhsRUazsBfWeSWFhYT/glCQR7kaM7PO3cm8Q4Sb1bcOO6XlmSqI= 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 1660827862444955.8996605040097; Thu, 18 Aug 2022 06:04:22 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.389509.626468 (Exim 4.92) (envelope-from ) id 1oOfBU-0006do-1i; Thu, 18 Aug 2022 13:03:40 +0000 Received: by outflank-mailman (output) from mailman id 389509.626468; Thu, 18 Aug 2022 13:03:40 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oOfBT-0006dh-UK; Thu, 18 Aug 2022 13:03:39 +0000 Received: by outflank-mailman (input) for mailman id 389509; Thu, 18 Aug 2022 13:03:38 +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 1oOfBS-0006az-82 for xen-devel@lists.xenproject.org; Thu, 18 Aug 2022 13:03:38 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80078.outbound.protection.outlook.com [40.107.8.78]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 2c081b30-1ef6-11ed-9250-1f966e50362f; Thu, 18 Aug 2022 15:03:37 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by VI1PR04MB4685.eurprd04.prod.outlook.com (2603:10a6:803:70::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.11; Thu, 18 Aug 2022 13:03:35 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5525.010; Thu, 18 Aug 2022 13:03:35 +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: 2c081b30-1ef6-11ed-9250-1f966e50362f ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P4gNg7b7zR7aDjCYNc0hiFjXe4vZyuRLwI/oPr6341zraBkwBTJcr0XVe/2dNYCihYYFOYhMbX4nmWr1vE117YZU7x483oD+6Xr8x2MbAJh9CPMeV3BW56hP7pn01PiPlDdL8bRpRz7nUFHQg+HahYKAK2+ClWJXNFEYIjy5fCu2XtIkMc1yz+btrcybKw57099OYOY81crfv5cqEQ+HY9xpOga8U9zZi5hmveg7EqeJlI82J+C56g+GcoeZQ+xZQZ7fZTf0uTYiLJBAmGYveub2nIdMRkz5F1HOKXmikWPUHZrBYlpk5MXtusvI8AksAzMUweroOa1o87LwDMRSzQ== 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=GufiTphKbXdjH/yVuLYpS2HC1RVzDPNWpFYxqi2ghMA=; b=Ne7mb8pAlwXYmjpqmvhgNZmYLa2BUhPGE0GXh+ipP1TP4ZKbXuwR4x/SbEbNH75Upn3l+G//FIOHfr2QYHHn3zLG1JwYxlw8TQoNQKz8op0vttwGtnPhKWGZk/vipliBXEBnVAWAj1ExxkGtZt7ERSv53NEOypHzevwCqguSKxFLWKVY5mN3Vih9fpTkZ/+ilLSOw6QJrMhP5NOatpC4qfywjkuzJR26Ony8u+nFGSMzAHnZh19TghLah0nznrh6l1UmLJy5SwdH3oRj8C4l2z+sL3Af6UIecwZx0jvBsKpASyUbujRvgwS9twVfBl9j+xCm+7LREqyIte3CCtWLqA== 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=GufiTphKbXdjH/yVuLYpS2HC1RVzDPNWpFYxqi2ghMA=; b=pP3VLR++0RCltSLCpcGYQhNywKrJPPAcNFi72vJpq9PDtd85Qct4mLIsYiovtrdGyrJooOBwdK+/uKrFcEUT3hhxHit9vz9w6WeLo73fUmVci9GxVdDAYLam4A6/yNzY6o/yTXVYmnlW85rzvLw9DYzmbEdd35jTlRsjHPE+dpP+rQk218ITGRr6KNxv7j0Q1DiuiqBIGj2457JMgvKi93EBTQ+qfZ21kQYonp5o/rsTgDxFLt5tNHILOXdbF/H3jS5TAFetOJOHcRY71q2aMZyqXXICT8dKfaaMqUF0XvYt/71Zh76Zv3xB5CiUWRwnWJ6YGefKbZ6Ir7uprOY75Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <0690742b-21c8-e5b6-e8ff-5d4709e0c3ee@suse.com> Date: Thu, 18 Aug 2022 15:03:33 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: [PATCH v3 1/5] x86/mwait-idle: add 'preferred-cstates' command line option 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: <84200e9c-ee22-c240-826f-6c7006c0ef57@suse.com> In-Reply-To: <84200e9c-ee22-c240-826f-6c7006c0ef57@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS9PR07CA0042.eurprd07.prod.outlook.com (2603:10a6:20b:46b::29) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6cfbe721-0c7c-4cea-38c7-08da811a0f8f X-MS-TrafficTypeDiagnostic: VI1PR04MB4685:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ygqnQ6CX8i4xFVKwjnlRU5woUj2VyuSF8Ns1gUEZmVtPDFQI+9aE6UeaPQ433Ne+P/pxgmOrtqkp4m3XJBlyrfXYjxAGtCg0WASXxkWekOiimW0bDSwjW4Ki23AKim3zkC7yaBAsR8dYl+c5QTxFejAABiCx/xJSeZVD4PWH/u3RLRIwFiZyi4zySZL7SDZNqAm4CV9JMlt63TZiclCuUg9xE0xhWSymCIP0Oy4qhwJGxbFi3bI7+qNfXqoNTfMWARdH0ZWLvIVQeQsHge0FNBFoDJVc3sC4d8TcaJsnnRZCOxaRm+U6Sx5Ancs8A72eCa5XqBV4YRP0LWKtFiAVWuER1ZPxf5el2SozGgCBh//0u9/S4g2Cge2kxsJjAkCPVQLz+eCmIx1JsZOe9bZUn9j5oFTMqkwoeRM1IAg6SMhbNubm8IWaO1D0VUeZbIf3lpoyBvdRlOgPEEun+o6CnMkep6C/2dAgJ1SV7ZOWW86/snuU3qHCvwcW8o2nmgU3GJ8ptSQn5eT0gm+TwLgRytAen/0Cr3VIESUbTo5wxqDNkf8XTZV2WEYGUtdijbAGJxcdyxlUgLFxLgQBTCb5iVYTlt9oG2DyHGdJoJOEuBBCh0YVmDn74dlCAvPISkqCCsu2UeQy1kIas23ByaEMuzG7IBX1aR5mmuMtgMDI78D+gndcNV4VSkRKSHNv0MSvz/1IDJQyJesmAxomwIxitsjjUEfGSW6/dFpl3uLd5b2hfzykL32ieGkWdAONNrmpeGcV882eCC6IN4cm9nw1n99wHpwJOX2cPS3Z2DJab3o= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(396003)(376002)(39860400002)(366004)(136003)(346002)(31696002)(86362001)(38100700002)(83380400001)(186003)(2616005)(31686004)(36756003)(6506007)(6486002)(54906003)(26005)(316002)(41300700001)(478600001)(6512007)(6916009)(5660300002)(8676002)(4326008)(8936002)(2906002)(66946007)(66476007)(66556008)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VjVkS0dTdVhBcEd2NDBrb2kxV055MXE2ZVY3b3BwNWx2UnFrU0Y0TFRsU2hp?= =?utf-8?B?Q2JBRHdjUGtWSlRCWDl4TC9lZkxjNTgvRlN2TG42OUkzOUZyTDc3SkZSTTRs?= =?utf-8?B?Z2w3TVRmSjBpU3dQYTBkQWFRb0lIK29oSkFtLzJET0NhNDIrU3JEcCtxd0VE?= =?utf-8?B?Q1NxQUNJUkZveko5VWlFMTRHVkh2RXpWUXBXY1h4S1Nkc1QrVnJqYXEzWUFC?= =?utf-8?B?NnZCbnREQVYrQWtJckRPcStDdlhxWFNacExrcGx2Uk10eEhIajlXWW10U25U?= =?utf-8?B?dGpDTmhkNzZxUnVUZ0NXZGFEcXl0Vkd4RHpiaDVsRzYrY0N1QVhrVktaK0Y0?= =?utf-8?B?SmRuNXRLc3Q0cEt0SmExT2RFS0hCZzJ2OUtQV3EvY2hkVVNjdlNiYzQwd2xG?= =?utf-8?B?U09HK2FrbTJ5dnRvbG44YWNMYmtWbWV5d21lTXY5VXJmN2E3a2lGNkNvL1VO?= =?utf-8?B?RUc3bTVtOVpNZ1dXblR6TFRYSERSMVlwTXE5elRSUGV2VmhIMm9URG1JbmNm?= =?utf-8?B?b1lKQ0hqNUVUTG05V1lMajFLbkdEN2tTRUFRa1dDQ1grSTkxTzFCNHIra3M3?= =?utf-8?B?V3Z5RUxUNFU5SXFGK2lyeGRlbnl1WGNLakRXK2xWbGRKd2NRbytOVTllcU05?= =?utf-8?B?eWRjdldUV1NacmQxK3pTYmpkeVVrN2k5WG4rZWk0bU5DNERldS93VlpJVFhl?= =?utf-8?B?dDZPczNnOGMwZGxkbnFFMFJvNEdhcG5mUVJ4TGxzWjBNdlBQajRMeEpGSm1l?= =?utf-8?B?ZnhHQUNHNHU2L2p3NlpVRURHSVhMQWowbHhia1N2ekxVVWNKYmcwd2U5eGxy?= =?utf-8?B?M1dGeUdVSTZlbjdkNU1lN1hDQzNlUGxEcitpTk1IZEc2MU9OQ2xwZHYvODlo?= =?utf-8?B?NVRnYVNXWGZ6dmh2aWMzd2dMdzJiMVF5OEdMTUtOd3hQSjJGZVJxOTdGaGRL?= =?utf-8?B?QTFTckFaYytsMkRTUSswazYzNXRKUGZZUGVRaVlyaHVsUW9LYlh0bGg1RnJl?= =?utf-8?B?MFhiQjNoYWlrazRLdmRKdmdKVmMxNEZ3ckVCcnM2eW0yYzRYazNOT3ZUZzVH?= =?utf-8?B?Vk5GMm9PSzVsWWJ0a0dERWpoSWxqcjcvdldCWXlmYVJrd2krQ2lWL1I1UHBv?= =?utf-8?B?cE02TXRlbTl5aDVicjFJSVEzSDFLbngzeHdMZDQ1V3o3c3FteXlmc0hyUjdG?= =?utf-8?B?b0hXTkNDMk42Yyt2aTFscms0MGhOYUtpQlk4SEJXbmtoSFBvV0QzdVBmTVhK?= =?utf-8?B?YnEvUjZhUU1UUlhSc3lRZFZvUG93L1NWdlFoQmZsSDVLeDNwczd1bG5JWmJn?= =?utf-8?B?bC95SmV4VUlXN0JnVnJJSnBzUnlyOXJlV2FzQzVNNHhGaVVMTllRL1dHZDJz?= =?utf-8?B?M3RXR0FIdXNYKzUrTG80TmNDTUc3Und0bmpyNGVERXhwL2p5NFhqY3N4QkY1?= =?utf-8?B?Y001cVBHRDhKcTg5NkZYRGxnNGp1QmFwd0h3REZsaTNzSG4vNEI0ZkQrekM3?= =?utf-8?B?bkNCQ3J4b2xGYUxIcEFxVE1yRWw4dWRzMzROODBRbDhhZzFaY2l5Y2R6bSt4?= =?utf-8?B?b2lXdGd1NHh4d0ZpL2NlUnNIQ0NGcTFWLzRlQzlPZjhpRjFPanNYY1NxNGo4?= =?utf-8?B?ME1TSEVTWWYvZ2NuTW1namZIYUF5ODB1bi9waUtYSFBnTFlXamlGYTdIaThp?= =?utf-8?B?NytMUi9rUHc4d2R2VzMvUGcyU0RlYjlSNVFYWGFQeUNDeTRmWUk5QmhFZjhR?= =?utf-8?B?ZldsNGhpeUJCV1NOY0plOFY2M0N6YWp6UXRYeW5EQWNTcFlXK1JqdTA2TVJs?= =?utf-8?B?ck5lT1Z2RVU0MVVxVUN4NmFXQXZqdXZUV3ZuK3FkMHlCdW4zeHZnQ3UwL2FL?= =?utf-8?B?TjFOVUI2ckY3aE9ETTRuM3hKZ2dMalVsRU8yYTl1WnhJSEJiSXZpcXpJQ3FW?= =?utf-8?B?a24yQjFkUjR5TE9GQmdTZm5SMGpqdW1ONlcvZGZXM0NuNU5BWUFqQzRaNkx6?= =?utf-8?B?bS8xRG53RW1ndGE3cHBuenRrcWJrbG5tNnpaYk9acjgrckthU3JKZVY0RmN5?= =?utf-8?B?YmhXRkYxbUdZMmY5akxLdjZoczdnc2dNR0s0UnFyR1ByUCtnS1hEOXBncHYv?= =?utf-8?Q?8cYvkmPTyoKjLMfNX0yDhKS56?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cfbe721-0c7c-4cea-38c7-08da811a0f8f X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2022 13:03:35.7617 (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: HuNVhqFx8yuhEW6BM77m/UbIdOAvJoLb4W3/NtKFFk00zezH0zEZ9yYLCZTAqr3O8nSHWucdKDAcppVWPsqbfA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4685 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1660827864384100001 Content-Type: text/plain; charset="utf-8" From: Artem Bityutskiy On Sapphire Rapids Xeon (SPR) the C1 and C1E states are basically mutually exclusive - only one of them can be enabled. By default, 'intel_idle' driver enables C1 and disables C1E. However, some users prefer to use C1E instead = of C1, because it saves more energy. This patch adds a new module parameter ('preferred_cstates') for enabling C= 1E and disabling C1. Here is the idea behind it. 1. This option has effect only for "mutually exclusive" C-states like C1 and C1E on SPR. 2. It does not have any effect on independent C-states, which do not require other C-states to be disabled (most states on most platforms as of today= ). 3. For mutually exclusive C-states, the 'intel_idle' driver always has a reasonable default, such as enabling C1 on SPR by default. On other platforms, the default may be different. 4. Users can override the default using the 'preferred_cstates' parameter. 5. The parameter accepts the preferred C-states bit-mask, similarly to the existing 'states_off' parameter. 6. This parameter is not limited to C1/C1E, and leaves room for supporting other mutually exclusive C-states, if they come in the future. Today 'intel_idle' can only be compiled-in, which means that on SPR, in ord= er to disable C1 and enable C1E, users should boot with the following kernel argument: intel_idle.preferred_cstates=3D4 Signed-off-by: Artem Bityutskiy Signed-off-by: Rafael J. Wysocki Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git da= 0e58c038e6 Enable C1E (if requested) not only on the BSP's socket / package. Alter command line option to fit our model, and extend it to also accept string form arguments. Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- v2: Also accept string form arguments for command line option. Restore C1E-control related enum from Linux, despite our somewhat different use (and bigger code churn). --- a/docs/misc/xen-command-line.pandoc +++ b/docs/misc/xen-command-line.pandoc @@ -1912,6 +1912,12 @@ paging controls access to usermode addre ### ple_window (Intel) > `=3D ` =20 +### preferred-cstates (x86) +> `=3D ( | List of ( C1 | C1E | C2 | ... )` + +This is a mask of C-states which are to be used preferably. This option is +applicable only on hardware were certain C-states are exclusive of one ano= ther. + ### psr (Intel) > `=3D List of ( cmt: | rmid_max: | cat: | cos_= max: | cdp: )` =20 --- a/xen/arch/x86/cpu/mwait-idle.c +++ b/xen/arch/x86/cpu/mwait-idle.c @@ -82,10 +82,29 @@ boolean_param("mwait-idle", opt_mwait_id =20 static unsigned int mwait_substates; =20 +/* + * Some platforms come with mutually exclusive C-states, so that if one is + * enabled, the other C-states must not be used. Example: C1 and C1E on + * Sapphire Rapids platform. This parameter allows for selecting the + * preferred C-states among the groups of mutually exclusive C-states - the + * selected C-states will be registered, the other C-states from the mutua= lly + * exclusive group won't be registered. If the platform has no mutually + * exclusive C-states, this parameter has no effect. + */ +static unsigned int __ro_after_init preferred_states_mask; +static char __initdata preferred_states[64]; +string_param("preferred-cstates", preferred_states); + #define LAPIC_TIMER_ALWAYS_RELIABLE 0xFFFFFFFF /* Reliable LAPIC Timer States, bit 1 for C1 etc. Default to only C1. */ static unsigned int lapic_timer_reliable_states =3D (1 << 1); =20 +enum c1e_promotion { + C1E_PROMOTION_PRESERVE, + C1E_PROMOTION_ENABLE, + C1E_PROMOTION_DISABLE +}; + struct idle_cpu { const struct cpuidle_state *state_table; =20 @@ -95,7 +114,7 @@ struct idle_cpu { */ unsigned long auto_demotion_disable_flags; bool byt_auto_demotion_disable_flag; - bool disable_promotion_to_c1e; + enum c1e_promotion c1e_promotion; }; =20 static const struct idle_cpu *icpu; @@ -924,6 +943,15 @@ static void cf_check byt_auto_demotion_d wrmsrl(MSR_MC6_DEMOTION_POLICY_CONFIG, 0); } =20 +static void cf_check c1e_promotion_enable(void *dummy) +{ + uint64_t msr_bits; + + rdmsrl(MSR_IA32_POWER_CTL, msr_bits); + msr_bits |=3D 0x2; + wrmsrl(MSR_IA32_POWER_CTL, msr_bits); +} + static void cf_check c1e_promotion_disable(void *dummy) { u64 msr_bits; @@ -936,7 +964,7 @@ static void cf_check c1e_promotion_disab static const struct idle_cpu idle_cpu_nehalem =3D { .state_table =3D nehalem_cstates, .auto_demotion_disable_flags =3D NHM_C1_AUTO_DEMOTE | NHM_C3_AUTO_DEMOTE, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_atom =3D { @@ -954,64 +982,64 @@ static const struct idle_cpu idle_cpu_li =20 static const struct idle_cpu idle_cpu_snb =3D { .state_table =3D snb_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_byt =3D { .state_table =3D byt_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, .byt_auto_demotion_disable_flag =3D true, }; =20 static const struct idle_cpu idle_cpu_cht =3D { .state_table =3D cht_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, .byt_auto_demotion_disable_flag =3D true, }; =20 static const struct idle_cpu idle_cpu_ivb =3D { .state_table =3D ivb_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_ivt =3D { .state_table =3D ivt_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_hsw =3D { .state_table =3D hsw_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_bdw =3D { .state_table =3D bdw_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_skl =3D { .state_table =3D skl_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_skx =3D { .state_table =3D skx_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_icx =3D { .state_table =3D icx_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static struct idle_cpu __read_mostly idle_cpu_spr =3D { .state_table =3D spr_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_avn =3D { .state_table =3D avn_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_knl =3D { @@ -1020,17 +1048,17 @@ static const struct idle_cpu idle_cpu_kn =20 static const struct idle_cpu idle_cpu_bxt =3D { .state_table =3D bxt_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_dnv =3D { .state_table =3D dnv_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 static const struct idle_cpu idle_cpu_snr =3D { .state_table =3D snr_cstates, - .disable_promotion_to_c1e =3D true, + .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 #define ICPU(model, cpu) \ @@ -1241,6 +1269,25 @@ static void __init skx_idle_state_table_ } =20 /* + * spr_idle_state_table_update - Adjust Sapphire Rapids idle states table. + */ +static void __init spr_idle_state_table_update(void) +{ + /* Check if user prefers C1E over C1. */ + if (preferred_states_mask & BIT(2, U)) { + if (preferred_states_mask & BIT(1, U)) + /* Both can't be enabled, stick to the defaults. */ + return; + + spr_cstates[0].flags |=3D CPUIDLE_FLAG_DISABLED; + spr_cstates[1].flags &=3D ~CPUIDLE_FLAG_DISABLED; + + /* Request enabling C1E using the "C1E promotion" bit. */ + idle_cpu_spr.c1e_promotion =3D C1E_PROMOTION_ENABLE; + } +} + +/* * mwait_idle_state_table_update() * * Update the default state_table for this CPU-id @@ -1261,6 +1308,9 @@ static void __init mwait_idle_state_tabl case INTEL_FAM6_SKYLAKE_X: skx_idle_state_table_update(); break; + case INTEL_FAM6_SAPPHIRERAPIDS_X: + spr_idle_state_table_update(); + break; } } =20 @@ -1268,6 +1318,7 @@ static int __init mwait_idle_probe(void) { unsigned int eax, ebx, ecx; const struct x86_cpu_id *id =3D x86_match_cpu(intel_idle_ids); + const char *str; =20 if (!id) { pr_debug(PREFIX "does not run on family %d model %d\n", @@ -1309,6 +1360,39 @@ static int __init mwait_idle_probe(void) pr_debug(PREFIX "lapic_timer_reliable_states %#x\n", lapic_timer_reliable_states); =20 + str =3D preferred_states; + if (isdigit(str[0])) + preferred_states_mask =3D simple_strtoul(str, &str, 0); + else if (str[0]) + { + const char *ss; + + do { + const struct cpuidle_state *state =3D icpu->state_table; + unsigned int bit =3D 1; + + ss =3D strchr(str, ','); + if (!ss) + ss =3D strchr(str, '\0'); + + for (; state->name[0]; ++state) { + bit <<=3D 1; + if (!cmdline_strcmp(str, state->name)) { + preferred_states_mask |=3D bit; + break; + } + } + if (!state->name[0]) + break; + + str =3D ss + 1; + } while (*ss); + + str -=3D str =3D=3D ss + 1; + } + if (str[0]) + printk("unrecognized \"preferred-cstates=3D%s\"\n", str); + mwait_idle_state_table_update(); =20 return 0; @@ -1400,8 +1484,18 @@ static int cf_check mwait_idle_cpu_init( if (icpu->byt_auto_demotion_disable_flag) on_selected_cpus(cpumask_of(cpu), byt_auto_demotion_disable, NULL, 1); =20 - if (icpu->disable_promotion_to_c1e) + switch (icpu->c1e_promotion) { + case C1E_PROMOTION_DISABLE: on_selected_cpus(cpumask_of(cpu), c1e_promotion_disable, NULL, 1); + break; + + case C1E_PROMOTION_ENABLE: + on_selected_cpus(cpumask_of(cpu), c1e_promotion_enable, NULL, 1); + break; + + case C1E_PROMOTION_PRESERVE: + break; + } =20 return NOTIFY_DONE; } From nobody Tue May 21 03:36:08 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=1660827888; cv=pass; d=zohomail.com; s=zohoarc; b=ILT1+XCbD3qqFHPT45LmGlXQxZjV9dH1L4t12BpLmcDAK3Qg2UElaQiZ/cLXWY09kHSsgItvKC/z4eY6LpCR8jrR+PqxW4LAEWvIJjZNLBSKaAOwRYjvmOMU46qSdBkGqIv2jVGEwMU6qQL9oCdg8aizU0kM5nNGTQQh+XF07y4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660827888; 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=Q1xcR1YrekDly/6j+fddD6c7EDtW054iEZ9k6oP7154=; b=BORQylyyD29P1bszkwyR6DQEnoOMpLtzXxZv0a7xX8PmPoNMJk+QL8BjojOG2h3hF4oWZD/9TaCrzzb+1Ref4Tb7BtNG4rnSe8YHVhl6YwcgLMpZu2WtCEThetiCtExZxFlfN5CE+FNwoLSDNdgHWStZrMsiIp34ZOXP9JNLutw= 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 1660827887950292.2301541670919; Thu, 18 Aug 2022 06:04:47 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.389512.626479 (Exim 4.92) (envelope-from ) id 1oOfBq-00075y-BV; Thu, 18 Aug 2022 13:04:02 +0000 Received: by outflank-mailman (output) from mailman id 389512.626479; Thu, 18 Aug 2022 13:04:02 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oOfBq-00075r-7E; Thu, 18 Aug 2022 13:04:02 +0000 Received: by outflank-mailman (input) for mailman id 389512; Thu, 18 Aug 2022 13:04:01 +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 1oOfBo-0006az-Vg for xen-devel@lists.xenproject.org; Thu, 18 Aug 2022 13:04:01 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80054.outbound.protection.outlook.com [40.107.8.54]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 39dbf736-1ef6-11ed-9250-1f966e50362f; Thu, 18 Aug 2022 15:04:00 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by VI1PR04MB4685.eurprd04.prod.outlook.com (2603:10a6:803:70::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.11; Thu, 18 Aug 2022 13:03:58 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5525.010; Thu, 18 Aug 2022 13:03:58 +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: 39dbf736-1ef6-11ed-9250-1f966e50362f ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VycxG/A6hA+c7n0s7H7T28xfAxqTr3006kdDywr+qsjCzYWdKb50gcZANSC/08BlSrnjXzVLNd4yV2RmxiQSNRs3GTprHLsO62Y7oXTrbT3ub+0/4UlUyYTOpnYEi0po7DEa/PeMoVJzEHnIux5kptEZeVhE6BXrmn71skXMUp1uHyMK6l2/z55Xz6Iv0yK5Vgi212Q9SKWSFCahlIu285gi4kW23W4kAtX0RnACYqzYOXuSSYWDOGSo4aVLaoFObJzd/fmyDGkuDEwkS85tQQwwptjCRws+yU+BwiNYUXClozvfrxsLCpKqOGu11NRWgBt0HVGLRETLT1mvrd7Rkw== 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=Q1xcR1YrekDly/6j+fddD6c7EDtW054iEZ9k6oP7154=; b=XakYcV6iB4EwG13VDy9k8lnm07z+A+jXZBuQQQr5FX5KmDZhLfCZGjsmZJBNWCJh5/t7Hwi1LkC0NrpGTAF1/F+Mi9l/HlhpxlIo1zEBBihCGYUIox7/Zv+ADoa3wLpI6pPrk7HXG/ulI1aet0zs0iclhM8rF8fN8wbLxHZOhVdN6ynJMwRJyL4aAiNdCGjVBhDFFgF0sEhx6q73RoLnEE5ixGWKZ3x+NN1VDlJRbaT+ZPiPF0tr3+qoduubjyy7muHR3R6KEsfW5BA271PBvogclpuLE6G3VqpUgH7ei4PurHsSW6ZsFUTIP5VaStp9CLqo05PNLCQy64Z6rD3Icw== 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=Q1xcR1YrekDly/6j+fddD6c7EDtW054iEZ9k6oP7154=; b=RT8Ejjd05uf79z2Er0em2GMca6pdFkJG86Ck/1idw2AwF3STZjOMOrIlgvlB9e39IGxKhQXtWrnbcoSDn3Q36LfH2rUZ04hugnx1U9c+eb2STChKDgVZ0S3e0Mq1ZFT8yxiI9f8vB4SzHgqJwL9rKarfx2XmHN+t+2oQA7+7B7uJXoX4Ou5j6igA4LhvKjj0Ab5qtsFwwRf2ye++vtmXNpuaeZ8fssk1dSwrP1ukZvz79ovBmtXAYoQ6lADhsLVslL4qRIE1WbVyNyPmXAkAdkFzaE57RfU8gWfOEYte/coQ690BT28DIGFsb6K6vywTwy39d9To7Dxdn+GxqTOIIg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <56364ce2-3b4a-43d5-2161-6354a4aa9dbd@suse.com> Date: Thu, 18 Aug 2022 15:03:57 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: [PATCH v3 2/5] x86/mwait-idle: add core C6 optimization for SPR 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: <84200e9c-ee22-c240-826f-6c7006c0ef57@suse.com> In-Reply-To: <84200e9c-ee22-c240-826f-6c7006c0ef57@suse.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0001.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::10) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1a205b41-8fe6-47f1-d296-08da811a1d52 X-MS-TrafficTypeDiagnostic: VI1PR04MB4685:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BkRDGIe+f86MAvIz+3igGrI6UlZBlWH0u6EYQcGXCHdOjyguLILTePqSqylnF1Sy9VbHu3184F++AwJldgqN9ZCC7wxhl6IIhNrGV+mf0x/6mWfOXoJhkWOFFAi1WvbjtaNaJ6zrToLFAvmEhqGEcoOZQpiWAyNJqyyh2HPR/WlxbKeDFKxYUxHQRtoONVnatXpvXak8G4zTDg0g8VaRc/K9MBvLDobGo4ck5FRqM0Gn1blLT3FWL3ipzMGCqbOH2szsqFEMCMqW5Z7f33Tn1fLQntxngtuU2YP7xMiEyTJdnZcfhjplyNwOv02LKFagnvcVB7NRA/ahxDD+HkT0ZOoFX+sb5k4VruuihHtd2//vT/3CQBoKznoElY1nwXFwMAUqQw7yIssLYkXXtDo8eQvo/d+Du4TDhMUG4r/FbinW3fQQxKwP8gWhdWgFA4RwqbjpTr3SLqWQNnlBmH5ggPv10IHa05VbH/PoiZq53/bCqL4INUYD65I6T+aNl0pvkZWhgXVbqNHJJeSl7if7PtKhF9m6HdMwIBgHwz/jpgGIm6It1wpY07KbDVYwQHnvy7lU52smK0sfDlrbtaPrv24B/loCBL0o4b3LYgZmCsolmYzvXgNt6JqNUZVPzRYYXIzfrIHjmlQRkRt1DqwT0NXfkJZ2QgKqUvFS5qlvgHFoUqASwp1Qz9fyaN5IFSkC8Gp9pDW3C8WiCT0YRiSUW+nA61CIO2WvmqT/BNBFg1aYSpRceWhOq3tAir/3JfO2Yl9LjwkIPGpHtlMisxFe5192guk/LZzflvjvFkbOl48= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(396003)(376002)(39860400002)(366004)(136003)(346002)(31696002)(86362001)(38100700002)(83380400001)(186003)(2616005)(31686004)(36756003)(6506007)(6486002)(54906003)(26005)(316002)(41300700001)(478600001)(6512007)(6916009)(5660300002)(8676002)(4326008)(8936002)(2906002)(66946007)(66476007)(66556008)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cHMxMUp4T2pCazUxYkdjT1Z5WnU3bHoyaHdrb3B2aWxNbC9neGRXVkZmNmli?= =?utf-8?B?aW0rR0ZVUGJrUGJuNi9qRzRSN2krc3lZUkpQSGhydlpkM1pQREJ2OXBJL21k?= =?utf-8?B?SUEva0FjWDMyU2NtQ2ZTYm01MHZZUk11WlVrdm4rVm1mSUxKMHZxSk5tY0Vm?= =?utf-8?B?OExncDN2UFE1cUpFYWp6MEZCMERQcndVdzVmT0xWdDRTZVpvVmNRVnBHYkpo?= =?utf-8?B?K3BPWkRUVVVIS1NYMWZlQXNpNE1Qc3dQUHdNQjNuSjJ3bjB5WjYrZWtPWENK?= =?utf-8?B?QkNpMER5bU1FblV0VHAvN1lISk9mdzlJSVN5eS90VklmbHgxai80dGdGTk01?= =?utf-8?B?N21YOWNqRjR2Z0l6c3dJR2M3QWk2eDVrdTFDZEtBMWMvZzFRV1MxV2NpMkVw?= =?utf-8?B?MWllR0xtMGd4K1pvelJzemtsSHphYVFYc2o4eW9JZ1pOa0NRckJ3Vk1HRDdl?= =?utf-8?B?clRlNHdVaDE3cy9BSEVtMHRUNU9IVmo0MVFKREx4Mm4vYmxrWllQMEMvcE1w?= =?utf-8?B?R0JZbnZFMWhQS0tBRnB2bnFJdHVqUTVpNUtlYi8zK1orODEvSnVoU25VL3Ra?= =?utf-8?B?NlV0NnRNWU9VQmxrcnlzc3IvYkdaZ1RWNEFCZVFKVGl2YzFMc2ZmY3hJbjY4?= =?utf-8?B?OTFQajVpVzJlai9xOEpYK2doWVJOemNpQjhaVWxPN0I4RU05QUJSY3ZoWm5X?= =?utf-8?B?NDNSN1dnVlMvZUFoWndScENZRktzWi9lNmF4TXFCNFltclhSaWI3UktQd1ln?= =?utf-8?B?ZE5ZU0JIWmRpamJZZXRFZTQycTdLSGMxaTZpR2ovbk1ENG1NT2pZVTR0WXdh?= =?utf-8?B?cjYzVHFBWkpJUnZTOUZKczdVZ3RxVUZTNStuVnlGWlpoaVpOaUJIN1N1b1cx?= =?utf-8?B?ZDN6QVptM1lObDdzenNQWGdQaWdoVHhwcjl6UHFUOGFBTlZ3Nm50V0tsN1ZL?= =?utf-8?B?dXloUk5ocEt6d1R4SHZUZXBWK1VOSWhWa2d4VnRCKzJLUVU3RnZZOGZiVXBD?= =?utf-8?B?dUg0bVN1ck9McmFiNXpXQ1hzRDJ4UGRoaFRSVnlsZmJaM2V4dHkrVTg0dVJu?= =?utf-8?B?UHdnbVJoZjhaOGM5dzI4ZkF6ODcwV3dBV0MxUWYzdWF5V1dzOHlQUnNQWktW?= =?utf-8?B?cUtQQjRiNzNTS2RianMwcm1raUdiZ0dWY3BOeGpkVlhDeHVZMXNKTDA2T3Zx?= =?utf-8?B?TVB0eVQ0b2tvdFh5b1FQV2o3SGN5NWgvMm0rMmlEY0E3bHB0QkdQNDBNUEU4?= =?utf-8?B?T0EvcGQwZWlETUpNUVJTdGgxSCs4WW90RkpxNDBiQVNzbXEwckFnK2pZU0c4?= =?utf-8?B?T0svMFZoQkhpT2p2VjMyUEJRbFN1bUVhNmY3ZTgwdkx2Qm5TQ1dEQ3B4Nk5z?= =?utf-8?B?TzBrMVFVeFEvRjZQYmxyNmhDSENKazJuM281LzNUSVlFdmRISXYzY2RsLzNL?= =?utf-8?B?U25rcFhkNW9EQThQcXFOQWE4YjNNVjNFcDV4TndzRVRBcW1zTXQycDJhakpk?= =?utf-8?B?bklSVjBVSDh4ZGdvaklodUZFTTA4TnpwMysvVStlNHBPVnlKVHErcGxqUGxU?= =?utf-8?B?aG80UGRhSkdSb093cXZTMmUxUG9tcUt6cDJNa21RVUxRdnFKeFUwQlFtRlBP?= =?utf-8?B?cWZlQUVGMll6b2tHQjNVS2JYV1UyZXRpOWpqZHlvc3JkNWxBVG1RK29GbVBC?= =?utf-8?B?TmZtUm1LS1pOVlBUUWFIS0RkTWttaUhoM0toTlZDUVVEQWp2dk5wQXcrOHhi?= =?utf-8?B?MjJyd2plYmphN0x6WUV1WlR4SGZNUHNBeUZrOWZQZVFFT1pEUXdYRmVrVjZX?= =?utf-8?B?YXJKTjBOMkIzSnlYZU1GQnB4R2Qzb0srWTNjckhYblJZbzVCM1pGNUw1Umh4?= =?utf-8?B?L2RFek9pWm5kbjFqQnltYWljUFI3NzhOZEI2U0N0RzFwNDFZbnpYbFRXSHN1?= =?utf-8?B?bDhCbXpBU0paMzdXUnB4TXNETUYwWklDRGZ1SDd1N3JOby9Ybnc0ZjBjQVdO?= =?utf-8?B?Ym5HQXRlcTd5K0RtSzhVamRGcnYzYXV1WjdsR2tENGVDSlFvOS9USm0reDJl?= =?utf-8?B?SStveEUxb0pVUW14MFhxYkVVaFhESlIxaHRPSFVTcnFoMndJNmJxcGI4Z3JD?= =?utf-8?Q?ypJpUiSMScm+EAzy53XsgIff3?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a205b41-8fe6-47f1-d296-08da811a1d52 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2022 13:03:58.8071 (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: 2TUFVaUukVmsbaVhEBJMtDVGaEZgCvN/2mEI/DsqxK0Zwh53KPsW/sADUPtPdnPtUxn2abaXXgAtfJUNB0dbuA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4685 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1660827888729100001 From: Artem Bityutskiy Add a Sapphire Rapids Xeon C6 optimization, similar to what we have for Sky= Lake Xeon: if package C6 is disabled, adjust C6 exit latency and target residenc= y to match core C6 values, instead of using the default package C6 values. Signed-off-by: Artem Bityutskiy Signed-off-by: Rafael J. Wysocki Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 3a= 9cf77b60dc Make sure a contradictory "preferred-cstates" wouldn't cause bypassing of the added logic. Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- v3: Add parentheses. v2: Sync with the Linux side fix to the noticed issue. Re-base over change to earlier patch. --- a/xen/arch/x86/cpu/mwait-idle.c +++ b/xen/arch/x86/cpu/mwait-idle.c @@ -1273,18 +1273,31 @@ static void __init skx_idle_state_table_ */ static void __init spr_idle_state_table_update(void) { - /* Check if user prefers C1E over C1. */ - if (preferred_states_mask & BIT(2, U)) { - if (preferred_states_mask & BIT(1, U)) - /* Both can't be enabled, stick to the defaults. */ - return; + uint64_t msr; =20 + /* Check if user prefers C1E over C1. */ + if ((preferred_states_mask & BIT(2, U)) && + !(preferred_states_mask & BIT(1, U))) { + /* Disable C1 and enable C1E. */ spr_cstates[0].flags |=3D CPUIDLE_FLAG_DISABLED; spr_cstates[1].flags &=3D ~CPUIDLE_FLAG_DISABLED; =20 /* Request enabling C1E using the "C1E promotion" bit. */ idle_cpu_spr.c1e_promotion =3D C1E_PROMOTION_ENABLE; } + + /* + * By default, the C6 state assumes the worst-case scenario of package + * C6. However, if PC6 is disabled, we update the numbers to match + * core C6. + */ + rdmsrl(MSR_PKG_CST_CONFIG_CONTROL, msr); + + /* Limit value 2 and above allow for PC6. */ + if ((msr & 0x7) < 2) { + spr_cstates[2].exit_latency =3D 190; + spr_cstates[2].target_residency =3D 600; + } } =20 /* From nobody Tue May 21 03:36:08 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=1660827916; cv=pass; d=zohomail.com; s=zohoarc; b=jDO1dTQyepN/QGZgDFelfKABTcqWeztqs09x32Nj3G9wETJEzd9cCTztpV++yeUwssh/74MxV0GgMw1xGSh4tEL18Mp5gfv/FPq3Hosd9Zqrv956aCNzrgLX28DowkgtquC8+trsHF29Qg/0hbQWeu5LPYfgosfVXMIlJvRMhqE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660827916; 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=h9X+XMAiX9Z2/4F6tWFKbA2kUecCTVCdhQW9aZDeJlQ=; b=kDVbEW7OTV0SlvtuuGKO7ISPruC6rtCl4cyuv5/wTe1AMOwYb0jVvguGEc0Y7/uTqnM2yBZWh2Il9+xbzut8xdEjgcwPOWZsABy7L/j1LSH3RE7ubr+bQ4CoOXOQziH6n6ZMEkWESTIebpREQLgr9b29eqcrkSINRs68DQGp4UA= 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 1660827916226725.6672890425214; Thu, 18 Aug 2022 06:05:16 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.389522.626490 (Exim 4.92) (envelope-from ) id 1oOfCM-0007ja-Pw; Thu, 18 Aug 2022 13:04:34 +0000 Received: by outflank-mailman (output) from mailman id 389522.626490; Thu, 18 Aug 2022 13:04:34 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oOfCM-0007jT-MA; Thu, 18 Aug 2022 13:04:34 +0000 Received: by outflank-mailman (input) for mailman id 389522; Thu, 18 Aug 2022 13:04:33 +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 1oOfCL-0006az-EI for xen-devel@lists.xenproject.org; Thu, 18 Aug 2022 13:04:33 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140054.outbound.protection.outlook.com [40.107.14.54]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 4d041472-1ef6-11ed-9250-1f966e50362f; Thu, 18 Aug 2022 15:04:32 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by VI1PR04MB4989.eurprd04.prod.outlook.com (2603:10a6:803:60::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.11; Thu, 18 Aug 2022 13:04:30 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5525.010; Thu, 18 Aug 2022 13:04:30 +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: 4d041472-1ef6-11ed-9250-1f966e50362f ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d+jvnZ8muiIRzUeYLyORqxCzoLjA4q7DZPqaVESFX8WSJ1KNasXJOeZeTRDop4wwibtA5PsyByOYbCiZq3iaOH+mrJ77mDHkYb1R/2/IWVqALM/rNJpTDzun7rcIQWlVUFsXZ0dPsekG0nmYAgwE6yfF5uYfkI6tBVuK3UB6/hHHwNfOq6vW+vcJVixYf5S215PfampiKih5oXH81O71d1mRUY4qDcyppH7/tkFI+BKNxKyXiuyTKJlfI+k9KGohnkMx3rM2UVxGLzlYXNk3IowqJDHlkqEx8JfZrhCjhOoLPZ/WBzY0wKHaviBsxfPmbS0JCtbDgB5c2RuMytzGPw== 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=h9X+XMAiX9Z2/4F6tWFKbA2kUecCTVCdhQW9aZDeJlQ=; b=X53v8JUgmQ8B2HSt3c5z+q7fcxj3P7L65ub9zhRgof7FqSPYJt/LAFf5AN6zlWrA6hGdhbFPaq/FkO70ZE7fImYdTWWw6hKYy9WS8ieiAOfQGoh4Ah4PtUhvVFEhEU7BPOGwD3/fkCugo+GA7LYRaS+Bipu1DrLhpK/4MI4vfBus4euv5UAEiM9B4r09L31tmw1hpQ2yxVMJDOXn5EvduAFnnAQQL/i/2lz1dRcUx/n8eVutJzhfAzeiQRd/fevikTl+U4GPq5Tuw5n5cRQLo4HGqzBXLfBDrvB2JDqr4wjfBbnky1hQas/jBa/rQUg6U/2s7rEI2Y6CBu7pYhOywQ== 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=h9X+XMAiX9Z2/4F6tWFKbA2kUecCTVCdhQW9aZDeJlQ=; b=crEGkO3DjIWu/AAvqIQnmlx2RL0gUQHxf2prme2wHGLspMayIvg7PnZ9ZiLYK47YZu198hMcdF2dG407/dfghIebmFBUvdYevJsQ16/hAi57X2AOnx63kWhNWsbqJm19E1pwBMQOLt5e5uc2rxJLXtDuLh1KgWDczrVWxOyFG3jpAnluoLHd8FJgB62yCjH9b58jvIj9pQCoz+RsTGQTwxBLxbCX92HebGI2xofBnDwqrpI3pFP25r/lHNeslI5j5lVhHcU/orufd4uj2WCwxvgCw5iejv/OFK3TRB44tQtYZOs+ZM11/kvQDks59BE99HqpsDXeBLqiTYERtC4pbw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Thu, 18 Aug 2022 15:04:28 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: [PATCH v3 3/5] x86/mwait-idle: add AlderLake support 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: <84200e9c-ee22-c240-826f-6c7006c0ef57@suse.com> In-Reply-To: <84200e9c-ee22-c240-826f-6c7006c0ef57@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0129.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:97::15) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d28e4f59-5232-45f7-2fee-08da811a2fe2 X-MS-TrafficTypeDiagnostic: VI1PR04MB4989:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fhWX9NZg/8RU2fhR6il5Oa07amCwE54+hAEW0fi5LGDEXJAXLAy0KdDQzJEwjMtVqL9vJ3kb+xHL3TSiogFIw3u9Dl5kidHEEK2mjSW+crFFj1h7Pm0ZCR/32668G61cYAHaNQHqfu7+YeLGcu4cImKGhGHzDby5/WfhIloNDUZwP9EzJ4HpsMAH5CthLQpcIklmkTrBqYn8RvKwuQ2vtqBtsqP6Xi3Bgrbd/ju2h/ARtHmi4W6tsS/Yqws0bjmMcgaKK3954DrORRGf8wsUwibmRLmsNYQ+1dttZ1FgDTFr41wkCE2x34wStjjXGpvnelB80DazWd1PBmWMLiqMFDD1Hb9Hj+eXPA5bY6TSDXUxlxYCuKc3moz8+2Y7nQYx/o4jrTwrhzao//rL4hejoCmOKNBc1s7vN4uulCFAN/ezkfTIXhc4mDKmogd95oOnL4n0oRcaFrRmLEOAYm5J9WwUkD9a/bCkXoKpr59Kaw+XiLTRPQRXPEFnbxcbaJfujaIVRPT9ZrDO/PJmY52IEF/maHW8XOXSiJLfnas9IEG3R+qlxNoWI+yd11bsdu8tMJHls0i6EqoNL9NckW3eeEWA+vIkHr0eIDWamGttjBJh72+A/1zGPZJJSI+sVBOF/uqk6JcFR7zt3Lu8FrPtsum/CCuJASaLZrgNIT7GYu74R9GUphYwgynIz5FY/v5Q0+xWhLO3zNKsy+VL9ZJEyEJ5FccOS/HVSngv+en1RDI3AAk80WIJIEfFGAeoV8IA9wike12ogJXFeAVYKOAsj4aZF5ZE/cZLDx6UsS/5/T4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(366004)(376002)(39860400002)(136003)(396003)(346002)(2906002)(66946007)(478600001)(66476007)(8676002)(66556008)(6506007)(41300700001)(31686004)(186003)(26005)(2616005)(6512007)(4326008)(6486002)(83380400001)(36756003)(86362001)(31696002)(5660300002)(38100700002)(316002)(54906003)(6916009)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QVVqWGlCMGRvOTZHRXprVkJvUTRkV1FwUXZCbWN4c1UxVnI4aUhXNkVQeUg3?= =?utf-8?B?RlBmdHU2WndpMVZLeXVDeUVUTmFNeVNFRnNqRTJSdE1kaWxmNHNtWGF6YWFC?= =?utf-8?B?NzFmUmlOVkdpZlQrR1dWNmRxS0tTb0tCZk82S2kzczEydnZPdXZIRWxJNWdp?= =?utf-8?B?YjllQmtsTFBqakorMnl1RzZYd1Jza0ZKZHJCNk1GallMNXpOUzVZU0thN29j?= =?utf-8?B?S0FSeVQ5QW4xemN0K2FyY2VCYkNuQXdqZ1h5UjFpZndJbDdIV1ZPQ2lwWGxY?= =?utf-8?B?UDhhTVJBc24xdjl1bFZVRVhDTG9iL0IzSHNOd1FlczBZMTc5QWYyMG9Jb3pT?= =?utf-8?B?SVlRQXpiNlFNR3k1eG9iVFkzSTFLVkRvOUxNUDM5THBmTno3YjFkQTlUaVN1?= =?utf-8?B?Mkx5S0JPdk5CeGlBMktQL1daa2J1Z1p5UlYrODczTVN5MjVGQVViY1gwSkFn?= =?utf-8?B?ME5aUkt5MHNkUG5SVTJZTGlZeXZ4ZXQrWitDdHZNdEE2anlPRmFZbm1maksr?= =?utf-8?B?c0lLTmN3SDFlUFpJZkh3dmZSTmtxVnhYL3Q4aTM0R2hYSXFYQVZNUytpVlY4?= =?utf-8?B?eFRSWVJVTFgzN3ZHMTVabXcvODg2RHF0QkpnNVlGNlJ4bG9yS0VmNXd6c0lp?= =?utf-8?B?cTk3eStCbDRCOVliS2o4Y3llYWFOT0xZSktZOE9lMmNDS2wydHpiUm9HL05v?= =?utf-8?B?TW9lcmdXMTE3c2srVmNOSUZ4YjZJWGdHdVhZbUE5MFNsT2ovenp5ZUxvYTR3?= =?utf-8?B?ZUtobVA3RXQvcUV6UHlpZVE2TXV3QzhoNUZyTnAzeldZZXlRUkMzaFBDODJx?= =?utf-8?B?bWZqSmxUYVYxTGdsYlQyUXM4SHRDdWhmVnlZNEFIWWprS3ZrcXVhUUVHYVpX?= =?utf-8?B?TElHaSsweTVwb3A1V2tseFk3STNVQUlFRER0YU5ublEvbGJWeFVmOXpxMXYz?= =?utf-8?B?Qll1cTJraE5NVVRWMjNKTTdLeEdoOHphOUhzQmhUTHVKbzZZd0VXMHdLNzZn?= =?utf-8?B?c2dhb1J1ZGpLUTNIR2VTaW84VnZlQ09wa3RXbGxiNE5UbzkzZ3pFMTRKZmlx?= =?utf-8?B?YnhnTS9yWUJhb3ljYmp5UlI2L3lkUlpwWXFJaE5hOHVPdEQxeTBEOFpPQlZT?= =?utf-8?B?NmRDSS9LR3FqSS93UmhyRGJNNjhFRHhuNG5RZmErZlM1Nnc0d0pYZW1QcEVp?= =?utf-8?B?eEVzTit6V1Y5ZE02SmpKWi9ac2NRRlpWUmlpOTFHR2FESlBva0h0VDlhRHlU?= =?utf-8?B?LzNYUnRHdzRJalRSRFN4aXhVdjlxWEd6RjR5a1QyMlFDdmh3STZCbjNIQnpv?= =?utf-8?B?TEFBdXZiMWlCTkJuTExrOXFieVlUVHFzUDhMS3E2ZHQ3Wmxhbk5nZHJ4UG5O?= =?utf-8?B?SHlUQ2Jnd3NJS0M3OWhkZjlxYVoxODdqK1RJZG9BN0plRlN2K0hjbnBwSWt1?= =?utf-8?B?YkhraFByVzkvREU2SFY2RWdHaHduTlRvRFdFaXp3RTRMakZoTUVNQjFWck5P?= =?utf-8?B?UTkzMmtXbkVwWWlMVW9mb3VZTlRIdzZMaWk5L3hmQnd2aEhIWVY0Y2x6MVhS?= =?utf-8?B?T0FBNklCOGpxUllKQ2RYd1g5UnZJZGlyVk9JL3dJNUdKQXZrVmFvUG52cmoz?= =?utf-8?B?dWhNTmVPcUZHYkhOMm0rUGJPazkvNEoza2gwcS9ZSklwZy9TbWJNdU5aRkpL?= =?utf-8?B?emFVb2FjeERZV0hlUzgyWFVLSlE1Mm9wMFMzQXhqRElLckVlT0RqYWdpczUr?= =?utf-8?B?ZWlwekRuOHdORVB6YU5aOTQ5SjYrb2pCdE13TVUrWkIwV2hoKzNIZFplY00r?= =?utf-8?B?Zlg4WGk0VGpPRWkzS25QRzZaV3NLM0U3S0xiL1doN1lEaFNEeng1ZjVpb00v?= =?utf-8?B?QUZYUG1uZWtpU3l0L09FUllLNnlibUg2UWE4V1ljVzNVSmo4bVE0UFBlNTNK?= =?utf-8?B?T3BpZy9FY1FtZ2h4OTl3c3NZMlFlcnZscGxnaTdQMUR0Um1EYVJRWlFJMmNt?= =?utf-8?B?OVo5UTNnYkdYSDFHeGVuZUIyVTBwRlR3bDI4bGFNMm44V2t1VnR2Z2JPTkQx?= =?utf-8?B?cWdrbjRVK2xaN3dTcklMVWl6OXFyRkVzTFlta3QzOEE0dGVva2ZLQ05NUVhP?= =?utf-8?Q?wh0veUebANepppkbBhoi2XQi9?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d28e4f59-5232-45f7-2fee-08da811a2fe2 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2022 13:04:29.9456 (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: lpdKpgHbXUmtAT2RWWCsotvTquB8dhfroMK+GZYIp0cufLE2dq/9Og7ilqaF3ZEk/6iQSIbl6CT18OwxPpvtcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4989 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1660827918572100001 Content-Type: text/plain; charset="utf-8" From: Zhang Rui Similar to SPR, the C1 and C1E states on ADL are mutually exclusive. Only one of them can be enabled at a time. But contrast to SPR, which usually has a strong latency requirement as a Xeon processor, C1E is preferred on ADL for better energy efficiency. Add custom C-state tables for ADL with both C1 and C1E, and 1. Enable the "C1E promotion" bit in MSR_IA32_POWER_CTL and mark C1 with the CPUIDLE_FLAG_UNUSABLE flag, so C1 is not available by default. 2. Add support for the "preferred_cstates" module parameter, so that users can choose to use C1 instead of C1E by booting with "intel_idle.preferred_cstates=3D2". Separate custom C-state tables are introduced for the ADL mobile and desktop processors, because of the exit latency differences between these two variants, especially with respect to PC10. Signed-off-by: Zhang Rui [ rjw: Changelog edits, code rearrangement ] Signed-off-by: Rafael J. Wysocki Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d1= cf8bbfed1e Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- v3: New. --- a/xen/arch/x86/cpu/mwait-idle.c +++ b/xen/arch/x86/cpu/mwait-idle.c @@ -606,6 +606,84 @@ static const struct cpuidle_state icx_cs }; =20 /* + * On AlderLake C1 has to be disabled if C1E is enabled, and vice versa. + * C1E is enabled only if "C1E promotion" bit is set in MSR_IA32_POWER_CTL. + * But in this case there is effectively no C1, because C1 requests are + * promoted to C1E. If the "C1E promotion" bit is cleared, then both C1 + * and C1E requests end up with C1, so there is effectively no C1E. + * + * By default we enable C1E and disable C1 by marking it with + * 'CPUIDLE_FLAG_DISABLED'. + */ +static struct cpuidle_state __read_mostly adl_cstates[] =3D { + { + .name =3D "C1", + .flags =3D MWAIT2flg(0x00) | CPUIDLE_FLAG_DISABLED, + .exit_latency =3D 1, + .target_residency =3D 1, + }, + { + .name =3D "C1E", + .flags =3D MWAIT2flg(0x01), + .exit_latency =3D 2, + .target_residency =3D 4, + }, + { + .name =3D "C6", + .flags =3D MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency =3D 220, + .target_residency =3D 600, + }, + { + .name =3D "C8", + .flags =3D MWAIT2flg(0x40) | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency =3D 280, + .target_residency =3D 800, + }, + { + .name =3D "C10", + .flags =3D MWAIT2flg(0x60) | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency =3D 680, + .target_residency =3D 2000, + }, + {} +}; + +static struct cpuidle_state __read_mostly adl_l_cstates[] =3D { + { + .name =3D "C1", + .flags =3D MWAIT2flg(0x00) | CPUIDLE_FLAG_DISABLED, + .exit_latency =3D 1, + .target_residency =3D 1, + }, + { + .name =3D "C1E", + .flags =3D MWAIT2flg(0x01), + .exit_latency =3D 2, + .target_residency =3D 4, + }, + { + .name =3D "C6", + .flags =3D MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency =3D 170, + .target_residency =3D 500, + }, + { + .name =3D "C8", + .flags =3D MWAIT2flg(0x40) | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency =3D 200, + .target_residency =3D 600, + }, + { + .name =3D "C10", + .flags =3D MWAIT2flg(0x60) | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency =3D 230, + .target_residency =3D 700, + }, + {} +}; + +/* * On Sapphire Rapids Xeon C1 has to be disabled if C1E is enabled, and vi= ce * versa. On SPR C1E is enabled only if "C1E promotion" bit is set in * MSR_IA32_POWER_CTL. But in this case there effectively no C1, because C1 @@ -1032,6 +1110,14 @@ static const struct idle_cpu idle_cpu_ic .c1e_promotion =3D C1E_PROMOTION_DISABLE, }; =20 +static struct idle_cpu __read_mostly idle_cpu_adl =3D { + .state_table =3D adl_cstates, +}; + +static struct idle_cpu __read_mostly idle_cpu_adl_l =3D { + .state_table =3D adl_l_cstates, +}; + static struct idle_cpu __read_mostly idle_cpu_spr =3D { .state_table =3D spr_cstates, .c1e_promotion =3D C1E_PROMOTION_DISABLE, @@ -1099,6 +1185,8 @@ static const struct x86_cpu_id intel_idl ICPU(SKYLAKE_X, skx), ICPU(ICELAKE_X, icx), ICPU(ICELAKE_D, icx), + ICPU(ALDERLAKE, adl), + ICPU(ALDERLAKE_L, adl_l), ICPU(SAPPHIRERAPIDS_X, spr), ICPU(XEON_PHI_KNL, knl), ICPU(XEON_PHI_KNM, knl), @@ -1269,6 +1357,30 @@ static void __init skx_idle_state_table_ } =20 /* + * adl_idle_state_table_update - Adjust AlderLake idle states table. + */ +static void __init adl_idle_state_table_update(void) +{ + /* Check if user prefers C1 over C1E. */ + if ((preferred_states_mask & BIT(1, U)) && + !(preferred_states_mask & BIT(2, U))) { + adl_cstates[0].flags &=3D ~CPUIDLE_FLAG_DISABLED; + adl_cstates[1].flags |=3D CPUIDLE_FLAG_DISABLED; + adl_l_cstates[0].flags &=3D ~CPUIDLE_FLAG_DISABLED; + adl_l_cstates[1].flags |=3D CPUIDLE_FLAG_DISABLED; + + /* Disable C1E by clearing the "C1E promotion" bit. */ + idle_cpu_adl.c1e_promotion =3D C1E_PROMOTION_DISABLE; + idle_cpu_adl_l.c1e_promotion =3D C1E_PROMOTION_DISABLE; + return; + } + + /* Make sure C1E is enabled by default */ + idle_cpu_adl.c1e_promotion =3D C1E_PROMOTION_ENABLE; + idle_cpu_adl_l.c1e_promotion =3D C1E_PROMOTION_ENABLE; +} + +/* * spr_idle_state_table_update - Adjust Sapphire Rapids idle states table. */ static void __init spr_idle_state_table_update(void) @@ -1324,6 +1436,10 @@ static void __init mwait_idle_state_tabl case INTEL_FAM6_SAPPHIRERAPIDS_X: spr_idle_state_table_update(); break; + case INTEL_FAM6_ALDERLAKE: + case INTEL_FAM6_ALDERLAKE_L: + adl_idle_state_table_update(); + break; } } From nobody Tue May 21 03:36:08 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=1660827931; cv=pass; d=zohomail.com; s=zohoarc; b=iiRmssnTS2yfGxyImXuQJMqVPadQoKvPYIz2RpFbuO1+15+xOGP6TXZ9x1mnNU6QJGUPxq9x683nj+1iefbKquAdvrcPn00h1BVa/bDS9eEjiIGEI4AdeWPBZDwfd2pHu8seVhJZWqVHZg0ncq4XnWjfYx9mIOOZggE+uTBK7I4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660827931; 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=JmYPLXj1oFALypXZrKMo7JnkebrUsMPgDdXSnPxVHFw=; b=GCJNYtcTvWeZOxZQtqccKjUdnAv2bXj+vVJegLy32NOkPsO9LATuCag9xc79FmMSmUMKxYOWMNloiPH6jqxs5PB2ZqrfCwDkY/ByF7Vfu1SaDtTly2sRHMWRYgRKUmRWex9x7pAnfiSMFWfcD96Y3W6mYKboix8M/Mqt5QHgHH4= 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 1660827931591864.6287114808541; Thu, 18 Aug 2022 06:05:31 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.389524.626501 (Exim 4.92) (envelope-from ) id 1oOfCk-0008Fr-1k; Thu, 18 Aug 2022 13:04:58 +0000 Received: by outflank-mailman (output) from mailman id 389524.626501; Thu, 18 Aug 2022 13:04:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oOfCj-0008Fk-VB; Thu, 18 Aug 2022 13:04:57 +0000 Received: by outflank-mailman (input) for mailman id 389524; Thu, 18 Aug 2022 13:04:56 +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 1oOfCi-0007Vi-9h for xen-devel@lists.xenproject.org; Thu, 18 Aug 2022 13:04:56 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2049.outbound.protection.outlook.com [40.107.104.49]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 5a5d0c3c-1ef6-11ed-bd2e-47488cf2e6aa; Thu, 18 Aug 2022 15:04:54 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by VI1PR04MB4989.eurprd04.prod.outlook.com (2603:10a6:803:60::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.11; Thu, 18 Aug 2022 13:04:53 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5525.010; Thu, 18 Aug 2022 13:04:53 +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: 5a5d0c3c-1ef6-11ed-bd2e-47488cf2e6aa ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m2HnhP9YZkSDdlmjNmJDXCo/StiUW5T4KzDiHbcUlonLeTTQcvnXC8i4eGtgOmZss5Ke4xMt7ScpJV6cMxYTI03jSY1o3M2raCk9y01v+IVFfc3aM3Pbn8aPOlUo0LB60ffnvnvHmK6NkQSy7Sm72oLCYXR36grhB1OjuikikzM5R0upr2Eq6NtsPyGWcaQhp0qayFrHcCj3PfzkMne3fCWhmZ2wc0CtYjCYA1HfOIZqDnCKxp3EerRrFv4bXBiFX4mMpHoxPAfs8pkN5q2cizXoMxgWCtQQZyfOY3tg8n3ghGzBXU6dZFe8sYiEPR3jIPt4OGTc0r0NfwvC//VuSQ== 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=JmYPLXj1oFALypXZrKMo7JnkebrUsMPgDdXSnPxVHFw=; b=WVPxuo37uieUih/BDu/GG1ddNyaDCk1K4YVx81OanLyX57Mi6qfmsjbHZx8SgYvQB2q02rBiKr/blrOJTYzrE3dUP6YQaFwEiGbHZXrvdW61xxgwWJMcrB3vCeChc+T1OukoX9ISd3I2liiD9E9tuG4c2bfp4EVNGJssdMHRtmZ7mF+XMG2l2eV/iwITuwJHKlJLgC6NwSpwHoeLrWQ02G6TKd8SkJZ/2pmasUsqJI2DqtnJitybH/62G9mTE7jjb1+sdVvW2pHT/ABskClSYVxZXF+ilD5FUNyScAGcxeO5j/58en86whmjkTRVGwHcBBZytcnjYJ6kGtFEQaUPjQ== 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=JmYPLXj1oFALypXZrKMo7JnkebrUsMPgDdXSnPxVHFw=; b=uJxfuBegTlLjvwt5XYGv1lSLV3o5+LQ0bycRE+3ywgjDFuwR9CcxOnkZxxoV50eat5yhm4mHl/KcTNB0hcK9GmrIyvSL+DE3c1KHgVKEi6uaG58U9yajhxBq/EuLOAWnuFjJ99BPhYRrkdg6PmIOcjbIgwBnbtMCWJJRjtPOZrXC2M1/8/swHq8KFVa4Zl2/I0Ju6a2Bcna+vX7yMm69KZ2MC6KxczEaNEN4OaezP5AnaT13zTd3ZUmigzP1gZ+M64QoNa8FAXcnuYMgtTbsdOjsZE33CP02EfzwMzvBI6sd5yqoSwkGvtBahzgVCdiYx7QM4kPaaqiXTpPJLsWvvA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <38839202-426f-eb31-2997-ef557ab1583e@suse.com> Date: Thu, 18 Aug 2022 15:04:51 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: [PATCH v3 4/5] x86/mwait-idle: disable IBRS during long idle 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: <84200e9c-ee22-c240-826f-6c7006c0ef57@suse.com> In-Reply-To: <84200e9c-ee22-c240-826f-6c7006c0ef57@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0023.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::7) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2c357887-08f0-4173-d826-08da811a3dd7 X-MS-TrafficTypeDiagnostic: VI1PR04MB4989:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3K7O2bK21Hm30qOwqsF9RgskyhRv0bPWS+slnd8ack3OV9mnj/OP2pBj9pzuYmWWV1CU5wzWpj2SW99Ibs4hRYpsC+TkuHHhCTmnTU1ege4h3O0JPLVQHrufRIEcU8HygvUXdPv2XzTpQhZeJsspkoNVrQQwTsVQnxYocVhrxN6Zl2b3mwieE68q4N3CctqSo6Q7sLhgfen3mNJQNBXBSoenKDbfDyGhrjDd5/5vKB15RKUZlH85mMth1F7yLI1XwsAXnRwVMeY7OyZxHvtOETMkdePETvQX99mwPjEA52vsp7gXhbilcvHyNTrWj54w4j8epV3CT1S/6QYcOIRfQnP9EORiq1IXn3PFly9Xd0UcxBHO7g3IhTvfmBYFFRTPi9RxUnpgnEFrf2drlhG4MjIvd9FbhCx57Y4lcgRu5Jm3VmSqaKDJla7xkuHKeZ/nFAYpo2yp+ZwQzqk0XJVdCw8MLK+KxI1IW92Blqqi4NUhGuMXRQtsJx0JhnTdtuwLCBkm13csDvlwf3Zu94O5o/KdM6dFuJr5viQMm65hyEjyc/VeLPc0ttAN0rC9oF6c8xTSmqJLIVOJzUi3by8I2J02rvIPE73/TbRz9QXr0z6GFT0TfR/EtC3+AhtmN/5Jtg4zvjEIqQCSZd5f6EtlVV5ZVx15yxS2KQAh3J5EVaRFrpxtBZIkkhw0R6Xws0KRMkre7tJYxRqx+6Smb7EBr0603K5RL9FhuIKdN5Z3FVh4L8//Q2MB1TEUqYlYlu/6bWLBRnkXdtJOTlL3pT7Se/jejPKdV2zoaQcZbLLj90RiLxViFoRn4PZz4xKboqKqRfQIMBPpTkS/rW4JQ+dx4g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(366004)(376002)(39860400002)(136003)(396003)(346002)(2906002)(66946007)(478600001)(66476007)(8676002)(66556008)(6506007)(41300700001)(31686004)(186003)(26005)(2616005)(6512007)(4326008)(6486002)(83380400001)(36756003)(86362001)(31696002)(5660300002)(38100700002)(316002)(54906003)(6916009)(8936002)(21314003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T3h2dWxGZjZFZEZOTTgyK3pSaXRhSWtCWG1lRjZ1bTY0VjZESkxadG8zZkdC?= =?utf-8?B?VndRYWxCOHoySFlvQmpkNS8yRjRWVU9mMHdVM1VRaldNWEZKTUZIRFdmV1JY?= =?utf-8?B?T3BQUzJYNTRvdVZOYVdBTEdsSjVsNHdrZW9xYlVINkRDbkpvc0piRmFOdDN6?= =?utf-8?B?cTBTV2loN0tDdU5Eblc5WHZROGRTWEg5bzFHQTY0c2NFa1E0TEphYUFXWVlh?= =?utf-8?B?Sm5wVWtoNTBnSndPcUVGZklteEV5V0RaNWVUVHg5K3NHejVTRWNvc3ZFa1BU?= =?utf-8?B?cVYxU092NVJKOERuRUdOZkhTRzNYT2tFTEdidEhKZTJLcG9tR1oyQ2tLVy9O?= =?utf-8?B?SVdYU2xCZ1MzZGJMNmZ3QW1SUHIxOGRmMllscHRKbU4yTUc5MWcrbTRUWjVn?= =?utf-8?B?S2xkeW5SRFNWYjVxUmhnSklXemFHb3E5RlR5VWdveGx3Rlp6VDN4YVNoWTlt?= =?utf-8?B?U2ZZbk1USndycHVlNVdyaEprRFVPYmhmb3lCdkdWK2h5L3VuK1BzUzk4SzJu?= =?utf-8?B?bVhvNFlsKyt3MERpWXZKRnNjeE03UDRibmJaQzkwc25OSUFhQ0VqTFVCK1Vn?= =?utf-8?B?NDV6MjgwZ2NiSWpYcnA2cjFBVnJwWDdPcVdMaFlYZ2x2VGxScTg1dGRJd2sz?= =?utf-8?B?bUtQWEhWcytFN2ZVc1QySy9IMUpaR1dsNjJJTTM0M2JYdmgyc2Jyai9PYXhO?= =?utf-8?B?RDFZSGNWSStib0wydnFoaHVRZThTRHpGM3dDSnE4Q2pKSGJzMldoOWJ6Y2k3?= =?utf-8?B?aklJRUc0a2NocnN4bmRlVXRkcDFrTTh1QTRrWFcweHNUKzJFWDFiRy9RZ2wx?= =?utf-8?B?L2R5b0p4VklLSnFtbW9MbDNRMW1TVWJXcFArV3krTUd1M282K2tkS2xhTEhG?= =?utf-8?B?MmdsYnVVeVZwYjFoUG5TQXNHWlh5SDRHbTkzSjFpUW0xaFZlenJidTBoSU1L?= =?utf-8?B?eW4yeW9lT1U5MlBHb3BWRTlWTzhoSW1pKzZqQ2pMdXdnd1FJSkRJYkZaWFVi?= =?utf-8?B?U0lhcndWVTFZTWEzeDlFRzNQcHF4WWZGUXp5dEhva1lnWG4vN1AxSWp1UTdl?= =?utf-8?B?cWdkM2kzdzFNUHlMcmpsYVYxVVliclU3cTJCUmNhQk9ybzNTK2dUdGMwOGtL?= =?utf-8?B?bHlIK0tCWnJZR3FLUzVsYzhqZDg4MDdVUjVQZlpkVVF4eHN1bldodTBOVitl?= =?utf-8?B?SzF2LzY5WnZtOFphR3o3RklwUHlyMFMvd2VKTDBLRGl1bUhXQlZYRlpUNE9m?= =?utf-8?B?aXRKWnMxcWRJRzc5ZVU0V1NQV0IxNmEzUzEyQStrS2NpWW1LdUxNcHRweTlG?= =?utf-8?B?aXJkT2lPNVFjUHkyVjBUbDRwRG9ucFUySUEyN0liUVBxQmR5UStETGNmTTRT?= =?utf-8?B?cDAxUFZKeWVDTW5GbmtuU0Fhblh3YUxhOXdTbERwYWhhNklGWHYxdFhRNDZt?= =?utf-8?B?Sndka3V4aFVNZlFaelBlMUpVVDZoWHVLTUpyNXhEeDhoa3ExaGMySWR0bkJo?= =?utf-8?B?emNBQ1RFeEkwdnpBWExsanF6OExmQXBobFFPYS9Ed3EyV2NUeXJQWHJFYWZY?= =?utf-8?B?TitMWHE5eUs2MVMwMTVDWHk5VHhqckJGV1hxbmMxdC9uT05SQTA0L1UraXJO?= =?utf-8?B?WlpFWnJWS2F1NTZzM3ViQ3lVdzJnMlhHdmdWQ3IxbFBhNVRDMTFVRXJFLysr?= =?utf-8?B?NlJRQXo4N1YzN0drcGJsUEhLZVNJcGNGNEFISHRESmRDNmY2QmU2MGQxT3Mw?= =?utf-8?B?dlJRYUtIU3JVSVl2M1F1bTVvWEpHNnBQQStIdlk3TWlSc2dNM1dGUWp6ZFNV?= =?utf-8?B?OU5qbTJZNWlLbGdtcExZNjI4Ykhla3k3dUpqU3NoREJubkJoL3lTNnBUZllI?= =?utf-8?B?dDFJU1hUZXRpd0h5RkpZNjVGZExBcWVuWitWb0hFWGpjVU5iQTVFVHRCSElq?= =?utf-8?B?b0tMUytpZ3Uxa3AxRm5yai9FRG1kWTZQdEYxZmJuNEk4TWY1SDg4aVZxdGxL?= =?utf-8?B?U2Z0ZUYydVYxQk9Edzh4VlBLaEt6OGtDRTVIbVMvYTBMcGVqcDBwSHNJZjdK?= =?utf-8?B?UTdWcTJKVlVQY1JFQ3VDMjhpa3N6VG82MytYczRuc0JoRUI1N1NTVTA5ZU5r?= =?utf-8?Q?lwudXdvheHyF/++NGsc6rOMCe?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c357887-08f0-4173-d826-08da811a3dd7 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2022 13:04:53.4128 (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: pmSCZbRzCW6ldhDNi3eo5ivZetIpG16ap5rzL3no3H698z2BKPFscANqPPgg3/xVp72HBrWRLfo9j19yG/oLiQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4989 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1660827932876100001 Content-Type: text/plain; charset="utf-8" From: Peter Zijlstra Having IBRS enabled while the SMT sibling is idle unnecessarily slows down the running sibling. OTOH, disabling IBRS around idle takes two MSR writes, which will increase the idle latency. Therefore, only disable IBRS around deeper idle states. Shallow idle states are bounded by the tick in duration, since NOHZ is not allowed for them by virtue of their short target residency. Only do this for mwait-driven idle, since that keeps interrupts disabled across idle, which makes disabling IBRS vs IRQ-entry a non-issue. Note: C6 is a random threshold, most importantly C1 probably shouldn't disable IBRS, benchmarking needed. Suggested-by: Tim Chen Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Borislav Petkov Reviewed-by: Josh Poimboeuf Signed-off-by: Borislav Petkov Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git bf= 5835bcdb96 Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- v3: New. --- a/xen/arch/x86/cpu/mwait-idle.c +++ b/xen/arch/x86/cpu/mwait-idle.c @@ -141,6 +141,12 @@ static const struct cpuidle_state { #define CPUIDLE_FLAG_TLB_FLUSHED 0x10000 =20 /* + * Disable IBRS across idle (when KERNEL_IBRS), is exclusive vs IRQ_ENABLE + * above. + */ +#define CPUIDLE_FLAG_IBRS 0x20000 + +/* * MWAIT takes an 8-bit "hint" in EAX "suggesting" * the C-state (top nibble) and sub-state (bottom nibble) * 0x00 means "MWAIT(C1)", 0x10 means "MWAIT(C2)" etc. @@ -530,31 +536,31 @@ static struct cpuidle_state __read_mostl }, { .name =3D "C6", - .flags =3D MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED, + .flags =3D MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBR= S, .exit_latency =3D 85, .target_residency =3D 200, }, { .name =3D "C7s", - .flags =3D MWAIT2flg(0x33) | CPUIDLE_FLAG_TLB_FLUSHED, + .flags =3D MWAIT2flg(0x33) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBR= S, .exit_latency =3D 124, .target_residency =3D 800, }, { .name =3D "C8", - .flags =3D MWAIT2flg(0x40) | CPUIDLE_FLAG_TLB_FLUSHED, + .flags =3D MWAIT2flg(0x40) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBR= S, .exit_latency =3D 200, .target_residency =3D 800, }, { .name =3D "C9", - .flags =3D MWAIT2flg(0x50) | CPUIDLE_FLAG_TLB_FLUSHED, + .flags =3D MWAIT2flg(0x50) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBR= S, .exit_latency =3D 480, .target_residency =3D 5000, }, { .name =3D "C10", - .flags =3D MWAIT2flg(0x60) | CPUIDLE_FLAG_TLB_FLUSHED, + .flags =3D MWAIT2flg(0x60) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBR= S, .exit_latency =3D 890, .target_residency =3D 5000, }, @@ -576,7 +582,7 @@ static struct cpuidle_state __read_mostl }, { .name =3D "C6", - .flags =3D MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED, + .flags =3D MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBR= S, .exit_latency =3D 133, .target_residency =3D 600, }, @@ -906,6 +912,7 @@ static const struct cpuidle_state snr_cs static void cf_check mwait_idle(void) { unsigned int cpu =3D smp_processor_id(); + struct cpu_info *info =3D get_cpu_info(); struct acpi_processor_power *power =3D processor_powers[cpu]; struct acpi_processor_cx *cx =3D NULL; unsigned int next_state; @@ -932,8 +939,6 @@ static void cf_check mwait_idle(void) pm_idle_save(); else { - struct cpu_info *info =3D get_cpu_info(); - spec_ctrl_enter_idle(info); safe_halt(); spec_ctrl_exit_idle(info); @@ -960,6 +965,11 @@ static void cf_check mwait_idle(void) if ((cx->type >=3D 3) && errata_c6_workaround()) cx =3D power->safe_state; =20 + if (cx->ibrs_disable) { + ASSERT(!cx->irq_enable_early); + spec_ctrl_enter_idle(info); + } + #if 0 /* XXX Can we/do we need to do something similar on Xen? */ /* * leave_mm() to avoid costly and often unnecessary wakeups @@ -991,6 +1001,10 @@ static void cf_check mwait_idle(void) =20 /* Now back in C0. */ update_idle_stats(power, cx, before, after); + + if (cx->ibrs_disable) + spec_ctrl_exit_idle(info); + local_irq_enable(); =20 TRACE_6D(TRC_PM_IDLE_EXIT, cx->type, after, @@ -1603,6 +1617,8 @@ static int cf_check mwait_idle_cpu_init( /* cstate_restore_tsc() needs to be a no-op */ boot_cpu_has(X86_FEATURE_NONSTOP_TSC)) cx->irq_enable_early =3D true; + if (cpuidle_state_table[cstate].flags & CPUIDLE_FLAG_IBRS) + cx->ibrs_disable =3D true; =20 dev->count++; } --- a/xen/include/xen/cpuidle.h +++ b/xen/include/xen/cpuidle.h @@ -42,7 +42,8 @@ struct acpi_processor_cx u8 idx; u8 type; /* ACPI_STATE_Cn */ u8 entry_method; /* ACPI_CSTATE_EM_xxx */ - bool irq_enable_early; + bool irq_enable_early:1; + bool ibrs_disable:1; u32 address; u32 latency; u32 target_residency; From nobody Tue May 21 03:36:08 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=1660828185; cv=pass; d=zohomail.com; s=zohoarc; b=iUkghSwLdi01kh1ANn0dCPtdNKG0fK5o4DgKezPo0Jrw1dpnUeo1dtbJfFkspqDy0fHYFpVosNxfhmMp7oelQ5gDLYBvF6KiszyA5lD0toXmZVbS+xni6w7k9HxlP2mReLO8eCPEhBFPWEdQSDZe0ZBu96MD0ribGTZ/FOAJCS0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660828185; 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=CVrB88mfrrp+goXNrmifXuSnpLqlyJcpZNv/ZM+AtB8=; b=hLxyGGFxXGmkvXe/qouQzJzka6qLh7i6P+JHmI9sse+6GKIBOYl0MbpBqNEwwkcKa7CfTFrwISPY7r2SVNk839L1fVQfITmWSPDRaF1MMtsOUaPMxnOoyWoX3vGEIyzGk5rcfMFTMNVLgSIPifMCh2emP9Uza7/SyOp0tkvfSPQ= 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 1660828185822948.2931808299886; Thu, 18 Aug 2022 06:09:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.389534.626522 (Exim 4.92) (envelope-from ) id 1oOfH4-00017F-Vf; Thu, 18 Aug 2022 13:09:26 +0000 Received: by outflank-mailman (output) from mailman id 389534.626522; Thu, 18 Aug 2022 13:09:26 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oOfH4-000175-St; Thu, 18 Aug 2022 13:09:26 +0000 Received: by outflank-mailman (input) for mailman id 389534; Thu, 18 Aug 2022 13:09:25 +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 1oOfDA-0007Vi-U7 for xen-devel@lists.xenproject.org; Thu, 18 Aug 2022 13:05:25 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140057.outbound.protection.outlook.com [40.107.14.57]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 6bdd91de-1ef6-11ed-bd2e-47488cf2e6aa; Thu, 18 Aug 2022 15:05:24 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by VI1PR04MB4989.eurprd04.prod.outlook.com (2603:10a6:803:60::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.11; Thu, 18 Aug 2022 13:05:21 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5525.010; Thu, 18 Aug 2022 13:05:21 +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: 6bdd91de-1ef6-11ed-bd2e-47488cf2e6aa ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h9H9F4F9zoKkTENlCjJ964chkTTVRTkUR1S2pOPBcSuY1fPvKaXteK5eT1D8FWTJe8r8v4DZqQJERokiR5zghNZHHJaFbrpBoWe7c83ln4naFlHTSYrgGphh7AF0GD/gOjWUkb8vXWZCrszWNJJjbpE8NbrqXvKSpdysNBADxQsocJf/AhDfiT6zSGCRrB74DT8cIVwI2AEwXcK2/kQqUhCEd3TZh4FzqUFbOHe9dzm1biaVj5lIAX1+R6WT/BlsFNOr4JRu1meq67ejT1fGVjCX82H7ralZ3VhJTdOu1qm8l6P9LvSyE5iSRAs5vj/fSo2OF9Ps+mqYER8mXCOXJg== 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=CVrB88mfrrp+goXNrmifXuSnpLqlyJcpZNv/ZM+AtB8=; b=ewzK4xKMaH+p906fWLPVCqwRkZ2fpiRDpEMdBpy3ZUh6Haem7ckNVWHQE3eKSXjpryOp0oBrdoKMulb48aVflDSDNvc9gWRvuyaQRu5dLiTMPOamTxRFtSY0Nldpab+x91JTIUJ30C/vMm22ShK9y0LwHY/XdVmncmqmShRdT+W2wWV6Fyaawv4DCmm3hMeC564eZxcQb0FY388DEY+swJpbGxJa+fUHfmiJKzDFGPaRxnFEiVpVLOYKTQmAQpzyUG4PI6dXPCmmajPi90NGSE8FTPFJzvV6kbhXH7ta8sdlbmcISPocEr0tWZ9EC2X1bZodazTjh+Hn7DfA8PdWuw== 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=CVrB88mfrrp+goXNrmifXuSnpLqlyJcpZNv/ZM+AtB8=; b=m7rCSSsuQEolH4IeXrbSyhsUjsl9XjeSMpfFNZ4L+gDk9gUMCGiKFYfUZqpaJL8uHBJI5KTuTyDmAAnqeQKzfYARKPA2xG0XgYJDcPjFwIhW9JvdP0lch4tofI0ZfZ/U93Mu18m5vxilEbmWwjTeHPWIKAZXeFtxUkbyogJhwHw09d7G0NOXbS2YfveUoRfxhKsf2eNh5DesDERl99Lg4n1qaH2Bo/TT6Y87Ath0RFKIjJX5cU4stAu8PzAA4fS2lUO1pHupSQ0z3Ch6k/RQhNhSwOYOhfxgkpbteERDMDRisn6tFnm+nyF64Izabfv+HuS2ku1L7YAJSz2OhxJfkg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <3bdae38c-1dd4-558e-64a7-886b9bcf771f@suse.com> Date: Thu, 18 Aug 2022 15:05:19 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: [PATCH v3 5/5] x86/mwait-idle: make SPR C1 and C1E be independent 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: <84200e9c-ee22-c240-826f-6c7006c0ef57@suse.com> In-Reply-To: <84200e9c-ee22-c240-826f-6c7006c0ef57@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0008.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::13) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1feb2a44-05bd-4345-1a32-08da811a4e7c X-MS-TrafficTypeDiagnostic: VI1PR04MB4989:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: G+u4ZFAQ3Rw18kb7IaeCisn6SMD+7Cq/eOEYWgP/RK1TkVl2Dwspjtgjm6ZO3vYC6n4I1FEi4ZCD8oa7mSAetjI2f5Z/GKKQboBKITpJFEOOzYAcYLiTy4gs/OB57ARxZKJ+j40woYH2KKjzFscAh+Z9mmePJ45/SAEqvOsHLiA+bFw319Z5eST4nK4294yreKLpUbKSE1FY8mFXU5Q1s7j5dqef2UyXRFq0sQiUIKTKcgna/034jqVgghcId0QYaQEX4CU6XX9x2wLh0VFxPGASlqaUYho+dy6+XWZSKxP6X6nEpVscRJ8fELMMsNOn9fI8yviergMi4PDfoW2rQDFdXzvPuB7mjIP8W9ucQW/wmiFN/zS1hXh2zcAt3zuuvOE+6xksZ6FDqE/TFMbrZ4dRfF7Sj98kSyIeu+ouAy+19cliu9hMfw7gUqMIyR4jqcFN3i1XEqdwcKhfpbXVcx6YFYypAl7kpOTfktbNY99dw3tw1HHSoJ/A11BNCKs0kE0wiAuFH9Txxiy6cW4IqM/NVLdWBcit3neJqlcN3n0ZM0ibeUPvCLoWYik3TGUXVJk2Wom84f29xO8odZtTHICiEDT/lfom/ClBCyYFdsee20NUNA05r+eChldiPMd+8mXHd/w9XDI/nps/Z7TP+vhu9ndb7ddweXL0ZHKfE4xW2f7tnVwXp4cn4V/cHPON6TH3oQwRCXOrIj7kOfItmq3nMg6UAlP2pAXVTDoAdj2gmJCs5NvDXArVq5q3xXFk1swabJ6k2y6AIb26z6WDJf2LiZ3g+O5e4SwmFviued4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(366004)(376002)(39860400002)(136003)(396003)(346002)(2906002)(66946007)(478600001)(66476007)(8676002)(66556008)(6506007)(41300700001)(31686004)(186003)(26005)(2616005)(6512007)(4326008)(6486002)(83380400001)(36756003)(86362001)(31696002)(5660300002)(38100700002)(316002)(54906003)(6916009)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OS8vbzFmb2txWmlZWnRDcGFLMVY1WTdyOE9PVnlOUTZjYm44S3pVV2tBcU0r?= =?utf-8?B?YTNxZ0YreGpKRFBPaFhqeHFNcWhQRDk4MlUvRmNTd1dRNEExLzZONXE3cm5a?= =?utf-8?B?cDR2Z2RIMkphV1RHNTdhOE9VazJMNWdSUEpsT0hNUmVvOGlDMXBZN1UzTTgx?= =?utf-8?B?ekNvUGUvR2IzTG1Pbk1jbmt2WktmV0hRZm1nSjRydXE0QkNob1hOSElHd08y?= =?utf-8?B?T1o5b2RWZ1FsUDJIRDFiYmEzdFhHdkdzYWtvRHA0d05JVFJDc1JYWkZnSjBH?= =?utf-8?B?RG13WEl6R3V0MC94MzNhMmVYa21mRnp6OG16Smd3a3BseFlqY2prVDM4MGpM?= =?utf-8?B?MkNtVmpZZC9UMXVUL2w5NUF0UXE3WUpVQUJjRDMvOU82azlWMXA4SERXb1lP?= =?utf-8?B?aC9wbmFhRm1DRmFYTHBFNkZ0cC80Q3hxZnhQOXhVa3NnMlQ2aDNWaVpwakJu?= =?utf-8?B?Kzg4bzFSQlgyZkJyTTVRcHVqQmV4Ti9uZjhBMGxNRXJhVzlKcG8xUU5XTDU0?= =?utf-8?B?UWluSTdEb0ViSmhxYkN3dzRoRjU1N3FGdEtRWDhEVVBWSEZwWlRCWnlYcXBw?= =?utf-8?B?eWh0ZitlS1JrQ1UxY0hVNjNPVEIrSEE2bUkycU84UnFsVGVrdEM3MEY0K2VV?= =?utf-8?B?Tng2RlpFRVAzTnRGR0dyMEZzRXZHQjRyVTBMaWpNSjV0dU9HZUQ0a21RcEl2?= =?utf-8?B?Z0hmbHFjVzV1NERabUpkN0wxSzFhczViNy9EdEtvNm1kOTN6Wlg1aU9vM05R?= =?utf-8?B?Q0xTMWFMK2dwQmswYzhpclpRK0ZERWhTTDhrYTBBejlLTTlaS1o2Ti9XOFhp?= =?utf-8?B?ZW9GME1WYWxMSzhrak1EaGR3dEtqMzZCa0FCbVVqNXpvbjJDUU9iWEJVRU9U?= =?utf-8?B?aDM1cWthWnpob3NuR0pBaTlweGdCaE5VbkcrSkZUM3NXa25veExkYTBVOHgw?= =?utf-8?B?eVFXL043d05FZ1ZlSkszSlIxVGlueW1QTVRwZlpWUXV2dEVycXhjeEljU0Zq?= =?utf-8?B?RlpsdWRzOXI3NGtubVJxNHZRQ2lqNktTcituZXJzSm9sd3FaNjVwNTBRRXRD?= =?utf-8?B?LzFsWGl1SXJ6dGdNeWVuOTl5Zi9lTXF4QXlQZXVqdEFyaG9hSVhwT2J3WDFj?= =?utf-8?B?dVlkczVJRzFlTXY4RHhEOTVsUlV4dmFmWUJzYjdnMzA2R1VJU0RtU2ZrMitj?= =?utf-8?B?NkdWTkVkdVdEVXcyMmIvS0VvRUFyN256T1FXV2xjbWpuYUdyMEVBMU8rejlw?= =?utf-8?B?MEdHSTV5Qk9RejJhMUFQem03bTIvVFdDOHUzbU5BMDJjTi9Cb0tNSDdoaFdM?= =?utf-8?B?ZjVOVUZFVHV1UE1yWDhGZ0V6WjZBTjFUWk9QTFVPU0JZTkh2dlFsYXpmRTAw?= =?utf-8?B?clhtVmlJZ0U4MmNBdU9LaS9ENHRNRlN1VlFoVCtSTkZEUHUwbVdZUUN1SURV?= =?utf-8?B?OWpKZFNmZVIyY042UDYrVWNrWE5QUlh2V1V0WVBQYWpPaThWM0tUVWdNNHhx?= =?utf-8?B?RnNVeHdFUVozL0huUGVjdmhVR2x4ZXpKRUFidFJ2ZndwYm1teWtUSzAwY0VR?= =?utf-8?B?bHJQRW9oWDQrcm5CS0lFN01XTUFZWUNBQWphTjhnUzBqSXVlME5hbTJyUWdE?= =?utf-8?B?eTVCQTRuaURKS09vU28zaG9lUHhLT3BvTGdQZUVrTGYyNkxpNWVsMGNnRTRJ?= =?utf-8?B?N0lLS2x2WmRBNC91Z25uelR3VTdieEcvSGE2cFh1dFl5VUpyVW5yTVIzUjZq?= =?utf-8?B?ZWtrQnNhUG1zeDFWQk5EUEFkRXN6c041RnB4dXVlcExkNEx4dHpKRWJOb1ZI?= =?utf-8?B?TE9DekxwV0hRSXFNZWlQbzdWVERROXo1UTRDQm9vQ2FSWUZZSW9XZ2VraUM0?= =?utf-8?B?cVNUVzhoM0o5c0xxNlZOZ1FqMnJxOE0xK210aDFseGJnMFI0UzJZekp5R1Ba?= =?utf-8?B?M1JKYXBnZE9OVXl0NzFBNDZGb2thUHRwRWx2bFVwY0dXM3JCb1BiQktWdzYx?= =?utf-8?B?Y213djE0dkxTVUJVL1NuVG1JWko2WkQxZmx3MHVHdE9GRUJ6eGp1bHR2K2Vn?= =?utf-8?B?dXZxSjZjTnpnT1VNUXA2aldqRCs1ZkdPLzBHQ3ZlR0g1L05ndUpPUVBCQktn?= =?utf-8?Q?wo10v9cSmUnWQTopEfc2tpEhq?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1feb2a44-05bd-4345-1a32-08da811a4e7c X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2022 13:05:21.3485 (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: 9zFiSjyZya3WCA2d4GeQA5S17T6aU2n9bUhLlhO/mLAOxfb3NavKSLXsZikgxSPOK++3m2GmNhNj5dDnw9roUw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4989 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1660828186990100001 Content-Type: text/plain; charset="utf-8" From: Artem Bityutskiy This patch partially reverts the changes made by the following commit: da0e58c038e6 intel_idle: add 'preferred_cstates' module argument As that commit describes, on early Sapphire Rapids Xeon platforms the C1 and C1E states were mutually exclusive, so that users could only have either C1= and C6, or C1E and C6. However, Intel firmware engineers managed to remove this limitation and mak= e C1 and C1E to be completely independent, just like on previous Xeon platforms. Therefore, this patch: * Removes commentary describing the old, and now non-existing SPR C1E limitation. * Marks SPR C1E as available by default. * Removes the 'preferred_cstates' parameter handling for SPR. Both C1 and C1E will be available regardless of 'preferred_cstates' value. We expect that all SPR systems are shipping with new firmware, which includ= es the C1/C1E improvement. Signed-off-by: Artem Bityutskiy Signed-off-by: Rafael J. Wysocki Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 15= 48fac47a11 Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- v3: New. --- a/xen/arch/x86/cpu/mwait-idle.c +++ b/xen/arch/x86/cpu/mwait-idle.c @@ -689,16 +689,6 @@ static struct cpuidle_state __read_mostl {} }; =20 -/* - * On Sapphire Rapids Xeon C1 has to be disabled if C1E is enabled, and vi= ce - * versa. On SPR C1E is enabled only if "C1E promotion" bit is set in - * MSR_IA32_POWER_CTL. But in this case there effectively no C1, because C1 - * requests are promoted to C1E. If the "C1E promotion" bit is cleared, th= en - * both C1 and C1E requests end up with C1, so there is effectively no C1E. - * - * By default we enable C1 and disable C1E by marking it with - * 'CPUIDLE_FLAG_DISABLED'. - */ static struct cpuidle_state __read_mostly spr_cstates[] =3D { { .name =3D "C1", @@ -708,7 +698,7 @@ static struct cpuidle_state __read_mostl }, { .name =3D "C1E", - .flags =3D MWAIT2flg(0x01) | CPUIDLE_FLAG_DISABLED, + .flags =3D MWAIT2flg(0x01), .exit_latency =3D 2, .target_residency =3D 4, }, @@ -1401,17 +1391,6 @@ static void __init spr_idle_state_table_ { uint64_t msr; =20 - /* Check if user prefers C1E over C1. */ - if ((preferred_states_mask & BIT(2, U)) && - !(preferred_states_mask & BIT(1, U))) { - /* Disable C1 and enable C1E. */ - spr_cstates[0].flags |=3D CPUIDLE_FLAG_DISABLED; - spr_cstates[1].flags &=3D ~CPUIDLE_FLAG_DISABLED; - - /* Request enabling C1E using the "C1E promotion" bit. */ - idle_cpu_spr.c1e_promotion =3D C1E_PROMOTION_ENABLE; - } - /* * By default, the C6 state assumes the worst-case scenario of package * C6. However, if PC6 is disabled, we update the numbers to match