linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH v2] iwlagn: use cts-to-self protection on 5000 adapters series
  2011-05-26 15:14 [PATCH v2] iwlagn: use cts-to-self protection on 5000 adapters series Stanislaw Gruszka
@ 2011-05-26 14:50 ` Guy, Wey-Yi
  2011-05-26 15:20   ` Daniel Halperin
  2011-06-06  8:58   ` Stanislaw Gruszka
  0 siblings, 2 replies; 7+ messages in thread
From: Guy, Wey-Yi @ 2011-05-26 14:50 UTC (permalink / raw)
  To: Stanislaw Gruszka
  Cc: Johannes Berg, Intel Linux Wireless,
	linux-wireless@vger.kernel.org

On Thu, 2011-05-26 at 08:14 -0700, Stanislaw Gruszka wrote:
> This patch fixes 802.11n stability and performance regression we have
> since 2.6.35. It boost performance on my 5GHz N-only network from about
> 5MB/s to 8MB/s. Similar percentage boost can be observed on 2.4 GHz.
> 
> These are test results of 5x downloading of approximately 700MB iso
> image:
> 
> vanilla: 5.27 5.22 4.94 4.47 5.31 ; avr 5.0420 std 0.35110
> patched: 8.07 7.95 8.06 7.99 7.96 ; avr 8.0060 std 0.055946
> 
> This was achieved with NetworkManager configured to do not perform
> periodical scans, by configuring constant BSSID. With periodical scans,
> after some time, performance downgrade to unpatched driver level, like
> in example below:
> 
> patched: 7.40 7.61 4.28 4.37 4.80 avr 5.6920 std 1.6683
> 
> However patch still make better here, since similar test on unpatched
> driver make link disconnects with below messages after some time:
> 
> wlan1: authenticate with 00:23:69:35:d1:3f (try 1)
> wlan1: authenticate with 00:23:69:35:d1:3f (try 2)
> wlan1: authenticate with 00:23:69:35:d1:3f (try 3)
> wlan1: authentication with 00:23:69:35:d1:3f timed out
> 
> On 2.6.35 kernel patch helps against connection hangs with messages:
> 
> iwlagn 0000:20:00.0: queue 10 stuck 3 time. Fw reload.
> iwlagn 0000:20:00.0: On demand firmware reload
> iwlagn 0000:20:00.0: Stopping AGG while state not ON or starting
> 
> Cc: stable@kernel.org # 2.6.35+
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
> ---
> v1 -> v2: s/unpached/unpatched/
> 
>  drivers/net/wireless/iwlwifi/iwl-5000.c     |    1 -
>  drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c |   12 ++----------
>  drivers/net/wireless/iwlwifi/iwl-agn-rxon.c |    8 ++++++++
>  3 files changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
> index a70b8cf..f96eb5b 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-5000.c
> +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
> @@ -425,7 +425,6 @@ static struct iwl_base_params iwl5000_base_params = {
>  };
>  static struct iwl_ht_params iwl5000_ht_params = {
>  	.ht_greenfield_support = true,
> -	.use_rts_for_aggregation = true, /* use rts/cts protection */
>  };
>  
>  #define IWL_DEVICE_5000						\
> diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
> index b12c72d..23fa93d 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
> +++ b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
> @@ -163,17 +163,9 @@ static void iwlagn_tx_cmd_protection(struct iwl_priv *priv,
>  				     __le16 fc, __le32 *tx_flags)
>  {
>  	if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS ||
> -	    info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
> +	    info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT ||
> +	    info->flags & IEEE80211_TX_CTL_AMPDU)
>  		*tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK;
> -		return;
> -	}
> -
> -	if (priv->cfg->ht_params &&
> -	    priv->cfg->ht_params->use_rts_for_aggregation &&
> -	    info->flags & IEEE80211_TX_CTL_AMPDU) {
> -		*tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK;
> -		return;
> -	}
>  }
>  
>  /* Calc max signal level (dBm) among 3 possible receivers */
> diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
> index a95ad84..0a1941d 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
> +++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
> @@ -325,6 +325,14 @@ int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
>  			return 0;
>  	}
>  
> +	/*
> +	 * force CTS-to-self frames protection if RTS-CTS is not preferred
> +	 * one aggregation protection method
> +	 */
> +	if (!(priv->cfg->ht_params &&
> +	      priv->cfg->ht_params->use_rts_for_aggregation))
> +		ctx->staging.flags |= RXON_FLG_SELF_CTS_EN;
> +
>  	if ((ctx->vif && ctx->vif->bss_conf.use_short_slot) ||
>  	    !(ctx->staging.flags & RXON_FLG_BAND_24G_MSK))
>  		ctx->staging.flags |= RXON_FLG_SHORT_SLOT_MSK;



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2] iwlagn: use cts-to-self protection on 5000 adapters series
@ 2011-05-26 15:14 Stanislaw Gruszka
  2011-05-26 14:50 ` Guy, Wey-Yi
  0 siblings, 1 reply; 7+ messages in thread
