From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753608AbbKWV4e (ORCPT ); Mon, 23 Nov 2015 16:56:34 -0500 Received: from p3plsmtps2ded04.prod.phx3.secureserver.net ([208.109.80.198]:36266 "EHLO p3plsmtps2ded04.prod.phx3.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752635AbbKWV4a (ORCPT ); Mon, 23 Nov 2015 16:56:30 -0500 x-originating-ip: 72.167.245.219 From: "K. Y. Srinivasan" To: davem@davemloft.net, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, olaf@aepfle.de, apw@canonical.com, jasowang@redhat.com Cc: "K. Y. Srinivasan" Subject: [PATCH net-next 00/10] hv_netvsc: Eliminate the additional head room Date: Mon, 23 Nov 2015 15:28:44 -0800 Message-Id: <1448321324-21318-1-git-send-email-kys@microsoft.com> X-Mailer: git-send-email 1.7.4.1 X-CMAE-Envelope: MS4wfA7cIqCymPWN2bZ7P5pJUZIiGgOZ1h5lZFqrBdwN4lZjd5CNgYj0b8Ef3dSx2/sORA2/cKXIZkdQGAUtUrr/Ig/tpGRb8Jv7+B4MOB/EM+urFn7I6jCF NZU6y/tWnZlQNKQp4tIYN4D2Dbh1WhVqGVoyXaRkTgZ7v7YzDNDBp3rCJq3FnkDb/pHsyBA1Z6/M5Mm5QMVAkaKj8UCUXeA7xBXgCy71Mmo0mhZujkdPJfGo CYpkRbHj/P+EPe6XcUJSXu79ESMs5fGQHS1+t16Fs103etJVFmFXPdZpsa8vzbok4tgnGTH5ogSZYZEaMDFf3poaC3OEtfU/hR6lVy2v8+9CO2tbEn8mb29E WGVzX4o8H9e2Os+R87dE0BM0RlAxMNtqBSlIwDpBM7nRmTSEk87jkRxeLt110Fib/x/OLP9d Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In an attempt to avoid having to allocate memory on the send path, the netvsc driver was requesting additional head room so that both rndis header and the netvsc packet (the state that had to persist) could be placed in the skb. Since the amount of head room requested was exceeding the default head room as set in LL_MAX_HEADER, we were forcing a reallocation of skb. With this patch-set, I have reduced the size of the netvsc packet to 40 bytes and with this reduction we don't need to ask for any additional headroom. We place the rndis header in the skb head room and we place the netvsc packet in control buffer area in the skb. K. Y. Srinivasan (8): hv_netvsc: Resize some of the variables in hv_netvsc_packet hv_netvsc: Rearrange the hv_negtvsc_packet to be space efficient hv_netvsc: Eliminate the channel field in hv_netvsc_packet structure hv_netvsc: Eliminate rndis_msg pointer from hv_netvsc_packet structure hv_netvsc: Eliminatte the data field from struct hv_netvsc_packet hv_netvsc: Eliminate send_completion from struct hv_netvsc_packet hv_netvsc: Eliminate send_completion_ctx from struct hv_netvsc_packet hv_netvsc: Don't ask for additional head room in the skb Vitaly Kuznetsov (2): hv_netvsc: move subchannel existence check to netvsc_select_queue() hv_netvsc: remove locking in netvsc_send() drivers/net/hyperv/hyperv_net.h | 48 +++++++++++++++++------------------- drivers/net/hyperv/netvsc.c | 42 ++++++++++++-------------------- drivers/net/hyperv/netvsc_drv.c | 47 +++++++++++++++-------------------- drivers/net/hyperv/rndis_filter.c | 21 ++++++++++------ 4 files changed, 72 insertions(+), 86 deletions(-) -- 1.7.4.1