linux-hyperv.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v7 0/4] Add support for clean shutdown with MSHV
@ 2025-12-05 20:17 Praveen K Paladugu
  2025-12-05 20:17 ` [PATCH v7 1/4] fixup! Drivers: hv: Introduce mshv_vtl driver Praveen K Paladugu
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Praveen K Paladugu @ 2025-12-05 20:17 UTC (permalink / raw)
  To: kys, haiyangz, wei.liu, decui, tglx, mingo, linux-hyperv,
	linux-kernel, bp, dave.hansen, x86, hpa, arnd
  Cc: anbelski, prapal, easwar.hariharan, nunodasneves, skinsburskii

Add support for clean shutdown of the root partition when running on
MSHV Hypervisor.

v7:
 - Fix Makefile condition for building mshv_common.c
 - Drop the now unnecessary CONFIG_X86_64 guards

v6:
 - Fixed build errors, by adding CONFIG_X86_64 guard
 - Moved machine_ops hook definition to ms_hyperv_init_platform
 - Addressed review comments in v5

v5:
 - Fixed build errors
 - Padded struct hv_input_set_system_property for alignment
 - Dropped CONFIG_ACPI stub

v4:
 - Adopted machine_ops to order invoking HV_ENTER_SLEEP_STATE as the
   last step in shutdown sequence.
 - This ensures rest of the cleanups are done before powering off

v3:
 - Dropped acpi_sleep handlers as they are not used on mshv
 - Applied ordering for hv_reboot_notifier
 - Fixed build issues on i386, arm64 architectures

v2:
  - Addressed review comments from v1.
  - Moved all sleep state handling methods under CONFIG_ACPI stub
  - - This fixes build issues on non-x86 architectures.

Praveen K Paladugu (4):
  fixup! Drivers: hv: Introduce mshv_vtl driver
  hyperv: Add definitions for MSHV sleep state configuration
  hyperv: Use reboot notifier to configure sleep state
  hyperv: Cleanly shutdown root partition with MSHV

 arch/x86/hyperv/hv_init.c       |  1 +
 arch/x86/include/asm/mshyperv.h |  2 +
 arch/x86/kernel/cpu/mshyperv.c  |  2 +
 drivers/hv/Makefile             |  2 +-
 drivers/hv/mshv_common.c        | 99 +++++++++++++++++++++++++++++++++
 include/hyperv/hvgdk_mini.h     |  4 +-
 include/hyperv/hvhdk_mini.h     | 40 +++++++++++++
 7 files changed, 148 insertions(+), 2 deletions(-)

-- 
2.51.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v7 1/4] fixup! Drivers: hv: Introduce mshv_vtl driver
  2025-12-05 20:17 [PATCH v7 0/4] Add support for clean shutdown with MSHV Praveen K Paladugu
@ 2025-12-05 20:17 ` Praveen K Paladugu
  2025-12-05 23:06   ` Wei Liu
  2025-12-05 20:17 ` [PATCH v7 2/4] hyperv: Add definitions for MSHV sleep state configuration Praveen K Paladugu
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Praveen K Paladugu @ 2025-12-05 20:17 UTC (permalink / raw)
  To: kys, haiyangz, wei.liu, decui, tglx, mingo, linux-hyperv,
	linux-kernel, bp, dave.hansen, x86, hpa, arnd
  Cc: anbelski, prapal, easwar.hariharan, nunodasneves, skinsburskii

Drop the spurios "space" character in Makefile condition check
that causes mshv_common.o to be built regardless of the CONFIG settings.

Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
Suggested-by: Michael Kelley <mhklinux@outlook.com>
---
 drivers/hv/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hv/Makefile b/drivers/hv/Makefile
index 58b8d07639f3..6d929fb0e13d 100644
--- a/drivers/hv/Makefile
+++ b/drivers/hv/Makefile
@@ -20,6 +20,6 @@ mshv_vtl-y := mshv_vtl_main.o
 # Code that must be built-in
 obj-$(CONFIG_HYPERV) += hv_common.o
 obj-$(subst m,y,$(CONFIG_MSHV_ROOT)) += hv_proc.o
