summaryrefslogtreecommitdiffstats
path: root/include/linux/hyperv.h
diff options
context:
space:
mode:
authorK. Y. Srinivasan2015-05-31 08:37:48 +0200
committerGreg Kroah-Hartman2015-06-01 03:56:31 +0200
commit1f656ff3fdddc2f59649cc84b633b799908f1f7b (patch)
tree4e7745c67619831e1e626dc847fa79c6e28fa671 /include/linux/hyperv.h
parentDrivers: hv: vmbus: Use the vp_index map even for channels bound to CPU 0 (diff)
downloadkernel-qcow2-linux-1f656ff3fdddc2f59649cc84b633b799908f1f7b.tar.gz
kernel-qcow2-linux-1f656ff3fdddc2f59649cc84b633b799908f1f7b.tar.xz
kernel-qcow2-linux-1f656ff3fdddc2f59649cc84b633b799908f1f7b.zip
Drivers: hv: vmbus: Implement NUMA aware CPU affinity for channels
Channels/sub-channels can be affinitized to VCPUs in the guest. Implement this affinity in a way that is NUMA aware. The current protocol distributed the primary channels uniformly across all available CPUs. The new protocol is NUMA aware: primary channels are distributed across the available NUMA nodes while the sub-channels within a primary channel are distributed amongst CPUs within the NUMA node assigned to the primary channel. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/hyperv.h')
-rw-r--r--include/linux/hyperv.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index 4317cd1b69ed..30d3a1f79450 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -697,6 +697,11 @@ struct vmbus_channel {
/* The corresponding CPUID in the guest */
u32 target_cpu;
/*
+ * State to manage the CPU affiliation of channels.
+ */
+ struct cpumask alloced_cpus_in_node;
+ int numa_node;
+ /*
* Support for sub-channels. For high performance devices,
* it will be useful to have multiple sub-channels to support
* a scalable communication infrastructure with the host.