Trouble shooting low rate MCS9 in 802.11ac

Vu Hai NGUYEN vh.nguyen at actiasodielec.fr
Tue Jul 29 08:04:18 PDT 2014


>>> I follow a tutorial to cross compile perf so here is my result
>>>
>>>
>>> PerfTop:      70 irqs/sec  kernel:98.6%  exact:  0.0% [1000Hz cycles],  (all, 1 CPU)
>>> -------------------------------------------------------------------------------
>>>
>>>     39.43%  [kernel]       [k] csum_partial_copy_nocheck

>>Looks like your ethernet driver is not doing checksum offloading?

>>I am pretty sure ath10k does support this unless you have managed
>>to disabled it somehow?

>I'm using ath10k from master branch (generated by backport), My only hack is changing the default country of regulatory domain from US to France.
>The checksum patch is implemented by Michal Kazior since july 2013 and I also check that there is function checksum state in htt_rx.c file so it should be in my
>driver module.
>But I install ethtool and here is the ouput of my interface wlan0:
>#ethtool --show-offload  wlan0
>Features for wlan0:
>rx-checksumming: off [fixed]
>tx-checksumming: on
>        tx-checksum-ipv4: off [fixed]
>        tx-checksum-unneeded: off [fixed]
>        tx-checksum-ip-generic: on [fixed]
>        tx-checksum-ipv6: off [fixed]
>        tx-checksum-fcoe-crc: off [fixed]
>        tx-checksum-sctp: off [fixed]
>scatter-gather: off
>        tx-scatter-gather: off [fixed]
>        tx-scatter-gather-fraglist: off [fixed]
>tcp-segmentation-offload: off
>        tx-tcp-segmentation: off [fixed]
>        tx-tcp-ecn-segmentation: off [fixed]
>        tx-tcp6-segmentation: off [fixed]
>udp-fragmentation-offload: off [fixed]
>generic-segmentation-offload: off [requested on]
>generic-receive-offload: on
>large-receive-offload: off [fixed]
>rx-vlan-offload: off [fixed]
>tx-vlan-offload: off [fixed]
>ntuple-filters: off [fixed]
>receive-hashing: off [fixed]
>highdma: off [fixed]
>rx-vlan-filter: off [fixed]
>vlan-challenged: off [fixed]
>tx-lockless: off [fixed]
>netns-local: on [fixed]
>tx-gso-robust: off [fixed]
>tx-fcoe-segmentation: off [fixed]
>fcoe-mtu: off [fixed]
>tx-nocache-copy: on
>loopback: off [fixed]
>
>And I cannot enable these function, as it show [fixed] like above.
># ethtool --offload  wlan0  rx on  tx on
>Cannot change rx-checksumming
>Cannot change tx-checksumming

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

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?

NGUYEN Vu Hai
Acita-Sodielec
Route de Mayres - B.P. 9
12100 St GEORGES DE LUZENCON
FRANCE




NGUYEN Vu Hai
Acita-Sodielec
Route de Mayres - B.P. 9
12100 St GEORGES DE LUZENCON
FRANCE



_______________________________________________
ath10k mailing list
ath10k at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k



More information about the ath10k mailing list