[v2] iwlwifi: mvm: don't send the IWL_MVM_RXQ_NSSN_SYNC notif to Rx queues
diff mbox series

Message ID 20191121184530.5393-1-emmanuel.grumbach@intel.com
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series
  • [v2] iwlwifi: mvm: don't send the IWL_MVM_RXQ_NSSN_SYNC notif to Rx queues
Related show

Commit Message

Emmanuel Grumbach Nov. 21, 2019, 6:45 p.m. UTC
The purpose of this was to keep all the queues updated with
the Rx sequence numbers because unlikely yet possible
situations where queues can't understand if a specific
packet needs to be dropped or not.

Unfortunately, it was reported that this caused issues in
our DMA engine. We don't fully understand how this is related,
but this is being currently debugged. For now, just don't send
this notification to the Rx queues. This de-facto reverts my
commit 3c514bf831ac12356b695ff054bef641b9e99593:

iwlwifi: mvm: add a loose synchronization of the NSSN across Rx queues

This issue was reported here:
https://bugzilla.kernel.org/show_bug.cgi?id=204873
https://bugzilla.kernel.org/show_bug.cgi?id=205001
and others maybe.

Fixes: 3c514bf831ac ("iwlwifi: mvm: add a loose synchronization of the NSSN across Rx queues")
CC: <stable@vger.kernel.org> # 5.3+
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
---
v2: avoid the unused variable warning
---
 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 22 ++++++++++++-------
 1 file changed, 14 insertions(+), 8 deletions(-)

Comments

Kalle Valo Dec. 2, 2019, 2:43 p.m. UTC | #1
Emmanuel Grumbach <emmanuel.grumbach@intel.com> writes:

> The purpose of this was to keep all the queues updated with
> the Rx sequence numbers because unlikely yet possible
> situations where queues can't understand if a specific
> packet needs to be dropped or not.
>
> Unfortunately, it was reported that this caused issues in
> our DMA engine. We don't fully understand how this is related,
> but this is being currently debugged. For now, just don't send
> this notification to the Rx queues. This de-facto reverts my
> commit 3c514bf831ac12356b695ff054bef641b9e99593:
>
> iwlwifi: mvm: add a loose synchronization of the NSSN across Rx queues
>
> This issue was reported here:
> https://bugzilla.kernel.org/show_bug.cgi?id=204873
> https://bugzilla.kernel.org/show_bug.cgi?id=205001
> and others maybe.
>
> Fixes: 3c514bf831ac ("iwlwifi: mvm: add a loose synchronization of the NSSN across Rx queues")
> CC: <stable@vger.kernel.org> # 5.3+
> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
> ---
> v2: avoid the unused variable warning
> ---
>  drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 22 ++++++++++++-------
>  1 file changed, 14 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
> index 75a7af5ad7b2..392bfa4b496c 100644
> --- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
> @@ -514,14 +514,20 @@ static bool iwl_mvm_is_sn_less(u16 sn1, u16 sn2, u16 buffer_size)
>  
>  static void iwl_mvm_sync_nssn(struct iwl_mvm *mvm, u8 baid, u16 nssn)
>  {
> -	struct iwl_mvm_rss_sync_notif notif = {
> -		.metadata.type = IWL_MVM_RXQ_NSSN_SYNC,
> -		.metadata.sync = 0,
> -		.nssn_sync.baid = baid,
> -		.nssn_sync.nssn = nssn,
> -	};
> -
> -	iwl_mvm_sync_rx_queues_internal(mvm, (void *)&notif, sizeof(notif));
> +	/*
> +	 * This allow to synchronize the queues, but it has been reported
> +	 * to cause FH issues. Don't send the notification for now.
> +	 *
> +	 * struct iwl_mvm_rss_sync_notif notif = {
> +	 *	.metadata.type = IWL_MVM_RXQ_NSSN_SYNC,
> +	 *	.metadata.sync = 0,
> +	 *	.nssn_sync.baid = baid,
> +	 *	.nssn_sync.nssn = nssn,
> +	 * };
> +	 *
> +	 *
> +	 * iwl_mvm_sync_rx_queues_internal(mvm, (void *)&notif, sizeof(notif));
> +	 */

Please don't comment out code, instead remove entirely. You can find the
old code from the git history anyway.

Patch
diff mbox series

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
index 75a7af5ad7b2..392bfa4b496c 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
@@ -514,14 +514,20 @@  static bool iwl_mvm_is_sn_less(u16 sn1, u16 sn2, u16 buffer_size)
 
 static void iwl_mvm_sync_nssn(struct iwl_mvm *mvm, u8 baid, u16 nssn)
 {
-	struct iwl_mvm_rss_sync_notif notif = {
-		.metadata.type = IWL_MVM_RXQ_NSSN_SYNC,
-		.metadata.sync = 0,
-		.nssn_sync.baid = baid,
-		.nssn_sync.nssn = nssn,
-	};
-
-	iwl_mvm_sync_rx_queues_internal(mvm, (void *)&notif, sizeof(notif));
+	/*
+	 * This allow to synchronize the queues, but it has been reported
+	 * to cause FH issues. Don't send the notification for now.
+	 *
+	 * struct iwl_mvm_rss_sync_notif notif = {
+	 *	.metadata.type = IWL_MVM_RXQ_NSSN_SYNC,
+	 *	.metadata.sync = 0,
+	 *	.nssn_sync.baid = baid,
+	 *	.nssn_sync.nssn = nssn,
+	 * };
+	 *
+	 *
+	 * iwl_mvm_sync_rx_queues_internal(mvm, (void *)&notif, sizeof(notif));
+	 */
 }
 
 #define RX_REORDER_BUF_TIMEOUT_MQ (HZ / 10)