ath10k performance, master branch from 20160407

Roman Yeryomin leroi.lists at
Fri Apr 8 07:44:38 PDT 2016


I've seen performance patches were commited so I've decided to give it
a try (using 4.1 kernel and backports).
The results are quite disappointing: TCP download (client pov) dropped
from 750Mbps to ~550 and UDP shows completely weird behavour - if
generating 900Mbps it gives 30Mbps max, if generating 300Mbps it gives
250Mbps, before (latest official backports release from January) I was
able to get 900Mbps.
Hardware is basically ap152 + qca988x 3x3.
When running perf top I see that fq_codel_drop eats a lot of cpu.
Here is the output when running iperf3 UDP test:

    45.78%  [kernel]       [k] fq_codel_drop
     3.05%  [kernel]       [k] ag71xx_poll
     2.18%  [kernel]       [k] skb_release_data
     2.01%  [kernel]       [k] r4k_dma_cache_inv
     1.73%  [kernel]       [k] eth_type_trans
     1.24%  [kernel]       [k] build_skb
     1.20%  [mac80211]     [k] ieee80211_tx_dequeue
     1.03%  [kernel]       [k] __delay
     0.98%  [kernel]       [k] fq_codel_enqueue
     0.94%  [kernel]       [k] __netif_receive_skb_core
     0.93%  [kernel]       [k] skb_release_head_state
     0.88%  [ath10k_core]  [k] ath10k_htt_tx
     0.87%  [kernel]       [k] __dev_queue_xmit
     0.84%  [mac80211]     [k] ieee80211_tx_status
     0.81%  [kernel]       [k] __build_skb
     0.80%  [mac80211]     [k] __ieee80211_subif_start_xmit
     0.77%  [kernel]       [k] br_handle_frame_finish
     0.75%  [kernel]       [k] __qdisc_run
     0.73%  [kernel]       [k] skb_recycler_consume
     0.72%  [kernel]       [k] kfree_skb
     0.72%  [kernel]       [k] get_page_from_freelist
     0.69%  [kernel]       [k] br_fdb_update
     0.69%  [kernel]       [k] br_handle_frame
     0.67%  [kernel]       [k] __copy_user_common
     0.66%  [kernel]       [k] __skb_flow_dissect
     0.65%  [ath10k_core]  [k] ath10k_txrx_tx_unref
     0.60%  [kernel]       [k] kmem_cache_alloc
     0.60%  [mac80211]     [k] sta_addr_hash
     0.56%  [kernel]       [k] fq_codel_dequeue
     0.53%  [kernel]       [k] __local_bh_enable_ip
     0.50%  [kernel]       [k] __br_fdb_get

What could be the reason?
I've seen there are some patches from Michal which touch fq_codel,
would those help or not?


More information about the ath10k mailing list