From nobody Mon Mar 23 21:23:15 2026 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1773334495; cv=none; d=zohomail.com; s=zohoarc; b=Cnw4tbsHaP2okzlTS2iTHJVsf1/3Sr84phmonRWyMmECpjjtI22UqFxr9Z8HbfkE5qDVFFyuv+6CG4GFA/jRpYFGB0ElDXedgmHSdRvbMDg4FFumZGEPWpYMcF3Yb1501NhwVj11U0buqbADsbB1SnQpTmXpivuXN/V92u0Hmf8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773334495; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dmoB6PX7E346IlhtAnwu7loC1BtwOSw/XEBFSLwwDtY=; b=LEcxqeX6IWsDotaW0qWIqXfXaanl/9d10r4c/ZbWSavGuzaIgwT6xTqEjQAos7bZkD+LoxUjIfW6A2GGCS4ZeDH3ENbwoSNEfyHXojbf2w2AKTR1tv75b4lymmZPRGDSjYLlHOi/lRX1YuLb1p6zQUrT7jiwKnlr07K1n4RJ2pQ= ARC-Authentication-Results: i=1; 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; 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 1773334495492310.7216478435764; Thu, 12 Mar 2026 09:54:55 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1252746.1549308 (Exim 4.92) (envelope-from ) id 1w0jJ0-00080g-1C; Thu, 12 Mar 2026 16:54:38 +0000 Received: by outflank-mailman (output) from mailman id 1252746.1549308; Thu, 12 Mar 2026 16:54:37 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w0jIz-00080W-Rj; Thu, 12 Mar 2026 16:54:37 +0000 Received: by outflank-mailman (input) for mailman id 1252746; Thu, 12 Mar 2026 16:54:36 +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 1w0jIy-0007oX-6x for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:54:36 +0000 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [2a00:1450:4864:20::329]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 24c33f1e-1e34-11f1-9ccf-f158ae23cfc8; Thu, 12 Mar 2026 17:54:33 +0100 (CET) Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-485392de558so7899425e9.1 for ; Thu, 12 Mar 2026 09:54:33 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4854e2537c3sm130839255e9.15.2026.03.12.09.54.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 12 Mar 2026 09:54:31 -0700 (PDT) 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: 24c33f1e-1e34-11f1-9ccf-f158ae23cfc8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1773334472; x=1773939272; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=dmoB6PX7E346IlhtAnwu7loC1BtwOSw/XEBFSLwwDtY=; b=alFQUu+/YbCrNDl2LsdSAiAbljmNzUAZTnKIIEiMSQMlokUkSDGPXZvbwzcLxmheiv ZhoWAbkGEr1BKgfEG/qK7bS2Uo/qF3NMB8j69Uq7Hh2Mu21rM12+7by4lOrELM/klKzQ tfbvOey4adGG1faI91n+ViX+7JBe1v2OQiCIjQWKSFKThKLow/SZKFdOmu9p8yVedc4b 2lu2LSop8sZ7lFwo505eMMh5//hL3RfjDYXHeVamwXWWmFDGUImdXydVCgfptz/jMg0B iCH1k9M6wbOubkVQeKIhg7tNImujlarEpYk5DRV//inmRojsLFTPYf/Z0K3ojds241Tl qHNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773334472; x=1773939272; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dmoB6PX7E346IlhtAnwu7loC1BtwOSw/XEBFSLwwDtY=; b=l7simorpG+vB12wmpC09UeVVf51RwlvL6/jWnBnLQ01iv2C78zrc20/C/No3sjoVCV p+Ul6fjRIeVOnVIkoz4yW48okgVHNoEQN8UJxcxIjraKpmtQo1Zq/a/fOc9TleqXZt5C dQazl8X+JWteAXBitTgaX3pnHk/CCP23KZt+bdCOinkOGtQUW78gstfIzcNEVQFXybjv 5klHVStqm9NrH+FdRBpM+kV66z5jNquaNAzKIzX5XUO/xdiCNOSnQP00w0Czlv3FTDNY G1n+kV5GZfqaTTsuOtubUT1vydPcNc8Vh4tOIjyGg4yyqkl03eJZsx7pwmPYCaD/Yqvx 9n3g== X-Gm-Message-State: AOJu0YwZZaTFfl3b+1bqYQGiZ5xNAU0/w5nHXvrMW97VVcE3mNsgI4IW fBDnVp5VIgtYERJf6Gwg9nRh29S+bsZ5xaDmgAvrxgcnWv9xWjLMz2ZgZlZsdHsWH40XGYVS5k0 81ks= X-Gm-Gg: ATEYQzymRYQPNBLSpUrd6wXSJzmpR2AtNUU8SDFWNV4MA3KeERF3SuZHcoq1xWCsgoT HRu06ccHe82pconInj+n0KxNgmeyf6yO6sosYyFQDbSL1lToVwHzymI6sbygCzYZ/atV6Dy15r/ ZsqdevTERGaKM8KtgdEndejKALWxmJJc/sikXX5dbEBASvOu+VV7oG4TBEN+715lTK+1bZNlg8D Q83b1geOmcSmHcRNaUK94t/SRjVyWOgcVNNjHufwOGBaJ5QQjSKmC6HnnhVcJl7siTPl68++y+E oFki39ui0L+bC5hTqzTbe8E1K8Tbm1GHgDaaOjSEGR/EDm2ENZh54+ci5P6VWdPavWN8tp+pfOm NKTIbMi58BYmrq4gHOInveYTKCyRYMswS8ZGyhuC5SqmZ8zO9jhT8TIqRw/YUrc/jKGaaJMb+RX NDEFb2zVKKwTTXjFiQIAziV1261MGnQrLtYeuCjPi6rP/CHJYcYxst4O9QTvxaFkFcDTENWOH7+ e3rdwpGlsjmXEI= X-Received: by 2002:a05:600c:45cb:b0:483:703e:4ad5 with SMTP id 5b1f17b1804b1-4854b109d3fmr114189105e9.22.1773334472428; Thu, 12 Mar 2026 09:54:32 -0700 (PDT) Message-ID: Date: Thu, 12 Mar 2026 17:54:30 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 1/9] x86/mwait-idle: arrange for BSP MSR adjustments during S3 resume From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com> Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1773334497521158501 Content-Type: text/plain; charset="utf-8" mwait_idle_cpu_init() is only called for APs, yet MSR writes will typically need re-doing post-S3 even for the BSP. When multiple cores / threads are present (and to come back online) in a package, for package scope MSRs this may be covered by APs doing the writes, but we can't rely on that. Signed-off-by: Jan Beulich --- a/xen/arch/x86/acpi/power.c +++ b/xen/arch/x86/acpi/power.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -299,6 +300,7 @@ static int enter_state(u32 state) acpi_sleep_post(state); if ( hvm_cpu_up() ) BUG(); + mwait_idle_resume(); cpufreq_add_cpu(0); =20 enable_cpu: --- a/xen/arch/x86/cpu/mwait-idle.c +++ b/xen/arch/x86/cpu/mwait-idle.c @@ -1680,6 +1680,28 @@ static int __init mwait_idle_probe(void) return 0; } =20 +static void mwait_idle_cpu_tweak(unsigned int cpu) +{ + if (icpu->auto_demotion_disable_flags) + on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1); + + if (icpu->byt_auto_demotion_disable_flag) + on_selected_cpus(cpumask_of(cpu), byt_auto_demotion_disable, NULL, 1); + + 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; + } +} + static int cf_check mwait_idle_cpu_init( struct notifier_block *nfb, unsigned long action, void *hcpu) { @@ -1762,24 +1784,7 @@ static int cf_check mwait_idle_cpu_init( dev->count++; } =20 - if (icpu->auto_demotion_disable_flags) - on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1); - - if (icpu->byt_auto_demotion_disable_flag) - on_selected_cpus(cpumask_of(cpu), byt_auto_demotion_disable, NULL, 1); - - 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; - } + mwait_idle_cpu_tweak(cpu); =20 return NOTIFY_DONE; } @@ -1811,6 +1816,14 @@ int __init mwait_idle_init(struct notifi return err; } =20 +void mwait_idle_resume(void) +{ + if (!icpu) + return; + + mwait_idle_cpu_tweak(smp_processor_id()); +} + /* Helper function for HPET. */ bool __init mwait_pc10_supported(void) { --- a/xen/arch/x86/include/asm/mwait.h +++ b/xen/arch/x86/include/asm/mwait.h @@ -14,9 +14,12 @@ #define MWAIT_ECX_INTERRUPT_BREAK 0x1 =20 void mwait_idle_with_hints(unsigned int eax, unsigned int ecx); + #ifdef CONFIG_INTEL +void mwait_idle_resume(void); bool mwait_pc10_supported(void); #else +static inline void mwait_idle_resume(void) {} static inline bool mwait_pc10_supported(void) { return false;