-ifneq ($(CONFIG_MSHV_ROOT) $(CONFIG_MSHV_VTL),)
+ifneq ($(CONFIG_MSHV_ROOT)$(CONFIG_MSHV_VTL),)
 	obj-y += mshv_common.o
 endif
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v7 2/4] hyperv: Add definitions for MSHV sleep state configuration
  2025-12-05 20:17 [PATCH v7 0/4] Add support for clean shutdown with MSHV Praveen K Paladugu
  2025-12-05 20:17 ` [PATCH v7 1/4] fixup! Drivers: hv: Introduce mshv_vtl driver Praveen K Paladugu
@ 2025-12-05 20:17 ` Praveen K Paladugu
  2025-12-05 20:17 ` [PATCH v7 3/4] hyperv: Use reboot notifier to configure sleep state Praveen K Paladugu
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Praveen K Paladugu @ 2025-12-05 20:17 UTC (permalink / raw)
  To: kys, haiyangz, wei.liu, decui, tglx, mingo, linux-hyperv,
	linux-kernel, bp, dave.hansen, x86, hpa, arnd
  Cc: anbelski, prapal, easwar.hariharan, nunodasneves, skinsburskii

Add the definitions required to configure sleep states in mshv hypervsior.

Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
Co-developed-by: Anatol Belski <anbelski@linux.microsoft.com>
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
Reviewed-by: Easwar Hariharan <easwar.hariharan@linux.microsoft.com>
Reviewed-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
Acked-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com>
---
 include/hyperv/hvgdk_mini.h |  4 +++-
 include/hyperv/hvhdk_mini.h | 40 +++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/include/hyperv/hvgdk_mini.h b/include/hyperv/hvgdk_mini.h
index 1d5ce11be8b6..04b18d0e37af 100644
--- a/include/hyperv/hvgdk_mini.h
+++ b/include/hyperv/hvgdk_mini.h
@@ -465,19 +465,21 @@ union hv_vp_assist_msr_contents {	 /* HV_REGISTER_VP_ASSIST_PAGE */
 #define HVCALL_RESET_DEBUG_SESSION			0x006b
 #define HVCALL_MAP_STATS_PAGE				0x006c
 #define HVCALL_UNMAP_STATS_PAGE				0x006d
+#define HVCALL_SET_SYSTEM_PROPERTY			0x006f
 #define HVCALL_ADD_LOGICAL_PROCESSOR			0x0076
 #define HVCALL_GET_SYSTEM_PROPERTY			0x007b
 #define HVCALL_MAP_DEVICE_INTERRUPT			0x007c
 #define HVCALL_UNMAP_DEVICE_INTERRUPT			0x007d
 #define HVCALL_RETARGET_INTERRUPT			0x007e
 #define HVCALL_NOTIFY_PARTITION_EVENT                   0x0087
+#define HVCALL_ENTER_SLEEP_STATE			0x0084
 #define HVCALL_NOTIFY_PORT_RING_EMPTY			0x008b
 #define HVCALL_REGISTER_INTERCEPT_RESULT		0x0091
 #define HVCALL_ASSERT_VIRTUAL_INTERRUPT			0x0094
 #define HVCALL_CREATE_PORT				0x0095
 #define HVCALL_CONNECT_PORT				0x0096
 #define HVCALL_START_VP					0x0099
-#define HVCALL_GET_VP_INDEX_FROM_APIC_ID			0x009a
+#define HVCALL_GET_VP_INDEX_FROM_APIC_ID		0x009a
 #define HVCALL_FLUSH_GUEST_PHYSICAL_ADDRESS_SPACE	0x00af
 #define HVCALL_FLUSH_GUEST_PHYSICAL_ADDRESS_LIST	0x00b0
 #define HVCALL_SIGNAL_EVENT_DIRECT			0x00c0
diff --git a/include/hyperv/hvhdk_mini.h b/include/hyperv/hvhdk_mini.h
index f2d7b50de7a4..41a29bf8ec14 100644
--- a/include/hyperv/hvhdk_mini.h
+++ b/include/hyperv/hvhdk_mini.h
@@ -140,6 +140,7 @@ enum hv_snp_status {
 
 enum hv_system_property {
 	/* Add more values when needed */
+	HV_SYSTEM_PROPERTY_SLEEP_STATE = 3,
 	HV_SYSTEM_PROPERTY_SCHEDULER_TYPE = 15,
 	HV_DYNAMIC_PROCESSOR_FEATURE_PROPERTY = 21,
 	HV_SYSTEM_PROPERTY_CRASHDUMPAREA = 47,
@@ -155,6 +156,19 @@ union hv_pfn_range {            /* HV_SPA_PAGE_RANGE */
 	} __packed;
 };
 
+enum hv_sleep_state {
+	HV_SLEEP_STATE_S1 = 1,
+	HV_SLEEP_STATE_S2 = 2,
+	HV_SLEEP_STATE_S3 = 3,
+	HV_SLEEP_STATE_S4 = 4,
+	HV_SLEEP_STATE_S5 = 5,
+	/*
+	 * After hypervisor has received this, any follow up sleep
+	 * state registration requests will be rejected.
+	 */
+	HV_SLEEP_STATE_LOCK = 6
+};
+
 enum hv_dynamic_processor_feature_property {
 	/* Add more values when needed */
 	HV_X64_DYNAMIC_PROCESSOR_FEATURE_MAX_ENCRYPTED_PARTITIONS = 13,
@@ -184,6 +198,32 @@ struct hv_output_get_system_property {
 	};
 } __packed;
 
+struct hv_sleep_state_info {
+	u32 sleep_state; /* enum hv_sleep_state */
+	u8 pm1a_slp_typ;
+	u8 pm1b_slp_typ;
+} __packed;
+
+struct hv_input_set_system_property {
+	u32 property_id; /* enum hv_system_property */
+	u32 reserved;
+	union {
+		/* More fields to be filled in when needed */
+		struct hv_sleep_state_info set_sleep_state_info;
+
+		/*
+		 * Add a reserved field to ensure the union is 8-byte aligned as
+		 * existing members may not be. This is a temporary measure
+		 * until all remaining members are added.
+		 */
+		 u64 reserved0[8];
+	};
+} __packed;
+
+struct hv_input_enter_sleep_state {     /* HV_INPUT_ENTER_SLEEP_STATE */
+	u32 sleep_state;        /* enum hv_sleep_state */
+} __packed;
+
 struct hv_input_map_stats_page {
 	u32 type; /* enum hv_stats_object_type */
 	u32 padding;
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v7 3/4] hyperv: Use reboot notifier to configure sleep state
  2025-12-05 20:17 [PATCH v7 0/4] Add support for clean shutdown with MSHV Praveen K Paladugu
  2025-12-05 20:17 ` [PATCH v7 1/4] fixup! Drivers: hv: Introduce mshv_vtl driver Praveen K Paladugu
  2025-12-05 20:17 ` [PATCH v7 2/4] hyperv: Add definitions for MSHV sleep state configuration Praveen K Paladugu
@ 2025-12-05 20:17 ` Praveen K Paladugu
  2025-12-05 20:17 ` [PATCH v7 4/4] hyperv: Cleanly shutdown root partition with MSHV Praveen K Paladugu
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Praveen K Paladugu @ 2025-12-05 20:17 UTC (permalink / raw)
  To: kys, haiyangz, wei.liu, decui, tglx, mingo, linux-hyperv,
	linux-kernel, bp, dave.hansen, x86, hpa, arnd
  Cc: anbelski, prapal, easwar.hariharan, nunodasneves, skinsburskii

Configure sleep state information from ACPI in MSHV hypervisor using
a reboot notifier. This data allows the hypervisor to correctly power
off the host during shutdown.

Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
Co-developed-by: Anatol Belski <anbelski@linux.microsoft.com>
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
Reviewed-by: Easwar Hariharan <easwar.hariharan@linux.microsoft.com>
Reviewed-by: Stansialv Kinsburskii <skinsburskii@linux.miscrosoft.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
---
 arch/x86/hyperv/hv_init.c       |  1 +
 arch/x86/include/asm/mshyperv.h |  1 +
 drivers/hv/mshv_common.c        | 78 +++++++++++++++++++++++++++++++++
 3 files changed, 80 insertions(+)

diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c
index e28737ec7054..daf97a984b78 100644
--- a/arch/x86/hyperv/hv_init.c
+++ b/arch/x86/hyperv/hv_init.c
@@ -555,6 +555,7 @@ void __init hyperv_init(void)
 
 		hv_remap_tsc_clocksource();
 		hv_root_crash_init();
+		hv_sleep_notifiers_register();
 	} else {
 		hypercall_msr.guest_physical_address = vmalloc_to_pfn(hv_hypercall_pg);
 		wrmsrq(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
index 10037125099a..62a89debfbce 100644
--- a/arch/x86/include/asm/mshyperv.h
+++ b/arch/x86/include/asm/mshyperv.h
@@ -177,6 +177,7 @@ int hyperv_flush_guest_mapping_range(u64 as,
 int hyperv_fill_flush_guest_mapping_list(
 		struct hv_guest_mapping_flush_list *flush,
 		u64 start_gfn, u64 end_gfn);
+void hv_sleep_notifiers_register(void);
 
 #ifdef CONFIG_X86_64
 void hv_apic_init(void);
diff --git a/drivers/hv/mshv_common.c b/drivers/hv/mshv_common.c
index aa2be51979fd..ee733ba1575e 100644
--- a/drivers/hv/mshv_common.c
+++ b/drivers/hv/mshv_common.c
@@ -14,6 +14,9 @@
 #include <asm/mshyperv.h>
 #include <linux/resume_user_mode.h>
 #include <linux/export.h>
+#include <linux/acpi.h>
+#include <linux/notifier.h>
+#include <linux/reboot.h>
 
 #include "mshv.h"
 
@@ -138,3 +141,78 @@ int hv_call_get_partition_property(u64 partition_id,
 	return 0;
 }
 EXPORT_SYMBOL_GPL(hv_call_get_partition_property);
+
+/*
+ * Corresponding sleep states have to be initialized in order for a subsequent
+ * HVCALL_ENTER_SLEEP_STATE call to succeed. Currently only S5 state as per
+ * ACPI 6.4 chapter 7.4.2 is relevant, while S1, S2 and S3 can be supported.
+ *
+ * In order to pass proper PM values to mshv, ACPI should be initialized and
+ * should support S5 sleep state when this method is invoked.
+ */
+static int hv_initialize_sleep_states(void)
+{
+	u64 status;
+	unsigned long flags;
+	struct hv_input_set_system_property *in;
+	acpi_status acpi_status;
+	u8 sleep_type_a, sleep_type_b;
+
+	if (!acpi_sleep_state_supported(ACPI_STATE_S5)) {
+		pr_err("%s: S5 sleep state not supported.\n", __func__);
+		return -ENODEV;
+	}
+
+	acpi_status = acpi_get_sleep_type_data(ACPI_STATE_S5, &sleep_type_a,
+					       &sleep_type_b);
+	if (ACPI_FAILURE(acpi_status))
+		return -ENODEV;
+
+	local_irq_save(flags);
+	in = *this_cpu_ptr(hyperv_pcpu_input_arg);
+	memset(in, 0, sizeof(*in));
+
+	in->property_id = HV_SYSTEM_PROPERTY_SLEEP_STATE;
+	in->set_sleep_state_info.sleep_state = HV_SLEEP_STATE_S5;
+	in->set_sleep_state_info.pm1a_slp_typ = sleep_type_a;
+	in->set_sleep_state_info.pm1b_slp_typ = sleep_type_b;
+
+	status = hv_do_hypercall(HVCALL_SET_SYSTEM_PROPERTY, in, NULL);
+	local_irq_restore(flags);
+
+	if (!hv_result_success(status)) {
+		hv_status_err(status, "\n");
+		return hv_result_to_errno(status);
+	}
+
+	return 0;
+}
+
+/*
+ * This notifier initializes sleep states in mshv hypervisor which will be
+ * used during power off.
+ */
+static int hv_reboot_notifier_handler(struct notifier_block *this,
+				      unsigned long code, void *another)
+{
+	int ret = 0;
+
+	if (code == SYS_HALT || code == SYS_POWER_OFF)
+		ret = hv_initialize_sleep_states();
+
+	return ret ? NOTIFY_DONE : NOTIFY_OK;
+}
+
+static struct notifier_block hv_reboot_notifier = {
+	.notifier_call = hv_reboot_notifier_handler,
+};
+
+void hv_sleep_notifiers_register(void)
+{
+	int ret;
+
+	ret = register_reboot_notifier(&hv_reboot_notifier);
+	if (ret)
+		pr_err("%s: cannot register reboot notifier %d\n", __func__,
+		       ret);
+}
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v7 4/4] hyperv: Cleanly shutdown root partition with MSHV
  2025-12-05 20:17 [PATCH v7 0/4] Add support for clean shutdown with MSHV Praveen K Paladugu
                   ` (2 preceding siblings ...)
  2025-12-05 20:17 ` [PATCH v7 3/4] hyperv: Use reboot notifier to configure sleep state Praveen K Paladugu
@ 2025-12-05 20:17 ` Praveen K Paladugu
  2025-12-05 23:26 ` [PATCH v7 0/4] Add support for clean shutdown " Wei Liu
  2025-12-10  8:14 ` Nathan Chancellor
  5 siblings, 0 replies; 10+ messages in thread
