qcacld-3.0: Fix bad TCP up link throughput with latest kernel

qcacld-2.0 to qcacld-3.0 propagation

TCP throttling logic changed a little after 3.19-rc1 kernel, which will
throttle the TCP packets to the host driver, it will heavily affect the
TCP UP Link throughput. So need to orphan the socket buffer asap, which
will call skb's destructor to notify the TCP stack that the SKB buffer is
unowned, And then the TCP stack will pump more packets to the host driver.

This kernel change's subject is "tcp: refine TSO autosizing".
And the commid id is: 605ad7f184b60cfaacbc038aa6c55ee68dee3c89

Here is the TCP TX throughput test data with 4.1 kernel on the customer TV,
the iperf's parameter is 85.3k, and 1 pair in default.
1. Without this change:
   HT20:   35.1 Mbps
   VHT80:  88.4 Mbps
           88.4 Mbps (2 pairs)
2. With this change:
   HT20:   82.3 Mbps
   VHT80:  115  Mbps
           164 Mbps (2 pairs)

And this change will enhance the UDP TX throughput too, but if more
packets from the kernel exceeding the driver's TX capability, the multiple
out of data packets will be dropped in the driver, so it needs to be
protected by TX following controlled (QCA_LL_TX_FLOW_CT).

And here is the UDP TX throughput data with 4.1 kernel on the customer TV:
1. Without this change:
   HT20:   100 Mbps
   VHT80:  155 Mbps
2. With this change
   HT20:   124 Mbps
   VHT80:  263 Mbps

Change-Id: I7f40c7b2c516d71f525fff4aaf2b8a71473b647f
CRs-Fixed: 1056126
2 files changed
tree: 48e66e15d96f65995712401db792b4049059293b
  1. core/
  2. target/
  3. uapi/
  4. Android.mk
  5. Kbuild
  6. Kconfig
  7. Makefile
  8. README.txt