For Help: problems with tx bitrate in ath10k

wangdc wangdc at dhc.com.cn
Tue Apr 8 04:51:42 EDT 2014


Hi,all

I used the backports-3.13.2-1 to drive a 11ac card(WLE900VX) on the 
ubuntu 12.04 LTS(64bit) (3.8.0-35-generic).
The card seemed to be working well when i connected it to a broadcom AC 
APs and the card could also send or receive data normally.
But when using command 'iw dev wlan0 station dump' to check the actual 
Rx and Tx rate, i couldn't get the tx bitrate correctly.

root at ubuntu:~$ iw dev wlan2 station dump
Station 10:48:b1:e8:17:a6 (on wlan2)
     inactive time:    28680 ms
     rx bytes:    903704
     rx packets:    6747
     tx bytes:    20731
     tx packets:    163
     tx retries:    1969
     tx failed:    0
     signal:      -36 dBm
     signal avg:    -36 dBm
     tx bitrate:     MCS 32 40Mhz short GI
     authorized:    yes
     authenticated:    yes
     preamble:    long
     WMM/WME:    yes
     MFP:        no
     TDLS peer:        no

And sometimes the tx bitrate was 3693.3 MBit/s, 65.0 MBit/s, 6.5Mbit/s etc.

The start log as following.

root at ubuntu:~$ dmesg | grep ath
[    0.800424] MODSIGN: Loaded cert 'Magrathea: Glacier signing key: 
c77318d5b035f7cbfa665f640863f8bc32a3fa33'
[   10.539694] ath10k_pci 0000:04:00.0: BAR 0: assigned [mem 
0xf0400000-0xf05fffff 64bit]
[   10.886386] ath10k: MSI-X didn't succeed (1), trying MSI
[   10.886454] ath10k_pci 0000:04:00.0: irq 44 for MSI/MSI-X
[   10.886492] ath10k: MSI interrupt handling
[   10.921722] ath10k: Hardware name qca988x hw2.0 version 0x4100016c
[   12.246510] ath10k: UART prints disabled
[   12.250960] ath10k: firmware 10.1.467.2-1 booted
[   12.260459] ath10k: htt target version 2.1
[   12.261559] ath: EEPROM regdomain: 0x0
[   12.261561] ath: EEPROM indicates default country code should be used
[   12.261562] ath: doing EEPROM country->regdmn map search
[   12.261563] ath: country maps to regdmn code: 0x3a
[   12.261565] ath: Country alpha2 being used: US
[   12.261566] ath: Regpair used: 0x3a
[   18.767377] ath10k: MSI-X didn't succeed (1), trying MSI
[   18.767451] ath10k_pci 0000:04:00.0: irq 44 for MSI/MSI-X
[   18.767496] ath10k: MSI interrupt handling
[   19.700523] ath10k: UART prints disabled
[   19.705037] ath10k: firmware 10.1.467.2-1 booted
[   19.714921] ath10k: htt target version 2.1
...

root at ubuntu:~$ dmesg
[  121.846056] ------------[ cut here ]------------
[  121.846090] WARNING: at /home/backports/net/wireless/util.c:1066 
cfg80211_calculate_bitrate+0x18e/0x210 [cfg80211]()
[  121.846093] Hardware name: 23066RC
[  121.846094] Modules linked in: ip_vs(F) nf_conntrack(F) libcrc32c(F) 
bnep(F) rfcomm(F) parport_pc(F) ppdev(F) arc4(F) coretemp(F) 
snd_hda_codec_hdmi(F) snd_hda_codec_realtek(F) ath10k_pci(OF) 
ath10k_core(OF) uvcvideo(F) nfsd(F) snd_hda_intel(F) kvm(F) 
snd_hda_codec(F) ath(OF) videobuf2_core(F) nfs_acl(F) videodev(F) 
auth_rpcgss(F) i915(F) nfs(F) videobuf2_vmalloc(F) snd_hwdep(F) btusb(F) 
snd_pcm(F) mac80211(OF) videobuf2_memops(F) joydev(F) fscache(F) 
bluetooth(F) ghash_clmulni_intel(F) thinkpad_acpi(F) lockd(F) 
snd_seq_midi(F) cryptd(F) drm_kms_helper(F) binfmt_misc(F) 
snd_rawmidi(F) drm(F) snd_seq_midi_event(F) cfg80211(OF) sunrpc(F) 
snd_seq(F) psmouse(F) snd_timer(F) snd_seq_device(F) mei(F) snd(F) 
microcode(F) serio_raw(F) mac_hid(F) i2c_algo_bit(F) snd_page_alloc(F) 
compat(OF) soundcore(F) lpc_ich(F) nvram(F) wmi(F) video(F) lp(F) 
parport(F) sdhci_pci(F) sdhci(F) e1000e(F)
[  121.846157] Pid: 1050, comm: NetworkManager Tainted: GF O 
3.8.0-35-generic #52~precise1-Ubuntu
[  121.846159] Call Trace:
[  121.846171]  [<ffffffff81059b6f>] warn_slowpath_common+0x7f/0xc0
[  121.846177]  [<ffffffff81059bca>] warn_slowpath_null+0x1a/0x20
[  121.846193]  [<ffffffffa019c8de>] 
cfg80211_calculate_bitrate+0x18e/0x210 [cfg80211]
[  121.846212]  [<ffffffffa01a99a7>] nl80211_put_sta_rate+0x57/0x2a0 
[cfg80211]
[  121.846229]  [<ffffffffa01ac0e1>] 
nl80211_send_station.isra.63+0x4a1/0x870 [cfg80211]
[  121.846246]  [<ffffffffa01ac98c>] nl80211_get_station+0x22c/0x290 
[cfg80211]
[  121.846254]  [<ffffffff8160f6dd>] genl_rcv_msg+0x22d/0x2b0
[  121.846260]  [<ffffffff815d830b>] ? __alloc_skb+0x8b/0x2a0
[  121.846264]  [<ffffffff8160f4b0>] ? genl_rcv+0x40/0x40
[  121.846270]  [<ffffffff8160ee89>] netlink_rcv_skb+0xa9/0xd0
[  121.846274]  [<ffffffff8160f495>] genl_rcv+0x25/0x40
[  121.846279]  [<ffffffff8160e7d1>] netlink_unicast+0x1b1/0x230
[  121.846285]  [<ffffffff8160eb4e>] netlink_sendmsg+0x2fe/0x3b0
[  121.846290]  [<ffffffff815cb282>] sock_sendmsg+0xd2/0xf0
[  121.846296]  [<ffffffff815cdb8a>] ? move_addr_to_kernel+0x5a/0xa0
[  121.846300]  [<ffffffff815da406>] ? verify_iovec+0x56/0xd0
[  121.846305]  [<ffffffff815cd09c>] ___sys_sendmsg+0x3ac/0x3c0
[  121.846311]  [<ffffffff811aea86>] ? pollwake+0x66/0x70
[  121.846316]  [<ffffffff81092050>] ? try_to_wake_up+0x200/0x200
[  121.846323]  [<ffffffff816f53e5>] ? _raw_spin_lock_irq+0x15/0x20
[  121.846327]  [<ffffffff81092050>] ? try_to_wake_up+0x200/0x200
[  121.846332]  [<ffffffff815ceba9>] __sys_sendmsg+0x49/0x90
[  121.846337]  [<ffffffff815cec09>] sys_sendmsg+0x19/0x20
[  121.846343]  [<ffffffff816fdf5d>] system_call_fastpath+0x1a/0x1f
[  121.846346] ---[ end trace fc50900f4228222f ]---

About the reason of the warning info above,
when debugging the code, rate->flags was 0x0 and the rate->mcs value was 
more than 32 in the function of cfg80211_calculate_bitrate,
but i didn't know why i got a wrong rate value.

/home/backports/net/wireless/util.c
u32 cfg80211_calculate_bitrate(struct rate_info *rate)
{
     int modulation, streams, bitrate;

     if (!(rate->flags & RATE_INFO_FLAGS_MCS) &&
         !(rate->flags & RATE_INFO_FLAGS_VHT_MCS))
         return rate->legacy;
     if (rate->flags & RATE_INFO_FLAGS_60G)
         return cfg80211_calculate_bitrate_60g(rate);
     if (rate->flags & RATE_INFO_FLAGS_VHT_MCS)
         return cfg80211_calculate_bitrate_vht(rate);

     /* the formula below does only work for MCS values smaller than 32 */
     if (WARN_ON_ONCE(rate->mcs >= 32))
         return 0;

I tried other version of the firmware and backports, the test results 
were as following:
a)The problem repeated when i tried firmware-2.bin_999.999.0.636.
b)The tx bitrate was fixed to 6MBit/s  and there was no warning info in 
the boot log  when i adopted the latest development 
releases(backports-20140221).

Is there anybody meets the same problem? If so, please give me some 
suggestion on getting Tx rate properly.

Thanks.
Rex




More information about the ath10k mailing list