From: Praveen K Paladugu @ 2025-12-05 20:17 UTC (permalink / raw)
  To: kys, haiyangz, wei.liu, decui, tglx, mingo, linux-hyperv,
	linux-kernel, bp, dave.hansen, x86, hpa, arnd
  Cc: anbelski, prapal, easwar.hariharan, nunodasneves, skinsburskii

Root partitions running on MSHV currently attempt ACPI power-off, which
MSHV intercepts and triggers a Machine Check Exception (MCE), leading
to a kernel panic.

Root partitions panic with a trace similar to:

  [   81.306348] reboot: Power down
  [   81.314709] mce: [Hardware Error]: CPU 0: Machine Check Exception: 4 Bank 0: b2000000c0060001
  [   81.314711] mce: [Hardware Error]: TSC 3b8cb60a66 PPIN 11d98332458e4ea9
  [   81.314713] mce: [Hardware Error]: PROCESSOR 0:606a6 TIME 1759339405 SOCKET 0 APIC 0 microcode ffffffff
  [   81.314715] mce: [Hardware Error]: Run the above through 'mcelog --ascii'
  [   81.314716] mce: [Hardware Error]: Machine check: Processor context corrupt
  [   81.314717] Kernel panic - not syncing: Fatal machine check

To avoid this, configure the sleep state in the hypervisor and invoke
the HVCALL_ENTER_SLEEP_STATE hypercall as the final step in the shutdown
sequence. This ensures a clean and safe shutdown of the root partition.

Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
Co-developed-by: Anatol Belski <anbelski@linux.microsoft.com>
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
Reviewed-by: Easwar Hariharan <easwar.hariharan@linux.microsoft.com>
Acked-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com>
---
 arch/x86/include/asm/mshyperv.h |  1 +
 arch/x86/kernel/cpu/mshyperv.c  |  2 ++
 drivers/hv/mshv_common.c        | 21 +++++++++++++++++++++
 3 files changed, 24 insertions(+)

diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
index 62a89debfbce..eef4c3a5ba28 100644
--- a/arch/x86/include/asm/mshyperv.h
+++ b/arch/x86/include/asm/mshyperv.h
@@ -178,6 +178,7 @@ int hyperv_fill_flush_guest_mapping_list(
 		struct hv_guest_mapping_flush_list *flush,
 		u64 start_gfn, u64 end_gfn);
 void hv_sleep_notifiers_register(void);
+void hv_machine_power_off(void);
 
 #ifdef CONFIG_X86_64
 void hv_apic_init(void);
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index fac9953a72ef..579fb2c64cfd 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -621,6 +621,8 @@ static void __init ms_hyperv_init_platform(void)
 #endif
 
 #if IS_ENABLED(CONFIG_HYPERV)
+	if (hv_root_partition())
+		machine_ops.power_off = hv_machine_power_off;
 #if defined(CONFIG_KEXEC_CORE)
 	machine_ops.shutdown = hv_machine_shutdown;
 #endif
diff --git a/drivers/hv/mshv_common.c b/drivers/hv/mshv_common.c
index ee733ba1575e..58027b23c206 100644
--- a/drivers/hv/mshv_common.c
+++ b/drivers/hv/mshv_common.c
@@ -216,3 +216,24 @@ void hv_sleep_notifiers_register(void)
 		pr_err("%s: cannot register reboot notifier %d\n", __func__,
 		       ret);
 }