From: Stanislaw Gruszka @ 2011-05-26 15:14 UTC (permalink / raw)
  To: Wey-Yi Guy; +Cc: Johannes Berg, Intel Linux Wireless, linux-wireless

This patch fixes 802.11n stability and performance regression we have
since 2.6.35. It boost performance on my 5GHz N-only network from about
5MB/s to 8MB/s. Similar percentage boost can be observed on 2.4 GHz.

These are test results of 5x downloading of approximately 700MB iso
image:

vanilla: 5.27 5.22 4.94 4.47 5.31 ; avr 5.0420 std 0.35110
patched: 8.07 7.95 8.06 7.99 7.96 ; avr 8.0060 std 0.055946

This was achieved with NetworkManager configured to do not perform
periodical scans, by configuring constant BSSID. With periodical scans,
after some time, performance downgrade to unpatched driver level, like
in example below:

patched: 7.40 7.61 4.28 4.37 4.80 avr 5.6920 std 1.6683

However patch still make better here, since similar test on unpatched
driver make link disconnects with below messages after some time:

wlan1: authenticate with 00:23:69:35:d1:3f (try 1)
wlan1: authenticate with 00:23:69:35:d1:3f (try 2)
wlan1: authenticate with 00:23:69:35:d1:3f (try 3)
wlan1: authentication with 00:23:69:35:d1:3f timed out

On 2.6.35 kernel patch helps against connection hangs with messages:

iwlagn 0000:20:00.0: queue 10 stuck 3 time. Fw reload.
iwlagn 0000:20:00.0: On demand firmware reload
iwlagn 0000:20:00.0: Stopping AGG while state not ON or starting

Cc: stable@kernel.org # 2.6.35+
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
v1 -> v2: s/unpached/unpatched/

 drivers/net/wireless/iwlwifi/iwl-5000.c     |    1 -
 drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c |   12 ++----------
 drivers/net/wireless/iwlwifi/iwl-agn-rxon.c |    8 ++++++++
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index a70b8cf..f96eb5b 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -425,7 +425,6 @@ static struct iwl_base_params iwl5000_base_params = {
 };
 static struct iwl_ht_params iwl5000_ht_params = {
 	.ht_greenfield_support = true,
-	.use_rts_for_aggregation = true, /* use rts/cts protection */
 };
 
 #define IWL_DEVICE_5000						\
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
index b12c72d..23fa93d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
@@ -163,17 +163,9 @@ static void iwlagn_tx_cmd_protection(struct iwl_priv *priv,
 				     __le16 fc, __le32 *tx_flags)
 {
 	if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS ||
-	    info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
+	    info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT ||
+	    info->flags & IEEE80211_TX_CTL_AMPDU)
 		*tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK;
-		return;
-	}
-
-	if (priv->cfg->ht_params &&
-	    priv->cfg->ht_params->use_rts_for_aggregation &&
-	    info->flags & IEEE80211_TX_CTL_AMPDU) {
-		*tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK;
-		return;
-	}
 }
 
 /* Calc max signal level (dBm) among 3 possible receivers */
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
index a95ad84..0a1941d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
@@ -325,6 +325,14 @@ int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
 			return 0;
 	}
 
