From nobody Mon Oct 6 06:26:57 2025 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 15C3D1F12FB; Wed, 23 Jul 2025 19:03:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753297396; cv=none; b=PVy96EbYZ5D3/FoanRHV0NH5hQpyOn15dCB1HCVXB90sy0m1NFIUZJdKDaMOmtgxK9iyxUVBj9aUF7NGXKUZSrYL7d3hgxGzkf3fTGymdTzFu4B3bP+YxJqJXdvw42zgY4WrevAne/AjfGFZjoOEL9Fqkej10nrI6z7OMMznlNI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753297396; c=relaxed/simple; bh=NpUgUKlbyta3HoUzbthZJe9nbJi2yA/hVsL5jpI1Qgc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=StGKM5h6Qry04jteG8suJrMVxNcaW77Z/aHCinH5w8KII3BBo3PNwXYgC7MbJwi/rF40zelATXX2SBb2AjporXu6Y9+JAtgvJJw6wxicBA8SO1mgi+SnnNdyBJT0y/aoqhWEBOg0siehyRmpTEw51UNHYn7uBbkd9Auy+eBZsZo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ti1M09ex; arc=none smtp.client-ip=209.85.210.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ti1M09ex" Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-74931666cbcso281070b3a.0; Wed, 23 Jul 2025 12:03:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753297394; x=1753902194; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OUGyln3YUNvAev0vt+DFy1ByCk18D3Xp07H0Oxb4O+I=; b=Ti1M09exPTm0L88wI3lIP/X9W1dfVQdUr8qTSMC+fpL0E1oSaOSsGeq2suAuSNEOvx TmFgjk/n4GxsaskYZRB1YwgLDUNfle/TgWLY7m+aR+Xya5RBlnX0S+VGUKaAlJ3RhxSu a7tx2mgcnEtdpYFmBShJXbeN2FUIorOD24Xn1DSovfZhlIYxLExkPcBkf5RCAg7Tnh92 nphj0AiPAIsRHgYBaAqcVI4t1wxY+1G2PZvTzn0UgElHskk8pRefOVqCAnpFVPY3sBbG rSf6RWg1kAIJiYdnNjHd4E2K361ZKYC7sglcAiGJezGI4RykPHP5r3j0lJ27rJOS20be Y23w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753297394; x=1753902194; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OUGyln3YUNvAev0vt+DFy1ByCk18D3Xp07H0Oxb4O+I=; b=tSiYL1vsyotjTTc9ib8qD5I12XLZS1xpAxor7sWV6Yv/9tKPJrCpP53KHg717uwET/ O6gDUXeR2pRMpXDcaZJRX1HHm9Q6eEBCVlV4QSwCqc3J0cTzsWKZNGA29dPa2nLBqC55 TyXej5bqgg5ik0/5Tjp+TEovzJM+POBeS3eDFeHe6hooArM+TJn2jEnWOPRk+F/aqysz /XrEw0+DZWxowYZasoixU27YZcu/lq4mFJ64TXQR+JJqClqrPVZGIhXl9nrVX77xu98l swU7Ou3bF79lhUSEz72TG+pg8s/jaMos0weTDUV9m0eH3E+fKsZtfDDs575z6WuIvj85 YEAw== X-Forwarded-Encrypted: i=1; AJvYcCU7jk14SYlmoduDyneC34wlfacMxhEoME8zEr1W/hc1mrfCllTvf93+SCjZ+pfudla8MDUsR7qv4VTM7h/w@vger.kernel.org, AJvYcCUhKmfqpTMBXX2bnNgZEeTVQIovjoqYB7xlcYrpY1c1h7v+TTe8PIY9ePCCkwbni9QjFNzfy6RXAZk6/a3w@vger.kernel.org, AJvYcCUsl8c7HXbf4MjwVaCASdh+LRw60Fp3DTFgvLNot9Y2moQYfjNhDu2MB5f2a6+GBNYkHFzw043z0kyF@vger.kernel.org X-Gm-Message-State: AOJu0YxQmSEMTwoDVoI+TG+r6ORApXIy749tmg2fUbuqiFmJ+32LQgC6 mZbmztH7/JMf7/9eEp8Zv+WeyP7+Rjo5lDAnuUH5+dtwUwGbEsWXjrY0 X-Gm-Gg: ASbGncuKPRY+MqbVnI18G4IOGQ6YBvGJk5EJ8dY6NUUQ0IF/nLhsDTVQZblfrIinww/ lSa6jtLShy584iwKzHRMh9exirRU8RbDoNelMfwLOMMtIulXblBcivLExHZhhybijC+2jwmPoZy Kepa+SVTNF8UB1M0WZWPk4otGrYBBNRHYlSFirt128fOBj3jx7O4efLd9pUHIsund6aEWedqN5M ygXCfTHKigkc09YUo0SQjncXy4gxNvUnLXF+31ALGaqxAocFySB9H3Olmsfs9m5QfzN8q0Tuuxf NKEVHrYx5TuTIq/zW93bVgXhuvmeoFhEUHU6derkw9qBaRAi2fEJmfiioHTNcpJKuW/4595ND9j 6IDEY0iOq4XtrJ/nHUSe25CUwYsQo2adzEBzUML+KCxLJ0dP7Wy28P62DApcTUp4= X-Google-Smtp-Source: AGHT+IH1b4E3Itoypv4MRl5iL0FqnogJ7PlOeKFLKTuH18/7nhFL0FiruFb69ahdgLRgg0qkix8ZGg== X-Received: by 2002:a05:6a21:9989:b0:233:3036:6fae with SMTP id adf61e73a8af0-23d491311e2mr6217548637.27.1753297394207; Wed, 23 Jul 2025 12:03:14 -0700 (PDT) Received: from ubuntu-Virtual-Machine.corp.microsoft.com ([2001:4898:80e8:73:51be:8747:b004:dd13]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b3f2fe653a7sm9513884a12.2.2025.07.23.12.03.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Jul 2025 12:03:13 -0700 (PDT) From: Tianyu Lan To: kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, arnd@arndb.de, Neeraj.Upadhyay@amd.com, kvijayab@amd.com Cc: Tianyu Lan , linux-arch@vger.kernel.org, linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH V3 1/4] x86/Hyper-V: Not use hv apic driver when Secure AVIC is available Date: Wed, 23 Jul 2025 15:03:05 -0400 Message-Id: <20250723190308.5945-2-ltykernel@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250723190308.5945-1-ltykernel@gmail.com> References: <20250723190308.5945-1-ltykernel@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tianyu Lan When Secure AVIC is available, AMD x2apic Secure AVIC driver should be selected and return directly in the hv_apic_init(). Signed-off-by: Tianyu Lan --- arch/x86/hyperv/hv_apic.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c index bfde0a3498b9..1c48396e5389 100644 --- a/arch/x86/hyperv/hv_apic.c +++ b/arch/x86/hyperv/hv_apic.c @@ -293,6 +293,9 @@ static void hv_send_ipi_self(int vector) =20 void __init hv_apic_init(void) { + if (cc_platform_has(CC_ATTR_SNP_SECURE_AVIC)) + return; + if (ms_hyperv.hints & HV_X64_CLUSTER_IPI_RECOMMENDED) { pr_info("Hyper-V: Using IPI hypercalls\n"); /* --=20 2.25.1 From nobody Mon Oct 6 06:26:57 2025 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0BBE021A42F; Wed, 23 Jul 2025 19:03:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753297397; cv=none; b=niR/Ka4MOo5uGS6DVNok0mMXgBYUxvgwvUKiIC6uRiKGpHKCvs2hifo6G7/PP6H0BlaUnufdxQtATIuTGdzjZuFAV7fpaN/GTd41Ljep8Q3hkL/byJxAiN51H3ebWVsWTc90RWaOGSQZ1dc0CbMQAXTkMEGWO2SvYba0MslAooU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753297397; c=relaxed/simple; bh=F0QcUV2GpzxLWK79UBGJM5xZhPEntD+StQRxSsqwA1g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JuYRqv5Owk48W+n1B4D4aWoTFXqq3bi7SJ5mRBgfeMuP3m4DXRQwR0x12PzIzF2N3qonDYsywgZdCzgryo6Ff7juvLim9+muc4rhGA4fUHhJbjVSNO5RdTNmw1lyY05BBy0Swh6Qz3uvuZ4OdKBrpuFcAXpgudiA8qXyJWCz6gU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Uo1coXzQ; arc=none smtp.client-ip=209.85.216.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Uo1coXzQ" Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-312e747d2d8so879263a91.0; Wed, 23 Jul 2025 12:03:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753297395; x=1753902195; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vMbOhpwWYUm0Ppb5mKeY2S/rLvAw840TCqNURlJCkCI=; b=Uo1coXzQCtbCqQvhwD38Zmees8ddCJp5fMBOVq9GULQMEHQaa5jVzJfIUBsPm3NsY1 fP1uECilsmPtVu+s/Pvxz32ZVXyt1wT7MuLXXbouDbCtxieT5buDLQT1+S4+XWVR36v4 odR5O/YrDThD22TdLXgN4vhVa06ayJGA6xWhMWvlUVx2RjvQKsQd8PLvSf+omPc9xrH+ CYpK2Gr0w3ah04wPAiwbq75KzF7ggf5VHpomlaPwzEeUGM3FR1PsvZ0j0yLXA/k1RgTs wK+XLS61twHHURbuHK/hgB06flA1Mim9oVqE9IXs30pwV51lUTcaDVwj78dYvtYS63HV LaDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753297395; x=1753902195; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vMbOhpwWYUm0Ppb5mKeY2S/rLvAw840TCqNURlJCkCI=; b=hXhMnWkDU/EdOQYTVobd+q/NnEpJjsTbzd8UJiFy9DFjzuwMJuvesEPo847YZfUXiU q9uWgQKtnI9NpSEZg78Ml/QXuFErOqUrLCsmgQmWyB6IOTRAnsNfykG0xydhbQVVET6D OH9VrITk1p1VB7pUrGNYMvO/ssR4ob7XWLaxoFG6efLSQJwZCszMwZbbUXImTqnPP+R/ c38wx3kAgMkUMK4SOwPgpbthDZIkr9+bhVroVUncclKvBTBp3x7HF6yxMKReQfExYIhz X9rPI63S/+FNeSWDh4ZbvbexidqWgoaFMskYKZBoBl0SVeCo+7WlwOfIEDNdu1gQSGwQ UapQ== X-Forwarded-Encrypted: i=1; AJvYcCUOs+NGP3yGBVtMkjBsl9PtSwI2qS2tS1MWrq/FznHDMIjtTgr1seV5t5vqkO3wBl/gvHMAh3cSWql+rxR6@vger.kernel.org, AJvYcCUPa3cOr/nrWmNXhRQ6f0KTqT+mCdpmXHAN4FXMaIhANOXZMZ3f56oplG7dGmwwsA8LyGnhGsp1fo23A5Ej@vger.kernel.org, AJvYcCXnCs5kWrMIWTYFC0ItmcDhzz4ekRT9RBYGFO2rsNYELbZVd/YlhfX3gJu+x971ankvKkge3F1gRkye@vger.kernel.org X-Gm-Message-State: AOJu0Ywia+PYFX8/gPxlAjawN2lXFAxAZF2VurB8UIJOqwlBJ5lZCfkh r9Lm6gUEj3ur23mTeIH+Kp6HmDuwPdf+qk1rIFGcea33G75C7QsmIMic X-Gm-Gg: ASbGncuZWfTweFffGBGqPo/srJEJ+BvCKOhvxIQj4RXnpZbhsPknCHqHp4D2+4Q7Ew0 mvXUEaz/vITPfRoKsiA7I6B4TaV/5lleuUmzvHMbBuS5mDb9B/cXL5CMXMlnHkB2SVfEKpDAzW0 ugQlfctJTdBtQsy676PQUzzJ2BmrWdfGGhhCZko52j5Tl0jzX2eMbWjHzptLGQqTpmZSznBfy/9 cMIzxX2cOBMvX2gMJfuvFipJUhDYnoaFJ7R/4UItyaJ2d2biLBiAR8gxhZluiVkNtxtgoyNmCNl 6eXYSxVDQKqYDzEteCO5WuOOT65g3jFBVFDoevovvpWA1grePcXp9zZRt8T2ZYnAEOoKM+oYolR Ee41c6EOwfS5Wg7+1++LEzfsppXTTXMXVtjWnx98wZzBJlBGFBwIrHr2oN4nHJW4= X-Google-Smtp-Source: AGHT+IH9nVYC5Tjp2TFWcLFI5AwZOy8EsFuv5wt4CKAYmneeaO5AeJSEpnJETkfA8xoDyK5QgTXtpA== X-Received: by 2002:a17:90b:2650:b0:315:aa6d:f20e with SMTP id 98e67ed59e1d1-31e5130f5d5mr5077507a91.4.1753297395274; Wed, 23 Jul 2025 12:03:15 -0700 (PDT) Received: from ubuntu-Virtual-Machine.corp.microsoft.com ([2001:4898:80e8:73:51be:8747:b004:dd13]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b3f2fe653a7sm9513884a12.2.2025.07.23.12.03.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Jul 2025 12:03:14 -0700 (PDT) From: Tianyu Lan To: kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, arnd@arndb.de, Neeraj.Upadhyay@amd.com, kvijayab@amd.com Cc: Tianyu Lan , linux-arch@vger.kernel.org, linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH V3 2/4] Drivers: hv: Allow vmbus message synic interrupt injected from Hyper-V Date: Wed, 23 Jul 2025 15:03:06 -0400 Message-Id: <20250723190308.5945-3-ltykernel@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250723190308.5945-1-ltykernel@gmail.com> References: <20250723190308.5945-1-ltykernel@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tianyu Lan When Secure AVIC is enabled, VMBus driver should call x2apic Secure AVIC interface to allow Hyper-V to inject VMBus message interrupt. Signed-off-by: Tianyu Lan --- Change since v3 - Add hv_enable_coco_interrupt() as wrapper of apic_update_vector() arch/x86/hyperv/hv_apic.c | 5 +++++ drivers/hv/hv.c | 2 ++ drivers/hv/hv_common.c | 5 +++++ include/asm-generic/mshyperv.h | 1 + 4 files changed, 13 insertions(+) diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c index 1c48396e5389..dd6829440ea2 100644 --- a/arch/x86/hyperv/hv_apic.c +++ b/arch/x86/hyperv/hv_apic.c @@ -53,6 +53,11 @@ static void hv_apic_icr_write(u32 low, u32 id) wrmsrq(HV_X64_MSR_ICR, reg_val); } =20 +void hv_enable_coco_interrupt(unsigned int cpu, unsigned int vector, bool = set) +{ + apic_update_vector(cpu, vector, set); +} + static u32 hv_apic_read(u32 reg) { u32 reg_val, hi; diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c index 308c8f279df8..2aafe8946e5b 100644 --- a/drivers/hv/hv.c +++ b/drivers/hv/hv.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include "hyperv_vmbus.h" =20 @@ -310,6 +311,7 @@ void hv_synic_enable_regs(unsigned int cpu) if (vmbus_irq !=3D -1) enable_percpu_irq(vmbus_irq, 0); shared_sint.as_uint64 =3D hv_get_msr(HV_MSR_SINT0 + VMBUS_MESSAGE_SINT); + hv_enable_coco_interrupt(cpu, vmbus_interrupt, true); =20 shared_sint.vector =3D vmbus_interrupt; shared_sint.masked =3D false; diff --git a/drivers/hv/hv_common.c b/drivers/hv/hv_common.c index 49898d10faff..0f024ab3d360 100644 --- a/drivers/hv/hv_common.c +++ b/drivers/hv/hv_common.c @@ -716,6 +716,11 @@ u64 __weak hv_tdx_hypercall(u64 control, u64 param1, u= 64 param2) } EXPORT_SYMBOL_GPL(hv_tdx_hypercall); =20 +void __weak hv_enable_coco_interrupt(unsigned int cpu, unsigned int vector= , bool set) +{ +} +EXPORT_SYMBOL_GPL(hv_enable_coco_interrupt); + void hv_identify_partition_type(void) { /* Assume guest role */ diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h index a729b77983fa..7907c9878369 100644 --- a/include/asm-generic/mshyperv.h +++ b/include/asm-generic/mshyperv.h @@ -333,6 +333,7 @@ bool hv_is_isolation_supported(void); bool hv_isolation_type_snp(void); u64 hv_ghcb_hypercall(u64 control, void *input, void *output, u32 input_si= ze); u64 hv_tdx_hypercall(u64 control, u64 param1, u64 param2); +void hv_enable_coco_interrupt(unsigned int cpu, unsigned int vector, bool = set); void hyperv_cleanup(void); bool hv_query_ext_cap(u64 cap_query); void hv_setup_dma_ops(struct device *dev, bool coherent); --=20 2.25.1 From nobody Mon Oct 6 06:26:57 2025 Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1D7322B8BD; Wed, 23 Jul 2025 19:03:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753297398; cv=none; b=m56mLlR3mHc5hJK/42hquhi11k5p9DwjRLQSmBxB6Y8WMcgMq8SeEOc5EtI+ZPmXN1NRF75NYFMseOjKJe40qNIX2WbEONzCNwvVJKT6e0pdoq3lvH9PRhHvznIeda89B3ezUgg3i+xezhgkYvOZSv0WJKk5OxDgoc++UTqRKLY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753297398; c=relaxed/simple; bh=bdcmFsR/RQ3H75sRKpSmbprpwo9X63LE4Pw/O0JTaQI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=SjD3WWK77g9jz5AUf6x1f6yc5eOnKYzJLGPvGKr/51sszioZvLmqRwM6Ve0Boc0GvxZTLytTa+ayfUposU84raWVWsBNsFT5lc9cEWcqhbFdQVP21R52cT5ICbcrpBIAusinpHLwNPAniMIoQctF53PAREY3V8/RRxSHh7ThI2U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=kLtr4Qda; arc=none smtp.client-ip=209.85.210.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kLtr4Qda" Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-74b54cead6cso202263b3a.1; Wed, 23 Jul 2025 12:03:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753297396; x=1753902196; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=J59q3wJp3DzX0AaSMzXIfjEZnXs9Xrj++0C93Jd2C/8=; b=kLtr4QdaaK85Om8kNq4/Dhh4N0OWaRDc2x9PY1V33mfRBkdVSeSr/xjTqAwKBpqGv+ PtcZ/humGdWTUpeGDtWuzNfZI9sd333gj2KnwuvhhQNnLANRopzaDJPvD3LPvX+u7CRN huC0nqYIxvcdjsAB47QNq9JN1wbu5aEzhdEzqNskh70zqtui0WDn4iWCHMwqsVCp7rVp tDedy8baZZ9Fz84qbmD0PDoNVZwyyebervZ8Qho/y1MhyC9MfZBPdwo6d3CkW4V3de5x K6RL1dxEgsEBRFdoQGnZpBhML6/1j6bwEGNpTGF3tgPxaeftXnGzXDcYoP8WDRFGUuVr UIrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753297396; x=1753902196; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=J59q3wJp3DzX0AaSMzXIfjEZnXs9Xrj++0C93Jd2C/8=; b=NIbn6gnqdoB23BbHiXi8HJnKxGPqI/Gk9C/U03rtGCLH/+dyX2jkMW8YtWU2kwbX2Y 1oyieHR92PSsS9Y/qdiut/kcqrxXfH8LhpfNNyZ4ZCngvqcxgCMR/G6hlQ7BcsH1x4Pr 1wpByfiGHZJS4Yz12fudNVMlo/Y+OZ43qj95YJ9AN2JUrFP7sQkDEnuJdN+W+MWv88Pl eztd4wHp9x39LMcLVk5CKtMLT2UKA59Ov7kcA14Gixy0THuO1w0kVf+SuYh4qHLW5Z9D YDY+x/P6qarnY7b2+w/ldn6klu/mWX65INYCXePDj2+Be4ipdBVGZOhI3PV1NowzLNK2 nx5g== X-Forwarded-Encrypted: i=1; AJvYcCVmB4gQRDF1GGfDN3DAih4yzVxGKcfez4A9lG4H/i5oDOYIXXiKmpcKtCCTlnfv5NGy7Mx9WU0P/xHL+/LH@vger.kernel.org, AJvYcCWlvwE43FWnVv02CaL/wd8z0AbagPKMDI/qzDO/s1e2LSHHUHm/IVXxYRcduP2tdmrBx6iZSg3vL2n8zmgJ@vger.kernel.org, AJvYcCXRwAQsG0XcUQOqfq9H8kOCPZyeNdwlfc1x/y4iamnk/Rb4kgFExHfRfgl8jpdD53l0d1ziZ0yL21qd@vger.kernel.org X-Gm-Message-State: AOJu0YxWyPLLrvzEANcRjwx0RkfZzmJjak980iFpNgFqSJRB+eL9712R 6CsEgV4lkqAD/C75zkJOcpqA5NQpHkH522VcZ8IWbGgXpeU0mnisnMGB X-Gm-Gg: ASbGncv1a2h72scj4oyXQWWFh2Y9MD/E8zS26HXyuk0MnUNzbOcG1wce3XAnFLrgvIC l2ohkeYkg5h93g/IaaiyetQPOPXk5u+4G0EPXAq28h0nv6W5LbvZVBl2wTlWH6eqQdSm2KV4tQn qrfoynr07lv/P1ag48asCtDOAeIMcta7hJmOKS76AGwWTvsHzh7IHRuFVUmV06uT2Bv6eevEjTQ fbrqQIahsTYKRY9EgpZnRQplbGc5FxKxdsPHaIA81S3muARPkCMnyvmpIDQR8+wkqhFVlVm5YD8 38z1W1WwKZ9voWcJTbqaoCrPobEZQqCXAOV1LZReups8hTBkQ+8oeF6AxJvdDwD17ptLfSQKaGi cfPHBMvx34ry9fHnzh4FKYgkv3TCU3r9AaSAi+2/ewY0q04bxXnuMC3gmc+bgZuA= X-Google-Smtp-Source: AGHT+IFHhyaKGSTBdYCxIj73PlM2Bszsat9K94uOgCnq67D8YqhwYY8DW/clVn5vlJ5z+55XbCgo4Q== X-Received: by 2002:a05:6a20:5483:b0:237:90ae:82de with SMTP id adf61e73a8af0-23d4902052dmr5626009637.16.1753297396085; Wed, 23 Jul 2025 12:03:16 -0700 (PDT) Received: from ubuntu-Virtual-Machine.corp.microsoft.com ([2001:4898:80e8:73:51be:8747:b004:dd13]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b3f2fe653a7sm9513884a12.2.2025.07.23.12.03.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Jul 2025 12:03:15 -0700 (PDT) From: Tianyu Lan To: kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, arnd@arndb.de, Neeraj.Upadhyay@amd.com, kvijayab@amd.com Cc: Tianyu Lan , linux-arch@vger.kernel.org, linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH V3 3/4] x86/Hyper-V: Don't use auto-eoi when Secure AVIC is available Date: Wed, 23 Jul 2025 15:03:07 -0400 Message-Id: <20250723190308.5945-4-ltykernel@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250723190308.5945-1-ltykernel@gmail.com> References: <20250723190308.5945-1-ltykernel@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tianyu Lan Hyper-V doesn't support auto-eoi with Secure AVIC. So set the HV_DEPRECATING_AEOI_RECOMMENDED flag to force writing the EIO register after handling an interrupt. Signed-off-by: Tianyu Lan --- arch/x86/kernel/cpu/mshyperv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c index c78f860419d6..8f029650f16c 100644 --- a/arch/x86/kernel/cpu/mshyperv.c +++ b/arch/x86/kernel/cpu/mshyperv.c @@ -463,6 +463,8 @@ static void __init ms_hyperv_init_platform(void) ms_hyperv.max_vp_index, ms_hyperv.max_lp_index); =20 hv_identify_partition_type(); + if (cc_platform_has(CC_ATTR_SNP_SECURE_AVIC)) + ms_hyperv.hints |=3D HV_DEPRECATING_AEOI_RECOMMENDED; =20 if (ms_hyperv.hints & HV_X64_HYPERV_NESTED) { hv_nested =3D true; --=20 2.25.1 From nobody Mon Oct 6 06:26:57 2025 Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C6164230269; Wed, 23 Jul 2025 19:03:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753297399; cv=none; b=pXMS8+25DKanurQBp5NodlpE0dAmgdIoBhtpFBjPV/HKcBwPglkjurR0sk9C8MUyRaye3sGkdMjwl6PJDPIafoaVtoSKMhN2HKwxXtJOLkM+XzlYJY7S91ERPEt0Ow4lG7JqfTf326B5o54kNBZ/tisor/b+dMo7+zliJp1OvpQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753297399; c=relaxed/simple; bh=rpgouV2UNlv5UQtAMZqI9RFffnu58ens9a6v7P50Ppc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=R507GHurY/77QAN7NNgB/qdPiiD5vL8n59HvjuJV1TTuvbibPotu5APdzY00Yg+UW7mLvHIMhOQsYu6n94cNx3S4eUxHxkwVrDecGnX/2xjmGG86WnZ2EhL8sCuvXGgKj2kBatvBN9B8VPdcxflGEX2ILOO4HjWp6o814F8mSb8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PSsudyFj; arc=none smtp.client-ip=209.85.216.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PSsudyFj" Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-311d5fdf1f0so163613a91.1; Wed, 23 Jul 2025 12:03:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753297397; x=1753902197; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Qvz4eJix990MTN9WykLFHm3CC3XOPtY4y7Se1Ck7rzE=; b=PSsudyFjQQzkzUNNMr72Zyf4K0agKMCq7OE8Lq3BpaJI5y+J8NoH6dBm3Jlv6lNS5m KyBCZ+MYRiGtGYg2T38n+zBSBwX0v5O/m4pi8PVrUnE7sbznXTTvhGrm5x2IEdZppcRX hkfbuYx3aOhkG6XiwXWxxdZniqe7q3OcCq6VlWUeSfqYWs6g3e6BWyhnNwgcnYeK4fW3 bA/yDnmF19t4c+S3ibwMuAfHAQOH+f7y/gpDl0MRp2llhts3VnpCPbWVcWw0SB4DwJfg ejQv3K0O/1m8jomO4uL2RSj19SRcN/Sv83xTo66RBBCX/DslEgU4H9qCh3zfzRvS0sIt 9HcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753297397; x=1753902197; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Qvz4eJix990MTN9WykLFHm3CC3XOPtY4y7Se1Ck7rzE=; b=YomACPf9MmhF6YGrdhbR58hFauf5TUR1atJgifAZpz4gzuCT7aYhbZCdPyqo6iYyUQ GZ15jmXdjN+4i6o/f4Y0RYbg++w1qkV+xtjwUF7lChs0raIn+oH+6UfVVCtLdczAU3G4 5UxU8n9RfAKtE4OjyGwW1EVT0uofzDRo90BBMRIFV6Pbi61Ud5sUaZPisyBo8P3V2B7R GufiBK9+/wtimdKfIbw1IxaVbYX9hrKVKavzPVdx/o5q1ijxZMeq6EBs0vZec5RA7c/0 YFEYvIgZmWumFbGxe7i1qPgDyhJr4iO1G7gF4IblQ1OGGG+2yNFTWWL/ONpCVKaq4HBZ mJ8Q== X-Forwarded-Encrypted: i=1; AJvYcCV3imy1vdwii1x6I46soP3BkVRw+lxB818jg5u+tR89gRLGVoTAFllTeQHlIaMM9prP9Nz2f6r274Mg@vger.kernel.org, AJvYcCWdehQSBnxsvYTlV6kdSrLOVxw+7QU+CVO55oXy9No7+K+2s2r18Tk1E5jFqV6XtBMfv20Bj6SJh/z3dTx5@vger.kernel.org, AJvYcCXJS2W/GooqvPKPxDBff4fQSqfduMHB5fNa2bb5J9iho+Cktk8wqin7Qa+kLv8X2kRDuy5sktzjzSX3dhzN@vger.kernel.org X-Gm-Message-State: AOJu0YwC/kveZji0ooRCSCHFJusUkLSj0ZXDCvQC/Mw314EL9Ep4cv7v 6AL7DUpFy1ww0sU+1eQvkmFnIdB9hRrS9fjDqRdqHWmoh2kU+ZntMg7J X-Gm-Gg: ASbGncuRD4mnhteiX+hSVZIF3/x0HJutuAwmcxxJEOcJMIC/GRM33seFF8eWot2OB/K 496QjjPeHNYUEPuRqulnepKJ4ffqY/yik9Xm+4CxQsmH7NPkidrILDhR4rpSJ19WaZc0qb655P6 x6etKFeu0fCU90nFMCKKwbBPot6sAPXqTXbmLwbNSJFZcmepsBbSV/Lse8SIggMDbH/3nIcbu9+ Dnu1MIcoLPgTL/Q6gBI531VUNzDsbGgro+kFkNYI5HIMN4pASf2yvmT/HE8GKFQgKw2vezzx/ed AJFOwJRznblpn28VuxwnxHbdOT6njtFTz/Vi28ZY1HZPO9rhjx6n4OXw10wCHgYHpof+AvJCTBe o7216jgiBNNcuDesomJ/n1hp+RpUJoXsONDSEE3UZCiov4Y4cfdRf0ZaTJlcB6g4= X-Google-Smtp-Source: AGHT+IFk2dGWLP3aTIpnshwqZ+XHgyeFd0zPZD5TT4GHB2q83SPzzRHCIVayY2dPEzhtAganyQZ3Bw== X-Received: by 2002:a17:90b:388b:b0:312:ec:412f with SMTP id 98e67ed59e1d1-31e506ef9afmr6338751a91.14.1753297396988; Wed, 23 Jul 2025 12:03:16 -0700 (PDT) Received: from ubuntu-Virtual-Machine.corp.microsoft.com ([2001:4898:80e8:73:51be:8747:b004:dd13]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b3f2fe653a7sm9513884a12.2.2025.07.23.12.03.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Jul 2025 12:03:16 -0700 (PDT) From: Tianyu Lan To: kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, arnd@arndb.de, Neeraj.Upadhyay@amd.com, kvijayab@amd.com Cc: Tianyu Lan , linux-arch@vger.kernel.org, linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH V3 4/4] x86/hyperv: Allow Hyper-V to inject STIMER0 interrupts Date: Wed, 23 Jul 2025 15:03:08 -0400 Message-Id: <20250723190308.5945-5-ltykernel@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250723190308.5945-1-ltykernel@gmail.com> References: <20250723190308.5945-1-ltykernel@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tianyu Lan When Secure AVIC is enabled, call Secure AVIC function to allow Hyper-V to inject STIMER0 interrupt. Signed-off-by: Tianyu Lan --- arch/x86/hyperv/hv_init.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c index 3d1d3547095a..591338162420 100644 --- a/arch/x86/hyperv/hv_init.c +++ b/arch/x86/hyperv/hv_init.c @@ -132,6 +132,10 @@ static int hv_cpu_init(unsigned int cpu) wrmsrq(HV_X64_MSR_VP_ASSIST_PAGE, msr.as_uint64); } =20 + /* Allow Hyper-V stimer vector to be injected from Hypervisor. */ + if (ms_hyperv.misc_features & HV_STIMER_DIRECT_MODE_AVAILABLE) + apic_update_vector(cpu, HYPERV_STIMER0_VECTOR, true); + return hyperv_init_ghcb(); } =20 @@ -239,6 +243,9 @@ static int hv_cpu_die(unsigned int cpu) *ghcb_va =3D NULL; } =20 + if (ms_hyperv.misc_features & HV_STIMER_DIRECT_MODE_AVAILABLE) + apic_update_vector(cpu, HYPERV_STIMER0_VECTOR, false); + hv_common_cpu_die(cpu); =20 if (hv_vp_assist_page && hv_vp_assist_page[cpu]) { --=20 2.25.1