Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1200439

[PATCH 13/13] Drivers: hv: vmbus: use cpu_hotplug_enable/disable

From "K. Y. Srinivasan" <kys@microsoft.com>
Newsgroups linux.kernel
Subject [PATCH 13/13] Drivers: hv: vmbus: use cpu_hotplug_enable/disable
Date 2015-08-05 08:30 +0200
Message-ID <pU0n8-1uk-21@gated-at.bofh.it> (permalink)
References <pU0n7-1uk-3@gated-at.bofh.it> <pU0n7-1uk-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Vitaly Kuznetsov <vkuznets@redhat.com>

Commit e513229b4c38 ("Drivers: hv: vmbus: prevent cpu offlining on newer
hypervisors") was altering smp_ops.cpu_disable to prevent CPU offlining.
We can bo better by using cpu_hotplug_enable/disable functions instead of
such hard-coding.

Reported-by: Radim Kr.má  <rkrcmar@redhat.com>
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
---
 drivers/hv/vmbus_drv.c |   38 ++++----------------------------------
 1 files changed, 4 insertions(+), 34 deletions(-)

diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index 50100ec..0a344fa 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -828,38 +828,6 @@ static void vmbus_isr(void)
 	}
 }
 
-#ifdef CONFIG_HOTPLUG_CPU
-static int hyperv_cpu_disable(void)
-{
-	return -ENOSYS;
-}
-
-static void hv_cpu_hotplug_quirk(bool vmbus_loaded)
-{
-	static void *previous_cpu_disable;
-
-	/*
-	 * Offlining a CPU when running on newer hypervisors (WS2012R2, Win8,
-	 * ...) is not supported at this moment as channel interrupts are
-	 * distributed across all of them.
-	 */
-
-	if ((vmbus_proto_version == VERSION_WS2008) ||
-	    (vmbus_proto_version == VERSION_WIN7))
-		return;
-
-	if (vmbus_loaded) {
-		previous_cpu_disable = smp_ops.cpu_disable;
-		smp_ops.cpu_disable = hyperv_cpu_disable;
-		pr_notice("CPU offlining is not supported by hypervisor\n");
-	} else if (previous_cpu_disable)
-		smp_ops.cpu_disable = previous_cpu_disable;
-}
-#else
-static void hv_cpu_hotplug_quirk(bool vmbus_loaded)
-{
-}
-#endif
 
 /*
  * vmbus_bus_init -Main vmbus driver initialization routine.
@@ -901,7 +869,8 @@ static int vmbus_bus_init(int irq)
 	if (ret)
 		goto err_alloc;
 
-	hv_cpu_hotplug_quirk(true);
+	if (vmbus_proto_version > VERSION_WIN7)
+		cpu_hotplug_disable();
 
 	/*
 	 * Only register if the crash MSRs are available
@@ -1364,7 +1333,8 @@ static void __exit vmbus_exit(void)
 	}
 	hv_synic_free();
 	acpi_bus_unregister_driver(&vmbus_acpi_driver);
-	hv_cpu_hotplug_quirk(false);
+	if (vmbus_proto_version > VERSION_WIN7)
+		cpu_hotplug_enable();
 }
 
 
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 00/13] Drivers: hv: vmbus: Miscellaneous fixes  "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-05 08:30 +0200
  [PATCH 08/13] Drivers: hv: vmbus: add a sysfs attr to show the binding of channel/VP "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-05 08:30 +0200
  RE: [PATCH 00/13] Drivers: hv: vmbus: Miscellaneous fixes  KY Srinivasan <kys@microsoft.com> - 2015-08-05 08:30 +0200
  [PATCH 13/13] Drivers: hv: vmbus: use cpu_hotplug_enable/disable "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-05 08:30 +0200
  [PATCH 11/13] cpu-hotplug: convert cpu_hotplug_disabled to a counter "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-05 08:30 +0200
  [PATCH 05/13] Drivers: hv_vmbus: Fix signal to host condition "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-05 08:40 +0200
  [PATCH 07/13] Drivers: hv: vmbus: Implement a clocksource based on the TSC page "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-05 08:40 +0200
  [PATCH 12/13] cpu-hotplug: export cpu_hotplug_enable/cpu_hotplug_disable "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-05 08:40 +0200
  [PATCH 01/13] drivers:hv: Modify hv_vmbus to search for all MMIO ranges available. "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-05 08:40 +0200
    [PATCH 03/13] Drivers: hv: vmbus: Improve the CPU affiliation for channels "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-05 08:40 +0200
    [PATCH 09/13] tools: hv: add a python script lsvmbus to list VMBus devices "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-05 09:00 +0200

csiph-web