From: "K. Y. Srinivasan" <kys@microsoft.com>
To: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
devel@linuxdriverproject.org, olaf@aepfle.de, apw@canonical.com,
vkuznets@redhat.com, jasowang@redhat.com
Cc: "K. Y. Srinivasan" <kys@microsoft.com>
Subject: [PATCH 28/28] Drivers: hv: vmbus: use cpu_hotplug_enable/disable
Date: Sat, 1 Aug 2015 16:08:32 -0700 [thread overview]
Message-ID: <1438470512-30205-28-git-send-email-kys@microsoft.com> (raw)
In-Reply-To: <1438470512-30205-1-git-send-email-kys@microsoft.com>
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 45d6d7a..f19b6f7 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
prev parent reply other threads:[~2015-08-01 21:47 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-01 23:08 [PATCH 00/28] Drivers: hv: vmbus K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 01/28] Drivers: hv: vmbus: remove hv_synic_free_cpu() call from hv_synic_cleanup() K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 02/28] kexec: define kexec_in_progress in !CONFIG_KEXEC case K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 03/28] Drivers: hv: vmbus: add special kexec handler K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 04/28] Drivers: hv: don't do hypercalls when hypercall_page is NULL K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 05/28] Drivers: hv: vmbus: add special crash handler K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 06/28] Drivers: hv: vmbus: prefer 'die' notification chain to 'panic' K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 07/28] Drivers: hv: kvp: check kzalloc return value K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 08/28] Drivers: hv: fcopy: dynamically allocate smsg_out in fcopy_send_data() K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 09/28] Drivers: hv: balloon: Enable dynamic memory protocol negotiation with Windows 10 hosts K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 10/28] Drivers: hv: vmbus: Permit sending of packets without payload K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 11/28] drivers:hv: Modify hv_vmbus to search for all MMIO ranges available K. Y. Srinivasan
2015-08-05 5:29 ` Greg KH
2015-08-05 5:59 ` KY Srinivasan
2015-08-01 23:08 ` [PATCH 12/28] drivers:hv: Move MMIO range picking from hyper_fb to hv_vmbus K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 13/28] hv: util: checking the wrong variable K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 14/28] Drivers: hv: vmbus: fix typo in hv_port_info struct K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 15/28] Drivers: hv: vmbus: don't send CHANNELMSG_UNLOAD on pre-Win2012R2 hosts K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 16/28] mshyperv: fix recognition of Hyper-V guest crash MSR's K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 17/28] Drivers: hv: vmbus: Consider ND NIC in binding channels to CPUs K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 18/28] Drivers: hv: vmbus: Improve the CPU affiliation for channels K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 19/28] Drivers: hv: vmbus: Further improve CPU affiliation logic K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 20/28] Drivers: hv_vmbus: Fix signal to host condition K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 21/28] drivers/hv: Migrate to new 'set-state' interface K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 22/28] Drivers: hv: vmbus: Implement a clocksource based on the TSC page K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 23/28] Drivers: hv: vmbus: add a sysfs attr to show the binding of channel/VP K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 24/28] tools: hv: add a python script lsvmbus to list VMBus devices K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 25/28] Drivers: hv: vmbus: document the VMBus sysfs files K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 26/28] cpu-hotplug: convert cpu_hotplug_disabled to a counter K. Y. Srinivasan
2015-08-01 23:08 ` [PATCH 27/28] cpu-hotplug: export cpu_hotplug_enable/cpu_hotplug_disable K. Y. Srinivasan
2015-08-01 23:08 ` K. Y. Srinivasan [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1438470512-30205-28-git-send-email-kys@microsoft.com \
--to=kys@microsoft.com \
--cc=apw@canonical.com \
--cc=devel@linuxdriverproject.org \
--cc=gregkh@linuxfoundation.org \
--cc=jasowang@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=olaf@aepfle.de \
--cc=vkuznets@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.