+	/*
+	 * force CTS-to-self frames protection if RTS-CTS is not preferred
+	 * one aggregation protection method
+	 */
+	if (!(priv->cfg->ht_params &&
+	      priv->cfg->ht_params->use_rts_for_aggregation))
+		ctx->staging.flags |= RXON_FLG_SELF_CTS_EN;
+
 	if ((ctx->vif && ctx->vif->bss_conf.use_short_slot) ||
 	    !(ctx->staging.flags & RXON_FLG_BAND_24G_MSK))
 		ctx->staging.flags |= RXON_FLG_SHORT_SLOT_MSK;
-- 
1.7.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] iwlagn: use cts-to-self protection on 5000 adapters series
  2011-05-26 14:50 ` Guy, Wey-Yi
@ 2011-05-26 15:20   ` Daniel Halperin
  2011-05-30  9:40     ` Stanislaw Gruszka
  2011-06-06  8:58   ` Stanislaw Gruszka
  1 sibling, 1 reply; 7+ messages in thread
From: Daniel Halperin @ 2011-05-26 15:20 UTC (permalink / raw)
  To: Guy, Wey-Yi
  Cc: Stanislaw Gruszka, Johannes Berg, Intel Linux Wireless,
	linux-wireless@vger.kernel.org

On Thu, May 26, 2011 at 7:50 AM, Guy, Wey-Yi <wey-yi.w.guy@intel.com> wrote:
> On Thu, 2011-05-26 at 08:14 -0700, Stanislaw Gruszka wrote:
>> diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
>> index b12c72d..23fa93d 100644
>> --- a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
>> +++ b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
>> @@ -163,17 +163,9 @@ static void iwlagn_tx_cmd_protection(struct iwl_priv *priv,
>>                                    __le16 fc, __le32 *tx_flags)
>>  {
>>       if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS ||
>> -         info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
>> +         info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT ||
>> +         info->flags & IEEE80211_TX_CTL_AMPDU)
>>               *tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK;
>> -             return;
>> -     }
>> -
>> -     if (priv->cfg->ht_params &&
>> -         priv->cfg->ht_params->use_rts_for_aggregation &&
>> -         info->flags & IEEE80211_TX_CTL_AMPDU) {
>> -             *tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK;
>> -             return;
>> -     }
>>  }

Shouldn't there be a new "use_cts_for_aggregation" flag and one that
dominates (looks like use_rts in your setup), rather than this? I'm
still a bit confused as to why CTS-to-self should help (as opposed to
masking some other bug).

Dan

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] iwlagn: use cts-to-self protection on 5000 adapters series
  2011-05-26 15:20   ` Daniel Halperin
@ 2011-05-30  9:40     ` Stanislaw Gruszka
  0 siblings, 0 replies; 7+ messages in thread
From: Stanislaw Gruszka @ 2011-05-30  9:40 UTC (permalink / raw)
  To: Daniel Halperin
  Cc: Guy, Wey-Yi, Johannes Berg, Intel Linux Wireless,
	linux-wireless@vger.kernel.org

On Thu, May 26, 2011 at 08:20:58AM -0700, Daniel Halperin wrote:
> On Thu, May 26, 2011 at 7:50 AM, Guy, Wey-Yi <wey-yi.w.guy@intel.com> wrote:
> > On Thu, 2011-05-26 at 08:14 -0700, Stanislaw Gruszka wrote:
> >> diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
> >> index b12c72d..23fa93d 100644
> >> --- a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
> >> +++ b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
> >> @@ -163,17 +163,9 @@ static void iwlagn_tx_cmd_protection(struct iwl_priv *priv,
> >>                                    __le16 fc, __le32 *tx_flags)
> >>  {
> >>       if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS ||
> >> -         info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
> >> +         info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT ||
> >> +         info->flags & IEEE80211_TX_CTL_AMPDU)
> >>               *tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK;
> >> -             return;
> >> -     }
> >> -
> >> -     if (priv->cfg->ht_params &&
> >> -         priv->cfg->ht_params->use_rts_for_aggregation &&
> >> -         info->flags & IEEE80211_TX_CTL_AMPDU) {
> >> -             *tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK;
> >> -             return;
> >> -     }
> >>  }
> 
> Shouldn't there be a new "use_cts_for_aggregation" flag and one that
> dominates (looks like use_rts in your setup), rather than this?

