Modify

Opened 4 years ago

Last modified 3 years ago

#15748 reopened enhancement

802.11ac: high kernel-load and slow speed

Reported by: mario_lopes Owned by: developers
Priority: normal Milestone: Chaos Calmer 15.05
Component: kernel Version: Trunk
Keywords: Cc:

Description

Hi.

I'm using r40585 on Gateworks GW2388-4 with Compex wle600v5-23, configured in AP-STA mode.

Iperf performs around 165 MBit/s or or 2x95 MBit/s on UDP mode with following system resources usage at AP:

Mem: 26660K used, 229384K free, 0K shrd, 2660K buff, 6764K cached
CPU:   2% usr  13% sys   0% nic  34% idle   0% io   0% irq  50% sirq
Load average: 0.40 0.16 0.06 2/50 1202
  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND
    3     2 root     RW       0   0%  46% [ksoftirqd/0]
 1187  1181 root     R      844   0%  15% iperf -s -u -i1
  643     2 root     SW       0   0%   4% [kworker/0:2]
  387     2 root     SW       0   0%   0% [kworker/1:1]
 1179   840 root     S      964   0%   0% /usr/sbin/dropbear -F -P /var/run/dro
   16     2 root     SW       0   0%   0% [kworker/u:1]

Also, there are lots of lost and out-of-order packets.
On TCP mode, around 2x53 MBit/s, with 50% sirq and [ksoftirqd/0] around 50% on both AP and STA.

Note: 2x means 2xiperf clients at same system connected to different ports on other system running 2xiperf.

Thanks.

Attachments (0)

Change History (8)

comment:1 Changed 4 years ago by gz

test the speed and cpu% while *forwarding* packets, not creating them.
run iperf -s from your PC while connected to the router via 802.11ac and iperf -c from another PC connected to the router's LAN/WAN port.
this is the closer-to-real-world test you should do.

comment:2 Changed 4 years ago by nbd

  • Resolution set to no_response
  • Status changed from new to closed

comment:3 Changed 4 years ago by mario_lopes

  • Resolution no_response deleted
  • Status changed from closed to reopened

Hi.

Sorry for not replying earlier.
I could not create a bridge, on syslog and dmesg, at AP shows the same message as reported on #15738, at STA appears an error "daemon.notice netifd: radio0 (924): Interface 0 setup failed: BRIDGE_NOT_ALLOWED".
Still, I managed to route traffic like this: (PC: iperf -c) -> (AP: eth1<->wlan0) -> (STA: wlan0<->eth1) -> (PC: iperf -s)
I don't have any PC/laptop with wide mini-PCIe slot, so I can only test in above setup.
The results were UDP reaching the server with under 100 MBit/s agreggated bandwith, one or two iperf instances.
The top command shows around 45% sirq at AP, around 35 % sirq at AP. On both cases the other percentages were 1 % or under.

Thanks.

comment:4 Changed 3 years ago by mario_lopes

Hi.

What about change per-packet CPU interruption to NAPI?
Far as I read, NAPI was removed from MAC80211 on 2013 and added again on 2014. On openwrt, operation mode it's hardcoded, can be switched via configuration or is only IRQ?

Thanks.

comment:5 Changed 3 years ago by nbd

  • Resolution set to not_a_bug
  • Status changed from reopened to closed

You cannot bridge a STA interface, that's normal.
It's also normal for local iperf to be significantly slower than routed/bridged throughput.
This has nothing to do with interrupt load or NAPI.

comment:6 Changed 3 years ago by mario_lopes

  • Resolution not_a_bug deleted
  • Status changed from closed to reopened

Actually it is the opposite, remote iperf is slower than local as seen above.
Also, the performance is still slow (considering hardware cost) and out-of-order packets is stressful.

I will test when ath10k performance updates appear again and then report results here.

Thanks.

comment:7 Changed 3 years ago by nbd

please try current trunk

comment:8 Changed 3 years ago by mario_lopes

At r44974 I can't create AP, part of dmesg as follows:

[   12.890000] ath10k_pci 0001:01:00.0: enabling device (0140 -> 0142)
[   12.900000] ath10k_pci 0001:01:00.0: pci irq legacy interrupts 0 irq_mode 0 reset_mode 0
[   13.120000] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/cal-pci-0001:01:00.0.bin failed with error -2
[   13.130000] ath10k_pci 0001:01:00.0: Falling back to user helper
[   13.150000] firmware ath10k!cal-pci-0001:01:00.0.bin: firmware_loading_store: map pages failed
[   14.510000] ath10k_pci 0001:01:00.0: qca988x hw2.0 (0x4100016c, 0x043222ff) fw 10.2.4.45 api 4 htt 2.1 wmi 5 cal otp max_sta 128
[   14.530000] ath10k_pci 0001:01:00.0: debug 0 debugfs 0 tracing 0 dfs 0 testmode 1
[   14.530000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.540000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.550000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.550000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.560000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.570000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.580000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.580000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.590000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.600000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!

cat /etc/config/wireless

config wifi-device 'radio0'
	option type 'mac80211'
	option hwmode '11a'
	option path 'pci0001:00/0001:00:00.0/0001:01:00.0'
	option htmode 'VHT80'
	option txpower '17'
	option country '00'
	option channel '165'

config wifi-iface
	option device 'radio0'
	option encryption 'none'
	option ssid 'tests_11ac'
	option network 'wlan'
	option mode 'ap'

Also, can't create Ad-Hoc Wi-Fi network with or without "Firmware optimized for STA operation". Without it, dmesg as follows:

[   13.000000] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/cal-pci-0001:01:00.0.bin failed with error -2
[   13.010000] ath10k_pci 0001:01:00.0: Falling back to user helper
[   13.030000] firmware ath10k!cal-pci-0001:01:00.0.bin: firmware_loading_store: map pages failed
[   14.390000] ath10k_pci 0001:01:00.0: qca988x hw2.0 (0x4100016c, 0x043222ff) fw 10.2.4.45 api 4 htt 2.1 wmi 5 cal otp max_sta 128
[   14.400000] ath10k_pci 0001:01:00.0: debug 0 debugfs 0 tracing 0 dfs 0 testmode 1
[   14.400000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.400000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.400000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.400000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.410000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.410000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.410000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.430000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.450000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!
[   14.450000] ath10k_pci 0001:01:00.0: no channel configured; ignoring frame(s)!

With it, it is shown several unsuccessfull atempts to load different firmware versions.

Thanks.

Add Comment

Modify Ticket

Action
as reopened .
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.