Trouble shooting low rate MCS9 in 802.11ac
Vu Hai NGUYEN
vh.nguyen at actiasodielec.fr
Thu Jul 31 03:02:09 PDT 2014
>Strange that disabling checksum helped things. Maybe your ethernet driver
>has issues?
I've no idea about this. Do you have any suggest how to check it? :D
>Looks like removing netfilter (and maybe ebtables?) would
>also help your performance...
I don't enable ebtables in my kernel config, so it shoud not be built in my kernel
>tx status is needed for bookkeping at least, even if you don't
>get useful status info in stock firmware.
>
>CT firmware will give you proper status if you apply some of the
>ath10k driver patches from my tree, but that is unlikely to help
>performance.
>This accounts for 76.58% of CPU usage. You've most likely trimmed down
>the remaining entries accounting for 24% before posting.
I saw there is option -a when running perf top but I did it and still, it doesn't
print all processes :(
>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.
I'd cleaned all rules of iptables and removed all modules of iptables from kernel by command modprobe -r
But there's still some process of netfilter process running. I disabled netfilter on bridge interface by writing 0 to these files:
/proc/sys/net/bridge/bridge-nf-call-arptables
/proc/sys/net/bridge/bridge-nf-call-iptables
/proc/sys/net/bridge/bridge-nf-call-ip6tables
and the performance increases from 500 to 550 Mbps (iperf in tcp reports between 530 ~ 570Mbps).
There is no more process like "br_nf_pre_routing" and "br_nf_forward_ip".
Do you think I can do anything more to strip down netfilter?
Now the processor of my AP (about 20% idle) is no more exhausted but not the same on STA (about 4.5 % idle)
Here is my perf top result on AP:
PerfTop: 99 irqs/sec kernel:96.0% exact: 0.0% [1000Hz cycles], (all, 1 CPU)
-------------------------------------------------------------------------------
24.40% [kernel] [k] armadaxp_enter_idle
6.04% [mac80211] [k] ieee80211_tx_status
5.07% [kernel] [k] memcpy
3.38% [kernel] [k] mv_eth_poll
3.38% [mac80211] [k] $a
2.66% [kernel] [k] __memzero
2.54% [ath10k_pci] [k] ath10k_ce_send_nolock
2.17% [ath10k_core] [k] ath10k_txrx_tx_unref
2.05% [kernel] [k] dev_queue_xmit
2.05% [kernel] [k] br_handle_frame
1.69% [kernel] [k] local_bh_enable
1.69% [kernel] [k] eth_type_trans
1.69% [ath10k_core] [k] ath10k_htt_tx
1.69% ld-2.13.so [.] 0xf120
1.69% [ath10k_pci] [k] ath10k_ce_completed_send_next
1.57% [kernel] [k] __netif_receive_skb
1.45% [kernel] [k] dev_hard_start_xmit
1.45% [kernel] [k] nf_iterate
1.33% [kernel] [k] dev_gro_receive
1.21% [kernel] [k] kfree
1.21% [kernel] [k] __kfree_skb
And on STA:
PerfTop: 51 irqs/sec kernel:94.1% exact: 0.0% [1000Hz cycles], (all, 1 CPU)
-------------------------------------------------------------------------------
7.51% [kernel] [k] memcpy
6.65% [ath10k_core] [k] ath10k_htt_rx_amsdu_pop
5.49% [kernel] [k] mv_eth_tx
4.91% [kernel] [k] kfree
4.91% [kernel] [k] __memzero
4.05% [kernel] [k] armadaxp_enter_idle
4.05% [kernel] [k] __kmalloc_track_caller
4.05% [kernel] [k] dev_queue_xmit
4.05% [kernel] [k] ip_rcv
3.76% [mac80211] [k] ieee80211_rx
3.76% [kernel] [k] __kfree_skb
3.76% [ath10k_core] [k] $a
2.89% [mac80211] [k] ieee80211_rx_handlers
2.60% [mac80211] [k] $a
2.60% [kernel] [k] ip_forward
2.60% [cfg80211] [k] ieee80211_data_to_8023
2.60% [ath10k_pci] [k] ath10k_ce_completed_send_next
2.31% ld-2.13.so [.] 0x9d8c
2.31% [cfg80211] [k] ieee80211_hdrlen
2.02% [mac80211] [k] $a
>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 installed tc from package iproute2 and did : tc qdisc but it doesn't improve the performance :D
NGUYEN Vu Hai
Acita-Sodielec
Route de Mayres - B.P. 9
12100 St GEORGES DE LUZENCON
FRANCE
More information about the ath10k
mailing list