Not sure if I understand. Rts-cts and cts-to-self are mutual exclusive
at present, so if use_rts_for_aggregations = 0 mean that cts-to-self
protection must be used. Perhaps we should introduce 4-way module
option like: FORCE_RTS_CTS, FORCE_CTS_TO_SELF, FORCE_NO_PROTECTION,
DEFAULT (HW depend) just for doing experiments.

> I'm
> still a bit confused as to why CTS-to-self should help (as opposed to
> masking some other bug).

I have no idea too, and indeed this could mask some (firmware?) bug.
I think I can explain slight better performance on 6000 - when we
use rts-cts two additional frames must be used when starting BA session,
with cts-to-self only one frame.

Anyway 11n on iwlwifi still need some more investigation and fixing.

Stanislaw

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] iwlagn: use cts-to-self protection on 5000 adapters series
  2011-05-26 14:50 ` Guy, Wey-Yi
  2011-05-26 15:20   ` Daniel Halperin
@ 2011-06-06  8:58   ` Stanislaw Gruszka
  2011-06-06 18:21     ` John W. Linville
  1 sibling, 1 reply; 7+ messages in thread
From: Stanislaw Gruszka @ 2011-06-06  8:58 UTC (permalink / raw)
  To: John W. Linville
  Cc: Johannes Berg, Intel Linux Wireless,
	linux-wireless@vger.kernel.org, Guy, Wey-Yi

On Thu, May 26, 2011 at 07:50:42AM -0700, Guy, Wey-Yi wrote:
> On Thu, 2011-05-26 at 08:14 -0700, Stanislaw Gruszka wrote:
> > This patch fixes 802.11n stability and performance regression we have
> > since 2.6.35. It boost performance on my 5GHz N-only network from about
> > 5MB/s to 8MB/s. Similar percentage boost can be observed on 2.4 GHz.
> > 
> > These are test results of 5x downloading of approximately 700MB iso
> > image:
> > 
> > vanilla: 5.27 5.22 4.94 4.47 5.31 ; avr 5.0420 std 0.35110
> > patched: 8.07 7.95 8.06 7.99 7.96 ; avr 8.0060 std 0.055946
> > 
> > This was achieved with NetworkManager configured to do not perform
> > periodical scans, by configuring constant BSSID. With periodical scans,
> > after some time, performance downgrade to unpatched driver level, like
> > in example below:
> > 
> > patched: 7.40 7.61 4.28 4.37 4.80 avr 5.6920 std 1.6683
> > 
> > However patch still make better here, since similar test on unpatched
> > driver make link disconnects with below messages after some time:
> > 
> > wlan1: authenticate with 00:23:69:35:d1:3f (try 1)
> > wlan1: authenticate with 00:23:69:35:d1:3f (try 2)
> > wlan1: authenticate with 00:23:69:35:d1:3f (try 3)
> > wlan1: authentication with 00:23:69:35:d1:3f timed out
> > 
> > On 2.6.35 kernel patch helps against connection hangs with messages:
> > 
> > iwlagn 0000:20:00.0: queue 10 stuck 3 time. Fw reload.
> > iwlagn 0000:20:00.0: On demand firmware reload
> > iwlagn 0000:20:00.0: Stopping AGG while state not ON or starting
> > 
> > Cc: stable@kernel.org # 2.6.35+
> > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>

John, can you apply that patch and push upstream? Or should I
repost? I want backport it to Fedora 2.6.35 as it fixes random
11n connection hangs there (common F-14 bug).

