Page MenuHomeFreeBSD

D45070.diff
No OneTemporary

D45070.diff

diff --git a/sys/netinet/in_kdtrace.h b/sys/netinet/in_kdtrace.h
--- a/sys/netinet/in_kdtrace.h
+++ b/sys/netinet/in_kdtrace.h
@@ -286,6 +286,7 @@
SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_recovery_episode);
SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rexmits);
+SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rexmits_tso);
SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rexmit_bytes);
SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_rcv_blocks);
SDT_PROBE_DECLARE(mib, tcp, count, tcps_sack_send_blocks);
diff --git a/sys/netinet/in_kdtrace.c b/sys/netinet/in_kdtrace.c
--- a/sys/netinet/in_kdtrace.c
+++ b/sys/netinet/in_kdtrace.c
@@ -294,6 +294,7 @@
MIB_PROBE_TCP(tcps_sack_recovery_episode);
MIB_PROBE_TCP(tcps_sack_rexmits);
+MIB_PROBE_TCP(tcps_sack_rexmits_tso);
MIB_PROBE_TCP(tcps_sack_rexmit_bytes);
MIB_PROBE_TCP(tcps_sack_rcv_blocks);
MIB_PROBE_TCP(tcps_sack_send_blocks);
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -1037,6 +1037,9 @@
TCPSTAT_ADD(tcps_sndrexmitbyte, len);
if (sack_rxmit) {
TCPSTAT_INC(tcps_sack_rexmits);
+ if (tso) {
+ TCPSTAT_INC(tcps_sack_rexmits_tso);
+ }
TCPSTAT_ADD(tcps_sack_rexmit_bytes, len);
}
#ifdef STATS
diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h
--- a/sys/netinet/tcp_var.h
+++ b/sys/netinet/tcp_var.h
@@ -1030,6 +1030,7 @@
/* SACK related stats */
uint64_t tcps_sack_recovery_episode; /* SACK recovery episodes */
uint64_t tcps_sack_rexmits; /* SACK rexmit segments */
+ uint64_t tcps_sack_rexmits_tso; /* SACK rexmit TSO chunks */
uint64_t tcps_sack_rexmit_bytes; /* SACK rexmit bytes */
uint64_t tcps_sack_rcv_blocks; /* SACK blocks (options) received */
uint64_t tcps_sack_send_blocks; /* SACK blocks (options) sent */
@@ -1088,7 +1089,7 @@
uint64_t tcps_tlpresend_bytes; /* number of bytes resent by tlp */
- uint64_t _pad[4]; /* 4 TBD placeholder for STABLE */
+ uint64_t _pad[3]; /* 3 TBD placeholder for STABLE */
};
#define tcps_rcvmemdrop tcps_rcvreassfull /* compat */
diff --git a/usr.bin/netstat/inet.c b/usr.bin/netstat/inet.c
--- a/usr.bin/netstat/inet.c
+++ b/usr.bin/netstat/inet.c
@@ -783,11 +783,13 @@
p(tcps_sack_recovery_episode, "\t{:recovery-episodes/%ju} "
"{N:/SACK recovery episode%s}\n");
- p(tcps_sack_rexmits, "\t{:segment-retransmits/%ju} "
+ p(tcps_sack_rexmits, "\t{:segment-retransmits/%ju} "
"{N:/segment rexmit%s in SACK recovery episodes}\n");
- p(tcps_sack_rexmit_bytes, "\t{:byte-retransmits/%ju} "
+ p(tcps_sack_rexmits_tso, "\t{:tso-chunk-retransmits/%ju} "
+ "{N:/tso chunk rexmit%s in SACK recovery episodes}\n");
+ p(tcps_sack_rexmit_bytes, "\t{:byte-retransmits/%ju} "
"{N:/byte rexmit%s in SACK recovery episodes}\n");
- p(tcps_sack_rcv_blocks, "\t{:received-blocks/%ju} "
+ p(tcps_sack_rcv_blocks, "\t{:received-blocks/%ju} "
"{N:/SACK option%s (SACK blocks) received}\n");
p(tcps_sack_send_blocks, "\t{:sent-option-blocks/%ju} "
"{N:/SACK option%s (SACK blocks) sent}\n");

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 19, 6:59 PM (2 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29974756
Default Alt Text
D45070.diff (3 KB)

Event Timeline