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?

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