Hi all, This series introduces changes in the VMBus drivers to reassign (at runtime) the CPU that a VMbus channel will interrupt. This feature can be used for load balancing or other purposes, e.g. to offline a given vCPU (vCPUs with no interrupts assigned can be taken offline). Thanks, Andrea Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> Cc: Andrew Murray <amurray@xxxxxxxxxxxxxxxxxxxx> Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> Cc: "James E.J. Bottomley" <jejb@xxxxxxxxxxxxx> Cc: "Martin K. Petersen" <martin.petersen@xxxxxxxxxx> Andrea Parri (Microsoft) (11): Drivers: hv: vmbus: Always handle the VMBus messages on CPU0 Drivers: hv: vmbus: Don't bind the offer&rescind works to a specific CPU Drivers: hv: vmbus: Replace the per-CPU channel lists with a global array of channels hv_netvsc: Disable NAPI before closing the VMBus channel hv_utils: Always execute the fcopy and vss callbacks in a tasklet Drivers: hv: vmbus: Use a spin lock for synchronizing channel scheduling vs. channel removal PCI: hv: Prepare hv_compose_msi_msg() for the VMBus-channel-interrupt-to-vCPU reassignment functionality Drivers: hv: vmbus: Remove the unused HV_LOCALIZED channel affinity logic Drivers: hv: vmbus: Synchronize init_vp_index() vs. CPU hotplug Drivers: hv: vmbus: Introduce the CHANNELMSG_MODIFYCHANNEL message type scsi: storvsc: Re-init stor_chns when a channel interrupt is re-assigned drivers/hv/channel.c | 58 +++-- drivers/hv/channel_mgmt.c | 326 ++++++++++++++-------------- drivers/hv/connection.c | 58 +---- drivers/hv/hv.c | 16 +- drivers/hv/hv_fcopy.c | 2 +- drivers/hv/hv_snapshot.c | 2 +- drivers/hv/hv_trace.h | 19 ++ drivers/hv/hyperv_vmbus.h | 32 ++- drivers/hv/vmbus_drv.c | 241 ++++++++++++++++---- drivers/net/hyperv/netvsc.c | 7 +- drivers/pci/controller/pci-hyperv.c | 44 ++-- drivers/scsi/storvsc_drv.c | 95 +++++++- include/linux/hyperv.h | 51 ++--- 13 files changed, 599 insertions(+), 352 deletions(-) -- 2.24.0