Return-path: Received: from mail-pd0-f180.google.com ([209.85.192.180]:38322 "EHLO mail-pd0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752891AbbBENDG (ORCPT ); Thu, 5 Feb 2015 08:03:06 -0500 Message-ID: <1423141383.31870.39.camel@edumazet-glaptop2.roam.corp.google.com> (sfid-20150205_140312_642098_1A20AB9B) Subject: Re: Throughput regression with `tcp: refine TSO autosizing` From: Eric Dumazet To: Michal Kazior Cc: Neal Cardwell , linux-wireless , Network Development , eyalpe@dev.mellanox.co.il Date: Thu, 05 Feb 2015 05:03:03 -0800 In-Reply-To: References: <1422537297.21689.15.camel@edumazet-glaptop2.roam.corp.google.com> <1422628835.21689.95.camel@edumazet-glaptop2.roam.corp.google.com> <1422903136.21689.114.camel@edumazet-glaptop2.roam.corp.google.com> <1422926330.21689.138.camel@edumazet-glaptop2.roam.corp.google.com> <1422973660.907.10.camel@edumazet-glaptop2.roam.corp.google.com> <1423051045.907.108.camel@edumazet-glaptop2.roam.corp.google.com> <1423053531.907.115.camel@edumazet-glaptop2.roam.corp.google.com> <1423055810.907.125.camel@edumazet-glaptop2.roam.corp.google.com> <1423056591.907.130.camel@edumazet-glaptop2.roam.corp.google.com> <1423084303.31870.15.camel@edumazet-glaptop2.roam.corp.google.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org List-ID: On Thu, 2015-02-05 at 07:46 +0100, Michal Kazior wrote: > On 4 February 2015 at 22:11, Eric Dumazet wrote: > > Most conservative patch would be : > > > > diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c > > index 9c782a42665e1aaf43bfbca441631ee58da50c09..6a36317d6bb0447202dee15528130bd5e21248c4 100644 > > --- a/drivers/net/wireless/ath/ath10k/htt_rx.c > > +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c > > @@ -1642,6 +1642,7 @@ void ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb) > > break; > > } > > case HTT_T2H_MSG_TYPE_TX_COMPL_IND: > > + skb_orphan(skb); > > spin_lock_bh(&htt->tx_lock); > > __skb_queue_tail(&htt->tx_compl_q, skb); > > spin_unlock_bh(&htt->tx_lock); > > I suppose you want to call skb_orphan() on actual data packets, right? > This skb is just a host-firmware communication buffer. Right. I have no idea how you find the actual data packet at this stage.