Skip to contentSkip to conversation

Bug with: ath10k: enable parsing per station rx duration for 10.4?

DISCUSSION Ben Greear 2 participants 4 messages Jun 20, 2016 – Jun 21, 2016 Qualcomm Atheros ATH10K wireless driver

lore
Share & tools
lore

Ben Greear

author
#0 lore raw

I'm working on bringing up my hacked up version of 4.7 ath10k and 10.4 firmware, and I think I may have found a regression.

My 10.4.3-ish firmware source has a bunch of:

if (stats_id == WMI_REQUEST_PEER_STAT)
logic in it. In other words, it is not using that id as a bitfield.

Now, I can fix the firmware, but I am guessing that at least some stock 10.4 firmware has this same issue, and of course any older firmware that does not have this change will still be broken.

So, do you want to back out this patch below, at least the part where it sends in 0x9 as the stats_id?

Or, is all available upstream 10.4 firmware OK with this and I should just fix mine?

Or possibly, this is all my fault and I somehow screwed up when rebasing....

Thanks,
Ben

Author: Mohammed Shafi Shajakhan <[email protected]> 2016-03-16 05:43:34
Committer: Kalle Valo <[email protected]> 2016-04-04 07:02:47
Parent: 47771902a9beb23859805721f1d98d03dee5da7c (ath10k: introduce Extended Resource Config support for 10.4)
Child: 59465fe46ef1c2caf2c1beca828c4f29d28b98ca (ath10k: speedup htt rx descriptor processing for tx completion)
Branches: master, master.stgit, remotes/origin/master, remotes/origin/master.stgit
Follows: v4.5-rc5
Precedes: v4.7-rc1

ath10k: enable parsing per station rx duration for 10.4

Rx duration support for per station is part of extended peer stats, enable provision to parse the same and provide backward compatibility based on the 'stats_id' event

....

@@ -1615,7 +1615,8 @@ static int ath10k_core_init_firmware_features(struct ath10k *ar)
ar->num_active_peers = TARGET_10_4_ACTIVE_PEERS; ar->max_num_vdevs = TARGET_10_4_NUM_VDEVS;
ar->num_tids = TARGET_10_4_TGT_NUM_TIDS;
- ar->fw_stats_req_mask = WMI_STAT_PEER;
+ ar->fw_stats_req_mask = WMI_10_4_STAT_PEER |
+ WMI_10_4_STAT_PEER_EXTD;
ar->max_spatial_stream = ar->hw_params.max_spatial_stream;

