Trouble shooting low rate MCS9 in 802.11ac

Michal Kazior michal.kazior at tieto.com
Tue Jul 29 23:26:17 PDT 2014


On 29 July 2014 17:04, Vu Hai NGUYEN <vh.nguyen at actiasodielec.fr> wrote:
[...]
> I used ethtool to disable Checksum offloading on my Ethernet interface and increase rate from
> 400 Mbps to 500 Mbps, now the thread "csum_partial_copy_nocheck" has disappeared and there
> is no more particular thread which takes most of the processor resource. But my processor is
> always exhausted.
> I notice some warning when starting perf top
> [ath10k_core] with build id f31b98301ddea35e320bacaef048e4adbae00a6d not found, continuing without symbols
> [ath10k_pci] with build id a1303b5587ceef676d03d5a68fa5c7d717861c5d not found, continuing without symbols
> [mac80211] with build id f73251a940dedf51ac599141e5edefe05da2cb6f not found, continuing without symbols
> [cfg80211] with build id 94dd0809b98902252ce78cc3bc4ae385dd5e8fdf not found, continuing without symbols
> This may cause some unknown thread like the 2nd thread $a below of [mac80211]?
>
> PerfTop:      51 irqs/sec  kernel:98.0%  exact:  0.0% [1000Hz cycles],  (all, 1 CPU)
> -------------------------------------------------------------------------------
>
>      8.79%  [mac80211]     [k] ieee80211_tx_status
>      5.02%  [mac80211]     [k] $a
>      5.02%  [kernel]       [k] __memzero
>      4.60%  [kernel]       [k] memcpy
>      4.60%  [kernel]       [k] mv_eth_poll
>      4.18%  [kernel]       [k] dev_queue_xmit
>      4.18%  [kernel]       [k] br_parse_ip_options
>      3.77%  [kernel]       [k] dev_hard_start_xmit
>      3.77%  [kernel]       [k] nf_hook_slow
>      3.35%  [kernel]       [k] local_bh_enable
>      3.35%  [kernel]       [k] nf_iterate
>      3.35%  [kernel]       [k] br_nf_forward_ip
>      2.93%  [kernel]       [k] kfree
>      2.93%  [kernel]       [k] br_nf_pre_routing
>      2.93%  [kernel]       [k] mv_eth_tx
>      2.93%  [kernel]       [k] br_handle_frame_finish
>      2.93%  [ath10k_pci]   [k] ath10k_ce_send_nolock
>      2.93%  [ath10k_core]  [k] ath10k_txrx_tx_unref
>      2.51%  [kernel]       [k] eth_type_trans
>      2.51%  [ath10k_core]  [k] ath10k_htt_rx_amsdu_pop

This accounts for 76.58% of CPU usage. You've most likely trimmed down
the remaining entries accounting for 24% before posting.

By the looks of it you might be able to strip down netfilter
(iptables) rules to none on all chains and tables if you just want to
max out the performance at the cost of having no firewall whatsoever.

You also might want to change qdisc (`tc` command) on all interfaces
involved to pfifo in case you're using codel to further reduce CPU
load at the cost of buffer bloating the system.


> I notice that ieee80211_tx_status takes much of resource too, but because of firmware
> issue we don't get true information from tx_status, should we deactivate it to improve
> the performance?

Even though tx rate isn't reported by ath10k it is still necessary to
report ack/no ack for frames and allow mac80211 to further process
frame completion.


Michał



More information about the ath10k mailing list