+
+/*
+ * Power off the machine by entering S5 sleep state via Hyper-V hypercall.
+ * This call does not return if successful.
+ */
+void hv_machine_power_off(void)
+{
+	unsigned long flags;
+	struct hv_input_enter_sleep_state *in;
+
+	local_irq_save(flags);
+	in = *this_cpu_ptr(hyperv_pcpu_input_arg);
+	in->sleep_state = HV_SLEEP_STATE_S5;
+
+	(void)hv_do_hypercall(HVCALL_ENTER_SLEEP_STATE, in, NULL);
+	local_irq_restore(flags);
+
+	/* should never reach here */
+	BUG();
+
+}
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v7 1/4] fixup! Drivers: hv: Introduce mshv_vtl driver
  2025-12-05 20:17 ` [PATCH v7 1/4] fixup! Drivers: hv: Introduce mshv_vtl driver Praveen K Paladugu
@ 2025-12-05 23:06   ` Wei Liu
  2025-12-05 23:08     ` Wei Liu
  0 siblings, 1 reply; 10+ messages in thread
From: Wei Liu @ 2025-12-05 23:06 UTC (permalink / raw)
  To: Praveen K Paladugu
  Cc: kys, haiyangz, wei.liu, decui, tglx, mingo, linux-hyperv,
	linux-kernel, bp, dave.hansen, x86, hpa, arnd, anbelski,
	easwar.hariharan, nunodasneves, skinsburskii

Please provide a proper commit subject.

On Fri, Dec 05, 2025 at 02:17:05PM -0600, Praveen K Paladugu wrote:
> Drop the spurios "space" character in Makefile condition check
> that causes mshv_common.o to be built regardless of the CONFIG settings.
> 
> Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
> Suggested-by: Michael Kelley <mhklinux@outlook.com>

This should come with a Fixes: tag.

> ---
>  drivers/hv/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/hv/Makefile b/drivers/hv/Makefile
> index 58b8d07639f3..6d929fb0e13d 100644
> --- a/drivers/hv/Makefile
> +++ b/drivers/hv/Makefile
> @@ -20,6 +20,6 @@ mshv_vtl-y := mshv_vtl_main.o
>  # Code that must be built-in
>  obj-$(CONFIG_HYPERV) += hv_common.o
>  obj-$(subst m,y,$(CONFIG_MSHV_ROOT)) += hv_proc.o
> -ifneq ($(CONFIG_MSHV_ROOT) $(CONFIG_MSHV_VTL),)
> +ifneq ($(CONFIG_MSHV_ROOT)$(CONFIG_MSHV_VTL),)
>  	obj-y += mshv_common.o
>  endif
> -- 
> 2.51.0
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v7 1/4] fixup! Drivers: hv: Introduce mshv_vtl driver
  2025-12-05 23:06   ` Wei Liu
