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