aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hv
diff options
context:
space:
mode:
authorK. Y. Srinivasan <kys@microsoft.com>2012-12-01 09:46:48 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-17 14:39:14 -0500
commitabbf3b2aa090b4a6bf22c935924b6467990266da (patch)
tree4a4f3a84ac7b05b1608c2ee9552c5899de6981bd /drivers/hv
parent917ea427c78670958488f7f304e4629c325969a4 (diff)
Drivers: hv: Add state to manage incoming channel interrupt load
Add state to bind a channel to a specific VCPU. This will help us better distribute incoming interrupt load. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/hv')
-rw-r--r--drivers/hv/channel.c2
-rw-r--r--drivers/hv/channel_mgmt.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
index 70a34daa04c1..9303252b2e19 100644
--- a/drivers/hv/channel.c
+++ b/drivers/hv/channel.c
@@ -181,7 +181,7 @@ int vmbus_open(struct vmbus_channel *newchannel, u32 send_ringbuffer_size,
181 open_msg->ringbuffer_gpadlhandle = newchannel->ringbuffer_gpadlhandle; 181 open_msg->ringbuffer_gpadlhandle = newchannel->ringbuffer_gpadlhandle;
182 open_msg->downstream_ringbuffer_pageoffset = send_ringbuffer_size >> 182 open_msg->downstream_ringbuffer_pageoffset = send_ringbuffer_size >>
183 PAGE_SHIFT; 183 PAGE_SHIFT;
184 open_msg->server_contextarea_gpadlhandle = 0; 184 open_msg->target_vp = newchannel->target_vp;
185 185
186 if (userdatalen > MAX_USER_DEFINED_BYTES) { 186 if (userdatalen > MAX_USER_DEFINED_BYTES) {
187 err = -EINVAL; 187 err = -EINVAL;
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
index f4d990285d99..56ed45c74d01 100644
--- a/drivers/hv/channel_mgmt.c
+++ b/drivers/hv/channel_mgmt.c
@@ -302,6 +302,8 @@ static void vmbus_onoffer(struct vmbus_channel_message_header *hdr)
302 offer->connection_id; 302 offer->connection_id;
303 } 303 }
304 304
305 newchannel->target_vp = 0;
306
305 memcpy(&newchannel->offermsg, offer, 307 memcpy(&newchannel->offermsg, offer,
306 sizeof(struct vmbus_channel_offer_channel)); 308 sizeof(struct vmbus_channel_offer_channel));
307 newchannel->monitor_grp = (u8)offer->monitorid / 32; 309 newchannel->monitor_grp = (u8)offer->monitorid / 32;