@ 2025-12-05 23:08     ` Wei Liu
  2025-12-05 23:11       ` Wei Liu
  0 siblings, 1 reply; 10+ messages in thread
From: Wei Liu @ 2025-12-05 23:08 UTC (permalink / raw)
  To: Praveen K Paladugu
  Cc: kys, haiyangz, wei.liu, decui, tglx, mingo, linux-hyperv,
	linux-kernel, bp, dave.hansen, x86, hpa, arnd, anbelski,
	easwar.hariharan, nunodasneves, skinsburskii

On Fri, Dec 05, 2025 at 11:06:24PM +0000, Wei Liu wrote:
> Please provide a proper commit subject.
> 
> On Fri, Dec 05, 2025 at 02:17:05PM -0600, Praveen K Paladugu wrote:
> > Drop the spurios "space" character in Makefile condition check
> > that causes mshv_common.o to be built regardless of the CONFIG settings.
> > 
> > Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
> > Suggested-by: Michael Kelley <mhklinux@outlook.com>
> 
> This should come with a Fixes: tag.

Since the bug is not in any released kernel, so it is not needed.

I don't want to squash this though. So the request to have a proper
subject line still stands.

Wei

> 
> > ---
> >  drivers/hv/Makefile | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/hv/Makefile b/drivers/hv/Makefile
> > index 58b8d07639f3..6d929fb0e13d 100644
> > --- a/drivers/hv/Makefile
> > +++ b/drivers/hv/Makefile
> > @@ -20,6 +20,6 @@ mshv_vtl-y := mshv_vtl_main.o
> >  # Code that must be built-in
> >  obj-$(CONFIG_HYPERV) += hv_common.o
> >  obj-$(subst m,y,$(CONFIG_MSHV_ROOT)) += hv_proc.o
> > -ifneq ($(CONFIG_MSHV_ROOT) $(CONFIG_MSHV_VTL),)
> > +ifneq ($(CONFIG_MSHV_ROOT)$(CONFIG_MSHV_VTL),)
> >  	obj-y += mshv_common.o
> >  endif
> > -- 
> > 2.51.0
> > 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v7 1/4] fixup! Drivers: hv: Introduce mshv_vtl driver
  2025-12-05 23:08     ` Wei Liu
@ 2025-12-05 23:11       ` Wei Liu
  0 siblings, 0 replies; 10+ messages in thread
