Hi all, This is a follow-up on the RFC submission [1]. The series introduces changes in the VMBus drivers to reassign the CPU that a VMbus channel will interrupt. This feature can be used for load balancing or other purposes (e.g. CPU offlining). The submission integrates feedback in the RFC to amend the handling of the 'array of channels' (patch #3). Thanks, Andrea [1] https://lkml.kernel.org/r/20200325225505.23998-1-parri.andrea@xxxxxxxxx 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 | 347 +++++++++++++++------------- 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, 620 insertions(+), 352 deletions(-) -- 2.24.0