> > ---
> > v1 -> v2: s/unpached/unpatched/
> > 
> >  drivers/net/wireless/iwlwifi/iwl-5000.c     |    1 -
> >  drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c |   12 ++----------
> >  drivers/net/wireless/iwlwifi/iwl-agn-rxon.c |    8 ++++++++
> >  3 files changed, 10 insertions(+), 11 deletions(-)
> > 
> > diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
> > index a70b8cf..f96eb5b 100644
> > --- a/drivers/net/wireless/iwlwifi/iwl-5000.c
> > +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
> > @@ -425,7 +425,6 @@ static struct iwl_base_params iwl5000_base_params = {
> >  };
> >  static struct iwl_ht_params iwl5000_ht_params = {
> >  	.ht_greenfield_support = true,
> > -	.use_rts_for_aggregation = true, /* use rts/cts protection */
> >  };
> >  
> >  #define IWL_DEVICE_5000						\
> > diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
> > index b12c72d..23fa93d 100644
> > --- a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
> > +++ b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
> > @@ -163,17 +163,9 @@ static void iwlagn_tx_cmd_protection(struct iwl_priv *priv,
> >  				     __le16 fc, __le32 *tx_flags)
> >  {
> >  	if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS ||
> > -	    info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
> > +	    info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT ||
> > +	    info->flags & IEEE80211_TX_CTL_AMPDU)
> >  		*tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK;
> > -		return;
> > -	}
> > -
> > -	if (priv->cfg->ht_params &&
> > -	    priv->cfg->ht_params->use_rts_for_aggregation &&
> > -	    info->flags & IEEE80211_TX_CTL_AMPDU) {
> > -		*tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK;
> > -		return;
> > -	}
> >  }
> >  
> >  /* Calc max signal level (dBm) among 3 possible receivers */
> > diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
> > index a95ad84..0a1941d 100644
> > --- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
> > +++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
> > @@ -325,6 +325,14 @@ int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
> >  			return 0;
> >  	}
> >  
> > +	/*
> > +	 * force CTS-to-self frames protection if RTS-CTS is not preferred
> > +	 * one aggregation protection method
> > +	 */
> > +	if (!(priv->cfg->ht_params &&
> > +	      priv->cfg->ht_params->use_rts_for_aggregation))
> > +		ctx->staging.flags |= RXON_FLG_SELF_CTS_EN;
> > +
> >  	if ((ctx->vif && ctx->vif->bss_conf.use_short_slot) ||
> >  	    !(ctx->staging.flags & RXON_FLG_BAND_24G_MSK))
> >  		ctx->staging.flags |= RXON_FLG_SHORT_SLOT_MSK;
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] iwlagn: use cts-to-self protection on 5000 adapters series
  2011-06-06  8:58   ` Stanislaw Gruszka
@ 2011-06-06 18:21     ` John W. Linville
  2011-06-06 21:35       ` Daniel Halperin
  0 siblings, 1 reply; 7+ messages in thread
From: John W. Linville @ 2011-06-06 18:21 UTC (permalink / raw)
  To: Stanislaw Gruszka
  Cc: Johannes Berg, Intel Linux Wireless,
	linux-wireless@vger.kernel.org, Guy, Wey-Yi

On Mon, Jun 06, 2011 at 10:58:52AM +0200, Stanislaw Gruszka wrote:
> On Thu, May 26, 2011 at 07:50:42AM -0700, Guy, Wey-Yi wrote:
> > On Thu, 2011-05-26 at 08:14 -0700, Stanislaw Gruszka wrote:
> > > This patch fixes 802.11n stability and performance regression we have
> > > since 2.6.35. It boost performance on my 5GHz N-only network from about
> > > 5MB/s to 8MB/s. Similar percentage boost can be observed on 2.4 GHz.
> > > 
> > > These are test results of 5x downloading of approximately 700MB iso
> > > image:
> > > 
> > > vanilla: 5.27 5.22 4.94 4.47 5.31 ; avr 5.0420 std 0.35110
> > > patched: 8.07 7.95 8.06 7.99 7.96 ; avr 8.0060 std 0.055946
> > > 
> > > This was achieved with NetworkManager configured to do not perform
> > > periodical scans, by configuring constant BSSID. With periodical scans,
> > > after some time, performance downgrade to unpatched driver level, like
> > > in example below:
> > > 
> > > patched: 7.40 7.61 4.28 4.37 4.80 avr 5.6920 std 1.6683
> > > 
> > > However patch still make better here, since similar test on unpatched
> > > driver make link disconnects with below messages after some time:
> > > 
> > > wlan1: authenticate with 00:23:69:35:d1:3f (try 1)
> > > wlan1: authenticate with 00:23:69:35:d1:3f (try 2)
> > > wlan1: authenticate with 00:23:69:35:d1:3f (try 3)
> > > wlan1: authentication with 00:23:69:35:d1:3f timed out
> > > 
> > > On 2.6.35 kernel patch helps against connection hangs with messages:
> > > 
> > > iwlagn 0000:20:00.0: queue 10 stuck 3 time. Fw reload.
> > > iwlagn 0000:20:00.0: On demand firmware reload
> > > iwlagn 0000:20:00.0: Stopping AGG while state not ON or starting
> > > 
> > > Cc: stable@kernel.org # 2.6.35+
> > > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> > Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
> 
> John, can you apply that patch and push upstream? Or should I
> repost? I want backport it to Fedora 2.6.35 as it fixes random
> 11n connection hangs there (common F-14 bug).

Sorry, I was waiting to see if Daniel was going to reply further...

John
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] iwlagn: use cts-to-self protection on 5000 adapters series
  2011-06-06 18:21     ` John W. Linville
