> Date: Sat, 19 Nov 2016 18:11:23 +0100
> From: Stefan Sperling <s...@stsp.name>
> 
> The RTS retry limit we inherited from Linux seems insanely high.
> 
> It seems to be the cause for "bursty" pings and high latency for
> smaller packets while larger packets from TCP streams are stuck
> in the Tx queue:
> 
>  64 bytes from 192.168.1.12: icmp_seq=84 ttl=251 time=380.203 ms
>  64 bytes from 192.168.1.12: icmp_seq=85 ttl=251 time=710.714 ms
>  64 bytes from 192.168.1.12: icmp_seq=86 ttl=251 time=279.594 ms
>  64 bytes from 192.168.1.12: icmp_seq=87 ttl=251 time=893.879 ms
>  64 bytes from 192.168.1.12: icmp_seq=88 ttl=251 time=34800.236 ms
>  64 bytes from 192.168.1.12: icmp_seq=89 ttl=251 time=33815.364 ms
>  64 bytes from 192.168.1.12: icmp_seq=90 ttl=251 time=32824.247 ms
>  64 bytes from 192.168.1.12: icmp_seq=91 ttl=251 time=31822.355 ms
>  64 bytes from 192.168.1.12: icmp_seq=92 ttl=251 time=30817.395 ms
>  64 bytes from 192.168.1.12: icmp_seq=93 ttl=251 time=29822.478 ms
>  64 bytes from 192.168.1.12: icmp_seq=94 ttl=251 time=28817.508 ms
> 
> With this diff, while in bad channel conditions, instead of the above
> I am seeing 22% lost ping packets, and reasonable latency for those
> packets which make it through.
> 
> SSH into the machine is even possible (yet rather unusable), whereas
> before it didn't work at all.
> 
> ok?

Is it really a good idea to deviate from what Linux does here?
Perhaps for TCP this is slightly better, but how about other
protocols?  Anything that does broadcasts/multicasts will suffer from
higher packet loss.

In the end if you end up in a situation where the wireless connection
is so unreliable, you'll have to fix the wireless setup...


> Index: if_iwmreg.h
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/if_iwmreg.h,v
> retrieving revision 1.19
> diff -u -p -r1.19 if_iwmreg.h
> --- if_iwmreg.h       20 Sep 2016 11:46:09 -0000      1.19
> +++ if_iwmreg.h       19 Nov 2016 16:36:21 -0000
> @@ -4268,7 +4268,7 @@ struct iwm_lq_cmd {
>   */
>  #define IWM_DEFAULT_TX_RETRY                 15
>  #define IWM_MGMT_DFAULT_RETRY_LIMIT          3
> -#define IWM_RTS_DFAULT_RETRY_LIMIT           60
> +#define IWM_RTS_DFAULT_RETRY_LIMIT           3
>  #define IWM_BAR_DFAULT_RETRY_LIMIT           60
>  #define IWM_LOW_RETRY_LIMIT                  7
>  
> 
> 

Reply via email to