Baochen Qiang <quic_bqiang@xxxxxxxxxxx> wrote: > Currently we force enable power save on non-running vdevs, this results > in unexpected ping latency in below scenarios: > 1. disable power save from userspace. > 2. trigger suspend/resume. > > With step 1 power save is disabled successfully and we get a good latency: > > PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. > 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=5.13 ms > 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=5.45 ms > 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=5.99 ms > 64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=6.34 ms > 64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=4.47 ms > 64 bytes from 192.168.1.1: icmp_seq=6 ttl=64 time=6.45 ms > > While after step 2, the latency becomes much larger: > > PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. > 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=17.7 ms > 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=15.0 ms > 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=14.3 ms > 64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=16.5 ms > 64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=20.1 ms > > The reason is, with step 2, power save is force enabled due to vdev not > running, although mac80211 was trying to disable it to honor userspace > configuration: > > ath11k_pci 0000:03:00.0: wmi cmd sta powersave mode psmode 1 vdev id 0 > Call Trace: > ath11k_wmi_pdev_set_ps_mode > ath11k_mac_op_bss_info_changed > ieee80211_bss_info_change_notify > ieee80211_reconfig > ieee80211_resume > wiphy_resume > > This logic is taken from ath10k where it was added due to below comment: > > Firmware doesn't behave nicely and consumes more power than > necessary if PS is disabled on a non-started vdev. > > However we don't know whether such an issue also occurs to ath11k firmware > or not. But even if it does, it's not appropriate because it goes against > userspace, even cfg/mac80211 don't know we have enabled it in fact. > > Remove it to fix this issue. In this way we not only get a better latency, > but also, and the most important, keeps the consistency between userspace > and kernel/driver. The biggest price for that would be the power consumption, > which is not that important, compared with the consistency. > > Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 > > Fixes: b2beffa7d9a6 ("ath11k: enable 802.11 power save mode in station mode") > Signed-off-by: Baochen Qiang <quic_bqiang@xxxxxxxxxxx> > Signed-off-by: Kalle Valo <quic_kvalo@xxxxxxxxxxx> Patch applied to ath-next branch of ath.git, thanks. 01296b39d351 wifi: ath11k: don't force enable power save on non-running vdevs -- https://patchwork.kernel.org/project/linux-wireless/patch/20240309113115.11498-1-quic_bqiang@xxxxxxxxxxx/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches