summaryrefslogtreecommitdiffstats
path: root/drivers/net/hyperv/hyperv_net.h
diff options
context:
space:
mode:
authorHaiyang Zhang <haiyangz@microsoft.com>2015-04-13 16:34:35 -0700
committerDavid S. Miller <davem@davemloft.net>2015-04-14 14:57:10 -0400
commitaa0a34be68290aa9aa071c0691fb8b6edda38358 (patch)
treebf404acc758981c7ac0fffaf1bb6afb9af26fbe3 /drivers/net/hyperv/hyperv_net.h
parent6e8a9d9148b6dc2305fcaaf60550b81cbb6319c6 (diff)
downloadop-kernel-dev-aa0a34be68290aa9aa071c0691fb8b6edda38358.zip
op-kernel-dev-aa0a34be68290aa9aa071c0691fb8b6edda38358.tar.gz
hv_netvsc: Implement partial copy into send buffer
If remaining space in a send buffer slot is too small for the whole message, we only copy the RNDIS header and PPI data into send buffer, so we can batch one more packet each time. It reduces the vmbus per-message overhead. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Reviewed-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/hyperv/hyperv_net.h')
-rw-r--r--drivers/net/hyperv/hyperv_net.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
index f0b8b3e..a10b316 100644
--- a/drivers/net/hyperv/hyperv_net.h
+++ b/drivers/net/hyperv/hyperv_net.h
@@ -132,6 +132,8 @@ struct hv_netvsc_packet {
bool is_data_pkt;
bool xmit_more; /* from skb */
+ bool cp_partial; /* partial copy into send buffer */
+
u16 vlan_tci;
u16 q_idx;
@@ -146,6 +148,9 @@ struct hv_netvsc_packet {
/* This points to the memory after page_buf */
struct rndis_message *rndis_msg;
+ u32 rmsg_size; /* RNDIS header and PPI size */
+ u32 rmsg_pgcnt; /* page count of RNDIS header and PPI */
+
u32 total_data_buflen;
/* Points to the send/receive buffer where the ethernet frame is */
void *data;
OpenPOWER on IntegriCloud