From nobody Sun Oct 5 09:05:14 2025 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 E209C26E710; Wed, 6 Aug 2025 12:18:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754482742; cv=none; b=AVGBrMP/c1kgDxsx1RyzCf0FGP47Xf3Xr0ER302gUzMiffN3R0xUmEEGEyufr5IWdYtDG0dIcGPc3XCfqM88qAKDn/Ro3RXJHHuIMAeC6lHD5MP/whgGJLUArs2hqeryRyGU5pyxypPdbU8Sl0y4XaTayJzVRVsJs30SeUtdmrs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754482742; c=relaxed/simple; bh=hSFA8qtVfzMc5s9jfMNEqt+3cXNT7uR7K30ErKjltc0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=XHMYRMjQbI0nHa7ZP/klDtuH19SX5bytug1+PZbIyP7CvUFQTm8yebbostOickMvdavi8NW1rIUCQYou7EQAYskKild6Xy2fy1djJ7cfkphW36uIJNmMitd6ToEfFg+DIjpG61wYmWE1AG7mqNWoFOWZSz6efyKYlCOkcY2t5n0= 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=c/LrRqxN; arc=none smtp.client-ip=209.85.214.178 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="c/LrRqxN" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-24022261323so9081565ad.1; Wed, 06 Aug 2025 05:18:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754482739; x=1755087539; 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=Jgc038c2v6U/eJUJ8uwSr0YExE6QXlfF5ru9RBAi2LQ=; b=c/LrRqxNtDnblEAMLKwSIkg8PSKjYLpsroQIeT3jxojkifjh3dKm4/DIwGXjjYGKe1 3YuJg/q1bTFy+Prp9hH9V1pzcflT2aTRaHdb+1Fz4L1VXRmAhhU4RazEtvtwt41ESPAR Mddtrz+HHR/BERc3m9qldb5uHwxL363nHVx/ucvjKLqk6JlL1z35H95Owz2JAslxO7OM H0lR+8ivll/lzr0nEggmm4gXx7Dxrl5JqAD71j43bbr121HvT6pquj3hgwJlzbn4E3nF NXd/ofqaby4/C6cbqT1nrvcLC7ppsuiuUUXkFHgf31qzJ3IdBjJtYQo/poaoFPms8fPV rZ2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754482739; x=1755087539; 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=Jgc038c2v6U/eJUJ8uwSr0YExE6QXlfF5ru9RBAi2LQ=; b=TxMaiiBdVwEKRq/1W0jyNrCPun6YvhBEB/qxURj/V6hoU1fsTU3tcIRKFadUQgSB0/ 7T7/wx+y812BCYdS5ODtFtaWh0ALoEap9VyiDNnFuQPDHzgrYRUoLTWIEuCXGMKdPOV9 JIU4Fsey9rq2tAFYw6qES6j1B97rFXT5c8Xg/Q8Zox5+zgEVlRs+CV1N6mpcp6/gKjwm n1VtM9pa3GfvzaZLLZpf1U3eBxjmPAPl2VLLxga6+Rmk4abpHVDEleRCBpWEDlBVzyFB B/CarvbnDelxGk8q6tjtiffft+pU096O2RN0Hqp6bO6Ydu6rquXFCH0FyMDdrQyWZHN1 Ks2g== X-Forwarded-Encrypted: i=1; AJvYcCU5d4KG03zWBBeEKrcQE9d3CvP+12b18MOfpGU+ntjYyASE91bsqPA8WgyCL7XXMtbRjbt8ha2x/ABToyDw@vger.kernel.org, AJvYcCUYrH1VK4zj62Beuv9LOmSNqMPSU2Oo7Tz5Ig8kfbGD0s2REFdnqDT+l5IACaRezrTzsiImyqN2BjPz@vger.kernel.org, AJvYcCVm70ed0tV2xSHOw6qt0hTl4RPWT4Sbvs8UQsBuJPCSuwwQLoqN2D4qypxR2n+u8AC3eqx55JmHBFOX9Ape@vger.kernel.org X-Gm-Message-State: AOJu0YyJhDbiG0ug5mfJ+fnR+fwV/bI2WHcCnP13QoKkKNcAxyaJVFNK xeaQOvd/fBZpEoBc+x/wCRwYiYtffPPGbYgb84u5YSHrgW3cVAqdgxEn X-Gm-Gg: ASbGncsPP28B3ENWBPXL0tdgqcGLb8S8dWWbTVVVZejsktEBwMavmATvgJcDzw0aV9Z M+vT6GEqVub+B38w0YcC8sCKeaGHdC/nBweG7b0bGIfAhdq6rxYyF+Ov2HXL8h4sj/rEbZ8vW5D sx0l6RpQgtidk5Ryr1eJMgw0eVZROXUggAVjl3y93eBSbIR31wR6TnwF+LF/7aITUdsDrGgX5AP M5ZLMbK8CXJReWJwV5vCxHZFEr54qybSmgY0BbNHlYh5/F3mxtA6qXkf5aws1uJ+58K3NaFDlvU eaeioNnHigIQyXkbf93UbvN4jvzyT8VhCN5bDsLNzuEvbxiajI3ks15fsaIDCJEXf4iUH6TfrOl vcOLU56MgOF4wQB/Mp0fRXtzxkUhLgtTWpbipCxb3KLBvl623yomav3K8Zw== X-Google-Smtp-Source: AGHT+IFRbVNsZORFWmlieLEs9UJTH8Ete4v10TjNCdWe6b/8eyK68rAdTvNvkUDxj6YK6D6ki+zIhQ== X-Received: by 2002:a17:903:13c8:b0:23f:f39b:eae4 with SMTP id d9443c01a7336-2429f8d46eamr43696345ad.9.1754482739060; Wed, 06 Aug 2025 05:18:59 -0700 (PDT) Received: from ubuntu-Virtual-Machine.mshome.net ([70.37.26.62]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1f0e81dsm157512705ad.46.2025.08.06.05.18.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Aug 2025 05:18:58 -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, Michael Kelley Subject: [RFC PATCH V6 1/4 Resend] x86/hyperv: Don't use hv apic driver when Secure AVIC is available Date: Wed, 6 Aug 2025 20:18:52 +0800 Message-Id: <20250806121855.442103-2-ltykernel@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250806121855.442103-1-ltykernel@gmail.com> References: <20250806121855.442103-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, the AMD x2apic Secure AVIC driver will be selected. In that case, have hv_apic_init() return immediately without doing anything. Reviewed-by: Michael Kelley Reviewed-by: Neeraj Upadhyay Signed-off-by: Tianyu Lan --- Change since RFC V3: - Update Change log and fix coding style issue. --- arch/x86/hyperv/hv_apic.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c index bfde0a3498b9..01bc02cc0590 100644 --- a/arch/x86/hyperv/hv_apic.c +++ b/arch/x86/hyperv/hv_apic.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -293,6 +294,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 Sun Oct 5 09:05:14 2025 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (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 DC21E26D4DA; Wed, 6 Aug 2025 12:19:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754482742; cv=none; b=HS/3AoRa3dzKfUnciU4vtjjlnNeRQYLWxqG+Bs0JeyirIdJ0x1dddVYUID5WwD+QiA1P0ePUBAvmVN9/7es0j+EQsVoJgfCkks6Gdv0YH6vtDlU6EUbjhkMiy73cJFadKB1C4dxRpNFOfJqqdr+Uv8TvOy0hiifhnvMUN9X/DNc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754482742; c=relaxed/simple; bh=GVty5/0Ttb9VZ9XytQgM7w6VAdlwlTBNzWw1/nVPS4o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=AA8Jc30u32Fg/eJURsyjVIg1l9+Kj0zY5+KFpr0BtWou7ApDgLVFANBOqr25rc1IMjqEYdBQX9I+CSVPifhButtI5VAQTA3qSz+j5nDMN32atWQ4ZcwkYDTiI4U+K2NJC1+zFGJ+KzAC9nO8IUpih/Oz28g/j+iR0mB/uuu5mo4= 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=lj9qrj4p; arc=none smtp.client-ip=209.85.214.173 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="lj9qrj4p" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-23dc5bcf49eso94103885ad.2; Wed, 06 Aug 2025 05:19:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754482740; x=1755087540; 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=s+Q+j3V/ByE+IaoyN+/BWXCR7kwQAnsARsv3QK+N8rc=; b=lj9qrj4pNeRkUsuboK/wxIN3q0fK7JHkHhWgG0wOHFFifhsnYVQbWWFwDyL31z/sbq 7rQvWaPVMQlIWq9RxhmUgp5Ddg5KYThI6npHE3ExaZ9eHwvQCQeIMEtsXrCv2qtNDCcq +EqFtCy70dGqAIY8L9X4h+KSzPfWkOoXzj6vjYXBCMxWQhYDbGjEM4qzP9VH2eONoC2a o7Enh+8AzArun67ZuI6QcfwvLjIhr3UM5QbfcVVgUGE0V2Aqq/K2w+Z9t0MIBHe4cl8Y 36D5bl/JZ46u2Eu93qpg1jsLw5crOE3wyTuHQSAflj7Xou1A+b5p3aeVoqZSU62GCexf N5IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754482740; x=1755087540; 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=s+Q+j3V/ByE+IaoyN+/BWXCR7kwQAnsARsv3QK+N8rc=; b=U/4nkf67SQPVwtcSonFrxvfnvSzg2dgK6PezlF1o6oxlJ/sga4txjSSIwhfrJmUpAr +nxFp1lGbHwRjiIecyck2/zEzXCnUAdMHeZXjOivKcOdtLvJnc6jBB0POo6kHzllDX9N uKZ7gM8Skok+7fBglcUXwcMNKC1Ai0Yd8p4mX8ejhFtFnN9sSPllBiPI0L/VecKdaOLR 930mTNTrYmHMDEd5+H/wpcOXDt44o0jh786PcC0tuxKjIJ1ZFEfzRLP5WDjN1hsTCgzj rreCTk4QsWTR/ZTlrDqx4EReMznngS/LPOgRs3/08r3Z0u1BZp5xNLgl/x6p3RK/1MxM US+Q== X-Forwarded-Encrypted: i=1; AJvYcCU594z+FdBtNkKvtqlu9OVtbQKPPu7YCXkyhNeUpvJRLgQbJNqmug0ux2E1+oP0EXaT9r4B2gq9rY/BL+2I@vger.kernel.org, AJvYcCUpejYl7RWw3/DSinFn90LvPKr9RA6m+30zqAhAPYgL7jXSFKngNDjO2ApFTWpHSrjWtDdT6cZcb+RU@vger.kernel.org, AJvYcCW16uWIWpXBRmJ8gj32Jc2zx6+/AOIN60dmjwpEcxsCeVgSB2kIIhHN51OWuck6zapTwgQPuwjx9Goh/3kD@vger.kernel.org X-Gm-Message-State: AOJu0YyxqhLdlCKFOzQgDStvDXZScjCG5KZ/nPjA7XG/TMUNt5pqxz2C wk5/53HUkPJ6MUN6FIk4EpScGEdifPHYMRgEYQXEMsaaQb18cWT32kbt X-Gm-Gg: ASbGncvp1njce8xRTO2JeT4/bOyx5KILVqI5Ge354GFvYxfCYfWRwD5hQWkHMwXu+up uuikzomOb78w42ddBbYL9dLNa8EWZZGKHdP/A2o7B4xl4wwZloFSXKyWhC9wlyjqqRUERkx/sUx ZZd0ziW53EsYBQIX2wm0t8nwdl5uz1DSAjXN69mUzey59mVCoLVNltkp8+caHh1Ro57HtSlA43j giwzdxWLuMB6fU4OJ9er0Ir5EqmK+MKYmsa14xaFserF3oTRcBA+fw3dAkVSfXol/RybpA3TrZ5 r8e6JcYqPEDPrRclYN2sOJNm7d73aerzuatJXDD6rNgwW6wrpR2ZAX8lcRjgZKfGrOMlPOiNfcU heUkt+OUhzDagwcIDuuhnR2N+xDL26g8slhpWmu9gAMigmvT9CDZH6LP3fQ== X-Google-Smtp-Source: AGHT+IF6lsxtDwzX1BSb1lHqE+QCccLHBnKirR91sAXikkQfcoY6C8Bv9nfyDMenjWLIHzbAexHZnA== X-Received: by 2002:a17:902:f546:b0:235:f459:69c7 with SMTP id d9443c01a7336-2429f5a5472mr34897555ad.52.1754482739976; Wed, 06 Aug 2025 05:18:59 -0700 (PDT) Received: from ubuntu-Virtual-Machine.mshome.net ([70.37.26.62]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1f0e81dsm157512705ad.46.2025.08.06.05.18.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Aug 2025 05:18:59 -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 V6 2/4 Resend] Drivers: hv: Allow vmbus message synic interrupt injected from Hyper-V Date: Wed, 6 Aug 2025 20:18:53 +0800 Message-Id: <20250806121855.442103-3-ltykernel@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250806121855.442103-1-ltykernel@gmail.com> References: <20250806121855.442103-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. Reviewed-by: Neeraj Upadhyay Signed-off-by: Tianyu Lan --- Change since RFC V5: - Rmove extra line and move hv_enable_coco_interrupt() just after hv_set_msr() in the hv_synic_disable_regs(). Change since RFC V4: - Change the order to call hv_enable_coco_interrupt() in the hv_synic_enable/disable_regs(). - Update commit title "Drivers/hv:" to "Drivers: hv:" Change since RFC V3: - Disable VMBus Message interrupt via hv_enable_ coco_interrupt() in the hv_synic_disable_regs(). --- arch/x86/hyperv/hv_apic.c | 5 +++++ drivers/hv/hv.c | 7 ++++++- drivers/hv/hv_common.c | 5 +++++ include/asm-generic/mshyperv.h | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c index 01bc02cc0590..c9808a51fa37 100644 --- a/arch/x86/hyperv/hv_apic.c +++ b/arch/x86/hyperv/hv_apic.c @@ -54,6 +54,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..d68a96de1626 100644 --- a/drivers/hv/hv.c +++ b/drivers/hv/hv.c @@ -312,10 +312,13 @@ void hv_synic_enable_regs(unsigned int cpu) shared_sint.as_uint64 =3D hv_get_msr(HV_MSR_SINT0 + VMBUS_MESSAGE_SINT); =20 shared_sint.vector =3D vmbus_interrupt; + shared_sint.masked =3D false; shared_sint.auto_eoi =3D hv_recommend_using_aeoi(); hv_set_msr(HV_MSR_SINT0 + VMBUS_MESSAGE_SINT, shared_sint.as_uint64); =20 + hv_enable_coco_interrupt(cpu, vmbus_interrupt, true); + /* Enable the global synic bit */ sctrl.as_uint64 =3D hv_get_msr(HV_MSR_SCONTROL); sctrl.enable =3D 1; @@ -342,7 +345,6 @@ void hv_synic_disable_regs(unsigned int cpu) union hv_synic_scontrol sctrl; =20 shared_sint.as_uint64 =3D hv_get_msr(HV_MSR_SINT0 + VMBUS_MESSAGE_SINT); - shared_sint.masked =3D 1; =20 /* Need to correctly cleanup in the case of SMP!!! */ @@ -350,6 +352,9 @@ void hv_synic_disable_regs(unsigned int cpu) hv_set_msr(HV_MSR_SINT0 + VMBUS_MESSAGE_SINT, shared_sint.as_uint64); =20 simp.as_uint64 =3D hv_get_msr(HV_MSR_SIMP); + + hv_enable_coco_interrupt(cpu, vmbus_interrupt, false); + /* * In Isolation VM, sim and sief pages are allocated by * paravisor. These pages also will be used by kdump 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 Sun Oct 5 09:05:14 2025 Received: from mail-pg1-f174.google.com (mail-pg1-f174.google.com [209.85.215.174]) (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 DF90C28A1CC; Wed, 6 Aug 2025 12:19:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754482743; cv=none; b=DSFEz/XjS6lbKHH91hQhSw+VF+FEk53qTm7YrG7AfbCa9dLB2mUftBoh0eGC2HvLxkmSmEfST+g8SeXQ8KGezP0/yyUWY2M63DLMFwrj8V22QfsLAiaHXZ/MHF2okiq5u3ZEvVkyBVqdShmNXQBhxXTjCjFuvid58u/D9JfJNlY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754482743; c=relaxed/simple; bh=v+x3oOA6VBkhoQgMaBoDpjblp1uQrgSriRdfjEaYUkY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=uECkZBaq+Ydvb14VaMIGQtXnCZ9RD23qauhnz6+Bq+USeXgmQF2213obXbgS16Pdu7V/sr2p4Zi5n4GZ0STiA1ud82q/r7oTMa9OstOFIc73Ue5ql3tPSM3m2b/auWCRJdsY8sh9BuLdpfq2CnLJhfHeQl13rkfuKaf59S+latE= 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=V7+HhwGG; arc=none smtp.client-ip=209.85.215.174 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="V7+HhwGG" Received: by mail-pg1-f174.google.com with SMTP id 41be03b00d2f7-b42254ea4d5so3425967a12.1; Wed, 06 Aug 2025 05:19:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754482741; x=1755087541; 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=Nu1fPX8hvZAwlh5hbY7SO6NLCMrkEFDf2Xo0iEBAdP0=; b=V7+HhwGGF1F3dn6iQF4wRolkWACQU658H7XOO91MopQ9FXBjp6whv01U5UUH8KXKnt y4LSMmsFutKWpsiiFZaughTCmfeQUMT8/M9PYbeVpJ0EmXa1WRvx22n8hqFeIVxXCe0a 1DJ2e/Tqkpv7yg72UEvkrnttCbp6Cl2QlV0uM5dYS0FK6teRPrIiZSw7AEIJmRgQHQ59 V22bQjy1ybPpHLGzBAvhqn5yggXiyRfqIS/AmLr5gMOmTbCrYqiAGFJNPOc7aQn70vff hsxjoTyaOSVRoWHo/qHtTpnrHDIY9yBHZOfI/mxVrRFidWqQf77f7jPXHgcS5tocN9DU X8tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754482741; x=1755087541; 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=Nu1fPX8hvZAwlh5hbY7SO6NLCMrkEFDf2Xo0iEBAdP0=; b=E2w1iIY3VfcDw52gkyxgs2Rf8/4itlyGh+Ed2D8KvU/LQMPwpHOL60chq0fFpd6+Pk vyRATaxHwsF9L5aiMVZAw6Zf2ONuJL9yrNlVjUrN0L61PLATcbcRr7CH6zol6DCSg3eU xampZM7lUC6rmBAvA6+5HsMvANsBs+fnlpj6t3lziFbajvqG0hy5460lQncpZ3En7H9h FKzIJS024CEnDbrd43eKnKSFruO/ICqIINMP3oQESnf0sXjrgsGSYPc2KceJEKiTLKZ2 dE2OJahgaHwpVAZ0mOViJgb+1Uz3seqfXUq149GI4x9IS4X0r+MpoQ1xTJ3c54xawKQG wf9Q== X-Forwarded-Encrypted: i=1; AJvYcCVGK7IW2usuMDIc20S/VVBBuyqMabmpwknLruEcheQsT3KmDVsxSWJc3XCaHua6Ey5gKUTXSzy+8xsMP2sd@vger.kernel.org, AJvYcCWP5ANcaFMau+6sI8jVZv+qRTZpNeVYBpzainDqFER0+TDf86ar9WnPutpOWLW3gairfLCDX32lI0eJgSvR@vger.kernel.org, AJvYcCXbb8sQFcUU4hSJbZR+yHiTqIL4zEnJrbK1n41BxWWXh18Pq5b4Kmwre3NXG0gkhOSSnSeTfb+T1WB+@vger.kernel.org X-Gm-Message-State: AOJu0YxKHGzQVDtHYyIPWe3um6p2HJ4DsZhlLJkekkj9r/cACNvKww3J 5TKfxrj577BDgB34SHj+xE58xemBPhPRc5zD0gDEuOS1E17pS9wi0JGK X-Gm-Gg: ASbGncu0bYeqWIf3g0j8FwscFVcRAAYIM4NMdT1E6agyM0bsn5MDSl1bzlRWSOjcoUH BnIqZWzNNs3LRd1TF3GVGI6f1qlc6k3sBzghU9jtB9LEMF/N8gkyiHiJYPHOAjLkzrPrTD9z5Oc w9Ko+sXkPYC0jNiuILaE0tPFJkuqhO6b4oO9WfYtOhqtthaQ7BXz6sN/ywLR1MBiQ0DxFRl+xeA 6wonhr07myKMhQ+WAF6Z5oYE3tGeBakUWZWbF7mzrlc+VjJnicFTsXu5UR2ckE7dVlvo3LWm7b9 PHx/gxni8H7OuZ069aWnwKLTtr8q/2zM+azIsA9ET3aAPB1OpkS67U8TYvlJnLpRj2PbHXO4t2S HKFDvBs9vj6T03oJgDlpWAzEUsN/ezMk8ytQvbtmfG+zd4I4= X-Google-Smtp-Source: AGHT+IFNPXn6wXlF+pzvpwbEuiDwLg8sOlt62mrcl3zQ7U/rTr0AevvKFL/Nog+roe9u8I1PpBu8dw== X-Received: by 2002:a17:903:a8b:b0:235:5d1:e366 with SMTP id d9443c01a7336-242a0a766afmr26881955ad.10.1754482740993; Wed, 06 Aug 2025 05:19:00 -0700 (PDT) Received: from ubuntu-Virtual-Machine.mshome.net ([70.37.26.62]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1f0e81dsm157512705ad.46.2025.08.06.05.19.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Aug 2025 05:19:00 -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, Michael Kelley Subject: [RFC PATCH V6 3/4 Resend] x86/hyperv: Don't use auto-eoi when Secure AVIC is available Date: Wed, 6 Aug 2025 20:18:54 +0800 Message-Id: <20250806121855.442103-4-ltykernel@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250806121855.442103-1-ltykernel@gmail.com> References: <20250806121855.442103-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 EOI register after handling an interrupt. Reviewed-by: Michael Kelley Reviewed-by: Neeraj Upadhyay Signed-off-by: Tianyu Lan --- Change since RFC V3: - Update title prefix from "x86/Hyper-V" to "x86/hyperv" --- 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 Sun Oct 5 09:05:14 2025 Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.182]) (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 C089B28B50B; Wed, 6 Aug 2025 12:19:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754482744; cv=none; b=YZcHSQpf3V0xJa2TycHBdIe9eIWj6ARDiThy/4OnUn3yq0ojf5kwLr+16jZCqNXSiKfKuC/mmyfaSjwG7ZjNIDmFj9MKeliKObdvajTNwNASB0m3UNPejlNIzdzfM76K98CWrnLeEARpgWT/x0LvY+GjdBf/30WCn8HWm5crbaw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754482744; c=relaxed/simple; bh=fQD5va3FLgNwnz5Y/3p+Iv4jlLgZJbBdD3Cs9ytq1aU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=meX/KfDaulVu2Ht3kNQwwKCi7fnqEvXXdvXuO7rrVy6d1eK8fxlbmq812EEfO1kVVTEXoZ4Jn4BY1usXXw7qOZk0mAiMocrsdaenCWkcZS/6bVNl0XCET5vz+AlFSjIaO7N7lra8HEr5Y1OZX5HTldiLsRTuGuSkGdT4N4k2pRw= 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=D5jeUesI; arc=none smtp.client-ip=209.85.215.182 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="D5jeUesI" Received: by mail-pg1-f182.google.com with SMTP id 41be03b00d2f7-b34a8f69862so4015904a12.2; Wed, 06 Aug 2025 05:19:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754482742; x=1755087542; 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=HJgF5PlTKEpMBduF+V4BQX8h7RaWsdri9v3vr/B/Jk0=; b=D5jeUesI09lcJf0mw+Py6uvO6686Ag7VA+cvdm2YVqnCtgXA4ozwH7JUj/ko8cnq7u jd0dEsKt0a6xe/wGpYXV0TSCUBkY89h/5/sCTn50/I56HgNEJw7D1xYPIOtzvALfP2VE U8464j8jVhKrX3lVEJllQrzPAwqYXnmXnUjOKaj7JhPfXUNplSqKZo4UW0ZDWaSmup54 9k2CMzDNTMPJSxRj8SFLGijopM/M72XHA4rw+7dTU+LAZBMSMOXMeBIdb12oBY11Qcy9 O3BTRm6h+0eJv0xYo7J/+GR1VomN5g6Zenp+kiZdPNpkhBCqXfbaxkXfKyRlWhzPzJiz sU5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754482742; x=1755087542; 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=HJgF5PlTKEpMBduF+V4BQX8h7RaWsdri9v3vr/B/Jk0=; b=gkUarV1BjxMsj0J6gUiql1HWdsW3MnGzYyvHSTT1rVHO/D4aLnxO5dFjSjRw9EoQme 0MYbUerFeqz6Wq7Qm3cgwG7I1kO+e2ZePIISB1InWxUoCXmnhWlQRfKGqinoEf/LBfdX LpeZngazcGkNvd7yKouQ1Hg9CQoVH07Q0CEsaE+xVRlhCtlrSDk/BPd2V8dezs44laoH CF9KJcgTy5oULwedmLOowzkaJQQEv+bWQGam7j9UsPPco5hHVYiJbhXA62xeTUXPRVgv JPShop0WVRncm99UgW4mcIuG1KUvpaFhpIHGGayu5EkIDs3MjJvJdnkSDOVSi80PYonb iqDQ== X-Forwarded-Encrypted: i=1; AJvYcCUO3NyYAxOovYGWKCIgpY45hZQRapONhjSjoe1YQI3KBI1bNEFb502l95o1/5X0s6oF6FgJYMlrXZw6DWqM@vger.kernel.org, AJvYcCVhgWsOQQWPZfzDbxyuRjNWhm22fDd/0P6TXAcDSwUspwx7TsI8RbYzQdamhD7U/deXKh1kl82OU93G@vger.kernel.org, AJvYcCVxcwifwAWAbxd+u/cDLsjlUCfJrz5eFGdBr1YkKFPAGCNGegmICnh9qyfdkDiP7XMMpmuhu/x+0sEHKs3J@vger.kernel.org X-Gm-Message-State: AOJu0YyZgLVc33NYE73S7n79rysE+XShQgTh9irbbjPjXCCT1D4VFqEL 4DOy7xqt5T9D1chgF1qS9CwSUBdszAVX+r2YzmaX8L0Z2lz07s7pWuA8 X-Gm-Gg: ASbGnctYGFuF76p8JVC5c8J0JpuUheaS1vBW2HpmhNtsOg7i9c1OObKKgOG7JIWkYh5 Ow8851i9ErrF/R7PbxWuebbcGQ53EUjJC1Ot5GuPVyAxSoNDX6LcyJjqwpEUiHB2TttOVEWaAkT HtjtjYs5bs2KoY2kctbesLv15ioIa2cQeYqxqpabV59SDROuTsHTk9+8JgKhs87dEid4tj7/39W ELFLIRerRnTpJWG7m85St4PXV30lUfbL2yd0Fxzz5wL0/CBWJaD72Xo75e6N/POp3vbfHKwuAi3 jcPHwPrhc5sAWuCWpk2WHTJ7EdjYhZI65DdTrsiHz4mWpv1VyMyr2uhdZ48SwibMToo5XwFCdiA lvqLa/kXzO2LiI+EfIlQz95lf3XI0dy+zEBigKNI8q1Bo/Jk= X-Google-Smtp-Source: AGHT+IFn3pqXg+FgY3dqFkUytqrevszprpq8fZlrYrzfhf7thHXIiuA5KljshhSz6MHWi97+seYKxg== X-Received: by 2002:a17:902:db0a:b0:21f:4649:fd49 with SMTP id d9443c01a7336-242a0beaaf4mr33174185ad.49.1754482741945; Wed, 06 Aug 2025 05:19:01 -0700 (PDT) Received: from ubuntu-Virtual-Machine.mshome.net ([70.37.26.62]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-241d1f0e81dsm157512705ad.46.2025.08.06.05.19.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Aug 2025 05:19:01 -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, Michael Kelley Subject: [RFC PATCH V6 4/4 Resend] x86/hyperv: Allow Hyper-V to inject STIMER0 interrupts Date: Wed, 6 Aug 2025 20:18:55 +0800 Message-Id: <20250806121855.442103-5-ltykernel@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250806121855.442103-1-ltykernel@gmail.com> References: <20250806121855.442103-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. Reviewed-by: Michael Kelley Reviewed-by: Neeraj Upadhyay 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