@ 2011-06-06 21:35       ` Daniel Halperin
  0 siblings, 0 replies; 7+ messages in thread
From: Daniel Halperin @ 2011-06-06 21:35 UTC (permalink / raw)
  To: John W. Linville
  Cc: Stanislaw Gruszka, Johannes Berg, Intel Linux Wireless,
	linux-wireless@vger.kernel.org, Guy, Wey-Yi

On Mon, Jun 6, 2011 at 11:21 AM, John W. Linville
<linville@tuxdriver.com> wrote:
> On Mon, Jun 06, 2011 at 10:58:52AM +0200, Stanislaw Gruszka wrote:
>> On Thu, May 26, 2011 at 07:50:42AM -0700, Guy, Wey-Yi wrote:
>> > On Thu, 2011-05-26 at 08:14 -0700, Stanislaw Gruszka wrote:
>> > > This patch fixes 802.11n stability and performance regression we have
>> > > since 2.6.35. It boost performance on my 5GHz N-only network from about
>> > > 5MB/s to 8MB/s. Similar percentage boost can be observed on 2.4 GHz.
>> > >
>> > > These are test results of 5x downloading of approximately 700MB iso
>> > > image:
>> > >
>> > > vanilla: 5.27 5.22 4.94 4.47 5.31 ; avr 5.0420 std 0.35110
>> > > patched: 8.07 7.95 8.06 7.99 7.96 ; avr 8.0060 std 0.055946
>> > >
>> > > This was achieved with NetworkManager configured to do not perform
>> > > periodical scans, by configuring constant BSSID. With periodical scans,
>> > > after some time, performance downgrade to unpatched driver level, like
>> > > in example below:
>> > >
>> > > patched: 7.40 7.61 4.28 4.37 4.80 avr 5.6920 std 1.6683
>> > >
>> > > However patch still make better here, since similar test on unpatched
>> > > driver make link disconnects with below messages after some time:
>> > >
>> > > wlan1: authenticate with 00:23:69:35:d1:3f (try 1)
>> > > wlan1: authenticate with 00:23:69:35:d1:3f (try 2)
>> > > wlan1: authenticate with 00:23:69:35:d1:3f (try 3)
>> > > wlan1: authentication with 00:23:69:35:d1:3f timed out
>> > >
>> > > On 2.6.35 kernel patch helps against connection hangs with messages:
>> > >
>> > > iwlagn 0000:20:00.0: queue 10 stuck 3 time. Fw reload.
>> > > iwlagn 0000:20:00.0: On demand firmware reload
>> > > iwlagn 0000:20:00.0: Stopping AGG while state not ON or starting
>> > >
>> > > Cc: stable@kernel.org # 2.6.35+
>> > > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
>> > Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
>>
>> John, can you apply that patch and push upstream? Or should I
>> repost? I want backport it to Fedora 2.6.35 as it fixes random
>> 11n connection hangs there (common F-14 bug).
>
> Sorry, I was waiting to see if Daniel was going to reply further...
>

Gotcha -- I doubt it harms much, and Stanislaw is right that changing
RTS/CTS to CTS-self is more efficient. This patch is likely a good
thing to have, though I still think there's something else going on ;)

Dan

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-06-06 21:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-26 15:14 [PATCH v2] iwlagn: use cts-to-self protection on 5000 adapters series Stanislaw Gruszka
2011-05-26 14:50 ` Guy, Wey-Yi
2011-05-26 15:20   ` Daniel Halperin
2011-05-30  9:40     ` Stanislaw Gruszka
2011-06-06  8:58   ` Stanislaw Gruszka
2011-06-06 18:21     ` John W. Linville
2011-06-06 21:35       ` Daniel Halperin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).