if (test_bit(ATH10K_FW_FEATURE_PEER_FLOW_CONTROL,

Signature · 8 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com


_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k
#1 lore raw

Hi Ben,

thanks for reporting ...

Quoted 2 lines · Ben Greear

I'm working on bringing up my hacked up version of 4.7 ath10k and 10.4 firmware, and I think I may have found a regression.

[shafi] let me know what is the issue.. some steps to recreate the issue.

Quoted 5 lines

My 10.4.3-ish firmware source has a bunch of:

if (stats_id == WMI_REQUEST_PEER_STAT)
logic in it. In other words, it is not using that id as a bitfield.

[shafi] will check this.

Quoted 7 lines

Now, I can fix the firmware, but I am guessing that at least some stock 10.4 firmware has this same issue, and of course any older firmware that does not have this change will still be broken.

So, do you want to back out this patch below, at least the part where it sends in 0x9 as the stats_id?

[shafi] request if you can check this please, there was some misunderstanding in the design when this feature got enabled in 10.4, we fixed it in
https://patchwork.kernel.org/patch/9149357/

Quoted 4 lines

Or, is all available upstream 10.4 firmware OK with this and I should just fix mine?

Or possibly, this is all my fault and I somehow screwed up when rebasing....

[shafi] i will check this and get back to you by end of day.

regards,
shafi

Quoted 42 lines

Author: Mohammed Shafi Shajakhan <[email protected]> 2016-03-16 05:43:34
Committer: Kalle Valo <[email protected]> 2016-04-04 07:02:47
Parent: 47771902a9beb23859805721f1d98d03dee5da7c (ath10k: introduce Extended Resource Config support for 10.4)
Child: 59465fe46ef1c2caf2c1beca828c4f29d28b98ca (ath10k: speedup htt rx descriptor processing for tx completion)
Branches: master, master.stgit, remotes/origin/master, remotes/origin/master.stgit
Follows: v4.5-rc5
Precedes: v4.7-rc1

ath10k: enable parsing per station rx duration for 10.4

Rx duration support for per station is part of extended peer stats, enable provision to parse the same and provide backward compatibility based on the 'stats_id' event

....

(quoted diff) +2 -1
@@ -1615,7 +1615,8 @@ static int ath10k_core_init_firmware_features(struct ath10k *ar)
 		ar->num_active_peers = TARGET_10_4_ACTIVE_PEERS;
 		ar->max_num_vdevs = TARGET_10_4_NUM_VDEVS;
 		ar->num_tids = TARGET_10_4_TGT_NUM_TIDS;
-		ar->fw_stats_req_mask = WMI_STAT_PEER;
+		ar->fw_stats_req_mask = WMI_10_4_STAT_PEER |
+					WMI_10_4_STAT_PEER_EXTD;
 		ar->max_spatial_stream = ar->hw_params.max_spatial_stream;
 
 		if (test_bit(ATH10K_FW_FEATURE_PEER_FLOW_CONTROL,
Signature · 9 lines
-- 
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com


_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k
author
#2 lore raw
Quoted 9 lines · Mohammed Shafi Shajakhan

Hi Ben,

thanks for reporting ...

Quoted 2 lines · Ben Greear

I'm working on bringing up my hacked up version of 4.7 ath10k and 10.4 firmware, and I think I may have found a regression.

[shafi] let me know what is the issue.. some steps to recreate the issue.

ethtool -S wlan0
or similar should reproduce it.

You would see stats timeout messages in dmesg, and with a bit more debugging, you notice that the driver is basically busy-spinning trying to get stats over WMI and/or it is giving errors because skb pull fails because there actually is not extd stats struct.

Quoted 7 lines
Quoted 5 lines

My 10.4.3-ish firmware source has a bunch of:

if (stats_id == WMI_REQUEST_PEER_STAT)
logic in it. In other words, it is not using that id as a bitfield.

[shafi] will check this.

I fixed my firmware to treat it as a bitfield, and to specifically un-set the EXTD stats bit, and now it works with my 4.7. Firmware fix should be backwards compatible.

Quoted 10 lines
Quoted 6 lines

Now, I can fix the firmware, but I am guessing that at least some stock 10.4 firmware has this same issue, and of course any older firmware that does not have this change will still be broken.

So, do you want to back out this patch below, at least the part where it sends in 0x9 as the stats_id?

[shafi] request if you can check this please, there was some misunderstanding in the design when this feature got enabled in 10.4, we fixed it in
https://patchwork.kernel.org/patch/9149357/

That might have fixed it, but it is not in 4.7, so I didn't have it in my tree when testing yesterday.

Thanks,
Ben

Signature · 7 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com

_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k
#3 lore raw
Quoted 13 lines · Ben Greear
Quoted 9 lines · Mohammed Shafi Shajakhan

Hi Ben,

thanks for reporting ...

Quoted 2 lines · Ben Greear

I'm working on bringing up my hacked up version of 4.7 ath10k and 10.4 firmware, and I think I may have found a regression.

[shafi] let me know what is the issue.. some steps to recreate the issue.

Quoted 7 lines

ethtool -S wlan0
or similar should reproduce it.

You would see stats timeout messages in dmesg, and with a bit more debugging, you notice that the driver is basically busy-spinning trying to get stats over WMI and/or it is giving errors because skb pull fails because there actually is not extd stats struct.

https://patchwork.kernel.org/patch/9149357/
should help (Kalle had a cleaned up version in his pending branch

Quoted 24 lines
Quoted 8 lines
Quoted 6 lines

My 10.4.3-ish firmware source has a bunch of:

if (stats_id == WMI_REQUEST_PEER_STAT)
logic in it. In other words, it is not using that id as a bitfield.

[shafi] will check this.

I fixed my firmware to treat it as a bitfield, and to specifically un-set the EXTD stats bit, and now it works with my 4.7. Firmware fix should be backwards compatible.

Quoted 10 lines
Quoted 6 lines

Now, I can fix the firmware, but I am guessing that at least some stock 10.4 firmware has this same issue, and of course any older firmware that does not have this change will still be broken.

So, do you want to back out this patch below, at least the part where it sends in 0x9 as the stats_id?

[shafi] request if you can check this please, there was some misunderstanding in the design when this feature got enabled in 10.4, we fixed it in
https://patchwork.kernel.org/patch/9149357/

Quoted 9 lines

That might have fixed it, but it is not in 4.7, so I didn't have it in my tree when testing yesterday.

Thanks,
Ben

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com

_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k