Message ID | 20230427013021.29792-1-quic_bqiang@quicinc.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
Series | wifi: ath12k: Use msdu_end to check MCBC | expand |
On 4/27/2023 7:00 AM, Baochen Qiang wrote: > We are seeing a very low TCP throughput testing with some specific > tools. This is because for sub-frames of an AMSDU, MCBC flag in > mpdu_start may be not valid, and as a result those frames would be > dropped by kernel. > > Change to get it from msdu_end. > > Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 > > Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> > --- > drivers/net/wireless/ath/ath12k/hal.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath12k/hal.c b/drivers/net/wireless/ath/ath12k/hal.c > index 0ec53afe9915..980ec2024b37 100644 > --- a/drivers/net/wireless/ath/ath12k/hal.c > +++ b/drivers/net/wireless/ath/ath12k/hal.c > @@ -889,8 +889,8 @@ static u8 *ath12k_hw_wcn7850_rx_desc_mpdu_start_addr2(struct hal_rx_desc *desc) > > static bool ath12k_hw_wcn7850_rx_desc_is_mcbc(struct hal_rx_desc *desc) > { > - return __le32_to_cpu(desc->u.wcn7850.mpdu_start.info6) & > - RX_MPDU_START_INFO6_MCAST_BCAST; > + return __le32_to_cpu(desc->u.wcn7850.msdu_end.info5) & > + RX_MSDU_END_INFO5_DA_IS_MCBC; Please note that RX_MSDU_END_INFO5_DA_IS_MCBC is to notify if the DA address is mc/bc while RX_MPDU_START_INFO6_MCAST_BCAST is to inform if the RA (addr1) is mc/bc. Both may not be used interchangeably, for example if we want to enable PN replay check for mc/bc frames we need to use RX_MPDU_START_INFO6_MCAST_BCAST. You can probably define a new call back for da_mc_bc check instead of modifying the same callback. Vasanth
Baochen Qiang <quic_bqiang@quicinc.com> writes: > We are seeing a very low TCP throughput testing with some specific > tools. This is because for sub-frames of an AMSDU, MCBC flag in > mpdu_start may be not valid, and as a result those frames would be > dropped by kernel. > > Change to get it from msdu_end. > > Tested-on: WCN7850 hw2.0 PCI > WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 > > Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> > --- > drivers/net/wireless/ath/ath12k/hal.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath12k/hal.c > b/drivers/net/wireless/ath/ath12k/hal.c > index 0ec53afe9915..980ec2024b37 100644 > --- a/drivers/net/wireless/ath/ath12k/hal.c > +++ b/drivers/net/wireless/ath/ath12k/hal.c > @@ -889,8 +889,8 @@ static u8 > *ath12k_hw_wcn7850_rx_desc_mpdu_start_addr2(struct hal_rx_desc *desc) > > static bool ath12k_hw_wcn7850_rx_desc_is_mcbc(struct hal_rx_desc *desc) > { > - return __le32_to_cpu(desc->u.wcn7850.mpdu_start.info6) & > - RX_MPDU_START_INFO6_MCAST_BCAST; > + return __le32_to_cpu(desc->u.wcn7850.msdu_end.info5) & > + RX_MSDU_END_INFO5_DA_IS_MCBC; New warnings: drivers/net/wireless/ath/ath12k/hal.c:892:16: warning: cast to restricted __le32 drivers/net/wireless/ath/ath12k/hal.c:892:16: warning: cast from restricted __le16 Please remember always run ath12k-check (with sparse installed).
On 4/29/2023 1:13 PM, Kalle Valo wrote: > Baochen Qiang <quic_bqiang@quicinc.com> writes: > >> We are seeing a very low TCP throughput testing with some specific >> tools. This is because for sub-frames of an AMSDU, MCBC flag in >> mpdu_start may be not valid, and as a result those frames would be >> dropped by kernel. >> >> Change to get it from msdu_end. >> >> Tested-on: WCN7850 hw2.0 PCI >> WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 >> >> Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> >> --- >> drivers/net/wireless/ath/ath12k/hal.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/net/wireless/ath/ath12k/hal.c >> b/drivers/net/wireless/ath/ath12k/hal.c >> index 0ec53afe9915..980ec2024b37 100644 >> --- a/drivers/net/wireless/ath/ath12k/hal.c >> +++ b/drivers/net/wireless/ath/ath12k/hal.c >> @@ -889,8 +889,8 @@ static u8 >> *ath12k_hw_wcn7850_rx_desc_mpdu_start_addr2(struct hal_rx_desc *desc) >> >> static bool ath12k_hw_wcn7850_rx_desc_is_mcbc(struct hal_rx_desc *desc) >> { >> - return __le32_to_cpu(desc->u.wcn7850.mpdu_start.info6) & >> - RX_MPDU_START_INFO6_MCAST_BCAST; >> + return __le32_to_cpu(desc->u.wcn7850.msdu_end.info5) & >> + RX_MSDU_END_INFO5_DA_IS_MCBC; > New warnings: > > drivers/net/wireless/ath/ath12k/hal.c:892:16: warning: cast to restricted __le32 > drivers/net/wireless/ath/ath12k/hal.c:892:16: warning: cast from restricted __le16 > > Please remember always run ath12k-check (with sparse installed). Hi Kalle, I have sent v2 where I change __le32_to_cpu to __le16_to_cpu which should fix this warning. But I can not find ath12k-check, where is this tool? Could you help point out?
Baochen Qiang <quic_bqiang@quicinc.com> writes: > On 4/29/2023 1:13 PM, Kalle Valo wrote: > >> New warnings: >> >> drivers/net/wireless/ath/ath12k/hal.c:892:16: warning: cast to restricted __le32 >> drivers/net/wireless/ath/ath12k/hal.c:892:16: warning: cast from restricted __le16 >> >> Please remember always run ath12k-check (with sparse installed). > > Hi Kalle, > > I have sent v2 where I change __le32_to_cpu to __le16_to_cpu which > should fix this warning. > > But I can not find ath12k-check, where is this tool? Could you help > point out? It's here: https://github.com/qca/qca-swiss-army-knife/tree/master/tools/scripts/ath12k
diff --git a/drivers/net/wireless/ath/ath12k/hal.c b/drivers/net/wireless/ath/ath12k/hal.c index 0ec53afe9915..980ec2024b37 100644 --- a/drivers/net/wireless/ath/ath12k/hal.c +++ b/drivers/net/wireless/ath/ath12k/hal.c @@ -889,8 +889,8 @@ static u8 *ath12k_hw_wcn7850_rx_desc_mpdu_start_addr2(struct hal_rx_desc *desc) static bool ath12k_hw_wcn7850_rx_desc_is_mcbc(struct hal_rx_desc *desc) { - return __le32_to_cpu(desc->u.wcn7850.mpdu_start.info6) & - RX_MPDU_START_INFO6_MCAST_BCAST; + return __le32_to_cpu(desc->u.wcn7850.msdu_end.info5) & + RX_MSDU_END_INFO5_DA_IS_MCBC; } static void ath12k_hw_wcn7850_rx_desc_get_dot11_hdr(struct hal_rx_desc *desc,
We are seeing a very low TCP throughput testing with some specific tools. This is because for sub-frames of an AMSDU, MCBC flag in mpdu_start may be not valid, and as a result those frames would be dropped by kernel. Change to get it from msdu_end. Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> --- drivers/net/wireless/ath/ath12k/hal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) base-commit: d276b90ff7f9c51e1f2f8826b7cbb3dff20a4b66