From: Wei Liu @ 2025-12-05 23:11 UTC (permalink / raw)
  To: Praveen K Paladugu
  Cc: kys, haiyangz, wei.liu, decui, tglx, mingo, linux-hyperv,
	linux-kernel, bp, dave.hansen, x86, hpa, arnd, anbelski,
	easwar.hariharan, nunodasneves, skinsburskii

On Fri, Dec 05, 2025 at 11:08:06PM +0000, Wei Liu wrote:
> On Fri, Dec 05, 2025 at 11:06:24PM +0000, Wei Liu wrote:
> > Please provide a proper commit subject.
> > 
> > On Fri, Dec 05, 2025 at 02:17:05PM -0600, Praveen K Paladugu wrote:
> > > Drop the spurios "space" character in Makefile condition check
> > > that causes mshv_common.o to be built regardless of the CONFIG settings.
> > > 
> > > Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
> > > Suggested-by: Michael Kelley <mhklinux@outlook.com>
> > 
> > This should come with a Fixes: tag.
> 
> Since the bug is not in any released kernel, so it is not needed.
> 
> I don't want to squash this though. So the request to have a proper
> subject line still stands.

Never mind. I can fix this myself. There is no need to have another
round.

Wei

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v7 0/4] Add support for clean shutdown with MSHV
  2025-12-05 20:17 [PATCH v7 0/4] Add support for clean shutdown with MSHV Praveen K Paladugu
                   ` (3 preceding siblings ...)
  2025-12-05 20:17 ` [PATCH v7 4/4] hyperv: Cleanly shutdown root partition with MSHV Praveen K Paladugu
@ 2025-12-05 23:26 ` Wei Liu
  2025-12-10  8:14 ` Nathan Chancellor
  5 siblings, 0 replies; 10+ messages in thread
From: Wei Liu @ 2025-12-05 23:26 UTC (permalink / raw)
  To: Praveen K Paladugu
  Cc: kys, haiyangz, wei.liu, decui, tglx, mingo, linux-hyperv,
	linux-kernel, bp, dave.hansen, x86, hpa, arnd, anbelski,
	easwar.hariharan, nunodasneves, skinsburskii

On Fri, Dec 05, 2025 at 02:17:04PM -0600, Praveen K Paladugu wrote:
> Add support for clean shutdown of the root partition when running on
> MSHV Hypervisor.
> 
> Praveen K Paladugu (4):
[...]
>   hyperv: Add definitions for MSHV sleep state configuration
>   hyperv: Use reboot notifier to configure sleep state
>   hyperv: Cleanly shutdown root partition with MSHV

I queued these patches to hyperv-next.

Wei

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v7 0/4] Add support for clean shutdown with MSHV
  2025-12-05 20:17 [PATCH v7 0/4] Add support for clean shutdown with MSHV Praveen K Paladugu
                   ` (4 preceding siblings ...)
  2025-12-05 23:26 ` [PATCH v7 0/4] Add support for clean shutdown " Wei Liu
@ 2025-12-10  8:14 ` Nathan Chancellor
  5 siblings, 0 replies; 10+ messages in thread
From: Nathan Chancellor @ 2025-12-10  8:14 UTC (permalink / raw)
  To: Praveen K Paladugu
  Cc: kys, haiyangz, wei.liu, decui, tglx, mingo, linux-hyperv,
	linux-kernel, bp, dave.hansen, x86, hpa, arnd, anbelski,
	easwar.hariharan, nunodasneves, skinsburskii

Hi Praveen,

On Fri, Dec 05, 2025 at 02:17:04PM -0600, Praveen K Paladugu wrote:
...
>   hyperv: Use reboot notifier to configure sleep state
>   hyperv: Cleanly shutdown root partition with MSHV

These two patches result in warnings (that get upgraded to errors with
CONFIG_WERROR=y / W=e) on arm64:

  $ make -skj"$(nproc)" ARCH=arm64 CROSS_COMPILE=aarch64-linux- clean defconfig

  $ scripts/config -e HYPERV -e MSHV_ROOT

  $ make -skj"$(nproc)" ARCH=arm64 CROSS_COMPILE=aarch64-linux- olddefconfig drivers/hv/mshv_common.o
  drivers/hv/mshv_common.c:210:6: warning: no previous prototype for 'hv_sleep_notifiers_register' [-Wmissing-prototypes]
    210 | void hv_sleep_notifiers_register(void)
        |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  drivers/hv/mshv_common.c:224:6: warning: no previous prototype for 'hv_machine_power_off' [-Wmissing-prototypes]
    224 | void hv_machine_power_off(void)
        |      ^~~~~~~~~~~~~~~~~~~~

The prototypes for these functions are only available for x86.

Cheers,
Nathan

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-12-10  8:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-05 20:17 [PATCH v7 0/4] Add support for clean shutdown with MSHV Praveen K Paladugu
2025-12-05 20:17 ` [PATCH v7 1/4] fixup! Drivers: hv: Introduce mshv_vtl driver Praveen K Paladugu
2025-12-05 23:06   ` Wei Liu
2025-12-05 23:08     ` Wei Liu
2025-12-05 23:11       ` Wei Liu
2025-12-05 20:17 ` [PATCH v7 2/4] hyperv: Add definitions for MSHV sleep state configuration Praveen K Paladugu
2025-12-05 20:17 ` [PATCH v7 3/4] hyperv: Use reboot notifier to configure sleep state Praveen K Paladugu
2025-12-05 20:17 ` [PATCH v7 4/4] hyperv: Cleanly shutdown root partition with MSHV Praveen K Paladugu
2025-12-05 23:26 ` [PATCH v7 0/4] Add support for clean shutdown " Wei Liu
2025-12-10  8:14 ` Nathan Chancellor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).