svn commit: r294869 - in head: sys/dev/cxgbe/tom sys/netinet usr.bin/systat
Sepherosa Ziehau
sepherosa at gmail.com
Wed Jan 27 03:50:45 UTC 2016
This seems to break i386 LINT:
/usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1021:20:
error: use of undeclared identifier 'tcpstates'; did you mean
'tcpstat'?
toep->tp_tid, tcpstates[tp->t_state], toep, inp);
^~~~~~~~~
tcpstat
/usr/freebsd-svn/head/sys/sys/ktr.h:89:69: note: expanded from macro 'CTR5'
#define CTR5(m, format, p1, p2, p3, p4, p5) CTR6(m, format, p1,
p2, p3, p4, p5, 0)
^
/usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6'
(u_long)(p1), (u_long)(p2), (u_long)(p3), \
^
/usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat'
declared here
VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */
^
--- all_subdir_ctl ---
--- ctl_error.o ---
cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE
-nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include
/usr/obj/i386.i386/usr/freebsd-svn/head/sys/LINT/opt_global.h -I.
-I/usr/freebsd-svn/head/sys -fno-common
-I/usr/obj/i386.i386/usr/freebsd-svn/head/sys/LINT -fno-builtin
-mno-mmx -mno-sse -msoft-float -ffreestanding -fwrapv
-fstack-protector -Wall -Wredundant-decls -Wnested-externs
-Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline
-Wcast-qual -Wundef -Wno-pointer-sign
-D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs
-fdiagnostics-show-option -Wno-unknown-pragmas
-Wno-error-tautological-compare -Wno-error-empty-body
-Wno-error-parentheses-equality -Wno-error-unused-function
-Wno-error-pointer-sign -Wno-error-shift-negative-value -mno-aes
-mno-avx -std=iso9899:1999 -c
/usr/freebsd-svn/head/sys/modules/ctl/../../cam/ctl/ctl_error.c -o
ctl_error.o
--- all_subdir_cxgb ---
/usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro
'VNET_PCPUSTAT_DECLARE'
VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)])
^
/usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro
'VNET_DECLARE'
#define VNET_DECLARE(t, n) extern t n
^
/usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1230:16:
error: use of undeclared identifier 'tcpstates'; did you mean
'tcpstat'?
tid, tp ? tcpstates[tp->t_state] : "no tp" , toep->tp_flags, inp);
^~~~~~~~~
tcpstat
/usr/freebsd-svn/head/sys/sys/ktr.h:89:69: note: expanded from macro 'CTR5'
#define CTR5(m, format, p1, p2, p3, p4, p5) CTR6(m, format, p1,
p2, p3, p4, p5, 0)
^
/usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6'
(u_long)(p1), (u_long)(p2), (u_long)(p3), \
^
/usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat'
declared here
VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */
^
/usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro
'VNET_PCPUSTAT_DECLARE'
VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)])
^
/usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro
'VNET_DECLARE'
#define VNET_DECLARE(t, n) extern t n
^
/usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1230:14:
error: pointer type mismatch ('counter_u64_t' (aka 'unsigned long long
*') and 'char *') [-Werror,-Wpointer-type-mismatch]
tid, tp ? tcpstates[tp->t_state] : "no tp" , toep->tp_flags, inp);
^ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
/usr/freebsd-svn/head/sys/sys/ktr.h:89:69: note: expanded from macro 'CTR5'
#define CTR5(m, format, p1, p2, p3, p4, p5) CTR6(m, format, p1,
p2, p3, p4, p5, 0)
^
/usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6'
(u_long)(p1), (u_long)(p2), (u_long)(p3), \
^
/usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1293:11:
error: use of undeclared identifier 'tcpstates'; did you mean
'tcpstat'?
tp ? tcpstates[tp->t_state] : "no tp", toep->tp_flags);
^~~~~~~~~
tcpstat
/usr/freebsd-svn/head/sys/sys/ktr.h:88:65: note: expanded from macro 'CTR4'
#define CTR4(m, format, p1, p2, p3, p4) CTR6(m, format, p1, p2, p3, p4, 0, 0)
^
/usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6'
(u_long)(p1), (u_long)(p2), (u_long)(p3), \
^
/usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat'
declared here
VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */
^
/usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro
'VNET_PCPUSTAT_DECLARE'
VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)])
^
/usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro
'VNET_DECLARE'
#define VNET_DECLARE(t, n) extern t n
^
/usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1293:9:
error: pointer type mismatch ('counter_u64_t' (aka 'unsigned long long
*') and 'char *') [-Werror,-Wpointer-type-mismatch]
tp ? tcpstates[tp->t_state] : "no tp", toep->tp_flags);
^ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
/usr/freebsd-svn/head/sys/sys/ktr.h:88:65: note: expanded from macro 'CTR4'
#define CTR4(m, format, p1, p2, p3, p4) CTR6(m, format, p1, p2, p3, p4, 0, 0)
^
/usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6'
(u_long)(p1), (u_long)(p2), (u_long)(p3), \
^
/usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1499:21:
error: use of undeclared identifier 'tcpstates'; did you mean
'tcpstat'?
__func__, tid, tcpstates[tp->t_state], toep, toep->tp_flags,
^~~~~~~~~
tcpstat
/usr/freebsd-svn/head/sys/sys/ktr.h:81:44: note: expanded from macro 'CTR6'
(u_long)(p1), (u_long)(p2), (u_long)(p3), \
^
/usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat'
declared here
VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */
^
/usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro
'VNET_PCPUSTAT_DECLARE'
VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)])
^
/usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro
'VNET_DECLARE'
#define VNET_DECLARE(t, n) extern t n
^
/usr/freebsd-svn/head/sys/modules/cxgb/tom/../../../dev/cxgb/ulp/tom/cxgb_cpl_io.c:1585:47:
error: use of undeclared identifier 'tcpstates'; did you mean
'tcpstat'?
CTR4(KTR_CXGB, "%s tid %u, toep %p, inp %p", tcpstates[tp->t_state],
^~~~~~~~~
tcpstat
/usr/freebsd-svn/head/sys/sys/ktr.h:88:57: note: expanded from macro 'CTR4'
#define CTR4(m, format, p1, p2, p3, p4) CTR6(m, format, p1, p2, p3, p4, 0, 0)
^
/usr/freebsd-svn/head/sys/sys/ktr.h:81:16: note: expanded from macro 'CTR6'
(u_long)(p1), (u_long)(p2), (u_long)(p3), \
^
/usr/freebsd-svn/head/sys/netinet/tcp_var.h:604:39: note: 'tcpstat'
declared here
VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */
^
/usr/freebsd-svn/head/sys/net/vnet.h:89:33: note: expanded from macro
'VNET_PCPUSTAT_DECLARE'
VNET_DECLARE(counter_u64_t, name[sizeof(type) / sizeof(uint64_t)])
^
/usr/freebsd-svn/head/sys/net/vnet.h:399:37: note: expanded from macro
'VNET_DECLARE'
#define VNET_DECLARE(t, n) extern t n
On Wed, Jan 27, 2016 at 8:45 AM, Gleb Smirnoff <glebius at freebsd.org> wrote:
> Author: glebius
> Date: Wed Jan 27 00:45:46 2016
> New Revision: 294869
> URL: https://svnweb.freebsd.org/changeset/base/294869
>
> Log:
> Augment struct tcpstat with tcps_states[], which is used for book-keeping
> the amount of TCP connections by state. Provides a cheap way to get
> connection count without traversing the whole pcb list.
>
> Sponsored by: Netflix
>
> Modified:
> head/sys/dev/cxgbe/tom/t4_cpl_io.c
> head/sys/netinet/tcp_offload.c
> head/sys/netinet/tcp_subr.c
> head/sys/netinet/tcp_syncache.c
> head/sys/netinet/tcp_timewait.c
> head/sys/netinet/tcp_usrreq.c
> head/sys/netinet/tcp_var.h
> head/usr.bin/systat/netstat.c
>
> Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c
> ==============================================================================
> --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Wed Jan 27 00:24:24 2016 (r294868)
> +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Wed Jan 27 00:45:46 2016 (r294869)
> @@ -45,10 +45,10 @@ __FBSDID("$FreeBSD$");
> #include <netinet/in_pcb.h>
> #include <netinet/ip.h>
> #include <netinet/ip6.h>
> -#include <netinet/tcp_var.h>
> #define TCPSTATES
> #include <netinet/tcp_fsm.h>
> #include <netinet/tcp_seq.h>
> +#include <netinet/tcp_var.h>
> #include <netinet/toecore.h>
>
> #include "common/common.h"
>
> Modified: head/sys/netinet/tcp_offload.c
> ==============================================================================
> --- head/sys/netinet/tcp_offload.c Wed Jan 27 00:24:24 2016 (r294868)
> +++ head/sys/netinet/tcp_offload.c Wed Jan 27 00:45:46 2016 (r294869)
> @@ -42,10 +42,10 @@ __FBSDID("$FreeBSD$");
> #include <netinet/in.h>
> #include <netinet/in_pcb.h>
> #include <netinet/tcp.h>
> -#include <netinet/tcp_var.h>
> #include <netinet/tcp_offload.h>
> #define TCPOUTFLAGS
> #include <netinet/tcp_fsm.h>
> +#include <netinet/tcp_var.h>
> #include <netinet/toecore.h>
>
> int registered_toedevs;
>
> Modified: head/sys/netinet/tcp_subr.c
> ==============================================================================
> --- head/sys/netinet/tcp_subr.c Wed Jan 27 00:24:24 2016 (r294868)
> +++ head/sys/netinet/tcp_subr.c Wed Jan 27 00:45:46 2016 (r294869)
> @@ -1468,6 +1468,7 @@ tcp_close(struct tcpcb *tp)
> #endif
> in_pcbdrop(inp);
> TCPSTAT_INC(tcps_closed);
> + TCPSTAT_DEC(tcps_states[tp->t_state]);
> KASSERT(inp->inp_socket != NULL, ("tcp_close: inp_socket NULL"));
> so = inp->inp_socket;
> soisdisconnected(so);
> @@ -2910,6 +2911,8 @@ tcp_state_change(struct tcpcb *tp, int n
> int pstate = tp->t_state;
> #endif
>
> + TCPSTAT_DEC(tcps_states[tp->t_state]);
> + TCPSTAT_INC(tcps_states[newstate]);
> tp->t_state = newstate;
> TCP_PROBE6(state__change, NULL, tp, NULL, tp, NULL, pstate);
> }
>
> Modified: head/sys/netinet/tcp_syncache.c
> ==============================================================================
> --- head/sys/netinet/tcp_syncache.c Wed Jan 27 00:24:24 2016 (r294868)
> +++ head/sys/netinet/tcp_syncache.c Wed Jan 27 00:45:46 2016 (r294869)
> @@ -351,6 +351,7 @@ syncache_insert(struct syncache *sc, str
>
> SCH_UNLOCK(sch);
>
> + TCPSTAT_INC(tcps_states[TCPS_SYN_RECEIVED]);
> TCPSTAT_INC(tcps_sc_added);
> }
>
> @@ -364,6 +365,7 @@ syncache_drop(struct syncache *sc, struc
>
> SCH_LOCK_ASSERT(sch);
>
> + TCPSTAT_DEC(tcps_states[TCPS_SYN_RECEIVED]);
> TAILQ_REMOVE(&sch->sch_bucket, sc, sc_hash);
> sch->sch_length--;
>
> @@ -992,7 +994,16 @@ syncache_expand(struct in_conninfo *inc,
> goto failed;
> }
> } else {
> - /* Pull out the entry to unlock the bucket row. */
> + /*
> + * Pull out the entry to unlock the bucket row.
> + *
> + * NOTE: We must decrease TCPS_SYN_RECEIVED count here, not
> + * tcp_state_change(). The tcpcb is not existent at this
> + * moment. A new one will be allocated via syncache_socket->
> + * sonewconn->tcp_usr_attach in TCPS_CLOSED state, then
> + * syncache_socket() will change it to TCPS_SYN_RECEIVED.
> + */
> + TCPSTAT_DEC(tcps_states[TCPS_SYN_RECEIVED]);
> TAILQ_REMOVE(&sch->sch_bucket, sc, sc_hash);
> sch->sch_length--;
> #ifdef TCP_OFFLOAD
>
> Modified: head/sys/netinet/tcp_timewait.c
> ==============================================================================
> --- head/sys/netinet/tcp_timewait.c Wed Jan 27 00:24:24 2016 (r294868)
> +++ head/sys/netinet/tcp_timewait.c Wed Jan 27 00:45:46 2016 (r294869)
> @@ -660,6 +660,7 @@ tcp_tw_2msl_stop(struct tcptw *tw, int r
>
> if (!reuse)
> uma_zfree(V_tcptw_zone, tw);
> + TCPSTAT_DEC(tcps_states[TCPS_TIME_WAIT]);
> }
>
> struct tcptw *
>
> Modified: head/sys/netinet/tcp_usrreq.c
> ==============================================================================
> --- head/sys/netinet/tcp_usrreq.c Wed Jan 27 00:24:24 2016 (r294868)
> +++ head/sys/netinet/tcp_usrreq.c Wed Jan 27 00:45:46 2016 (r294869)
> @@ -1883,6 +1883,7 @@ tcp_attach(struct socket *so)
> tp->t_state = TCPS_CLOSED;
> INP_WUNLOCK(inp);
> INP_INFO_RUNLOCK(&V_tcbinfo);
> + TCPSTAT_INC(tcps_states[TCPS_CLOSED]);
> return (0);
> }
>
>
> Modified: head/sys/netinet/tcp_var.h
> ==============================================================================
> --- head/sys/netinet/tcp_var.h Wed Jan 27 00:24:24 2016 (r294868)
> +++ head/sys/netinet/tcp_var.h Wed Jan 27 00:45:46 2016 (r294869)
> @@ -34,6 +34,7 @@
> #define _NETINET_TCP_VAR_H_
>
> #include <netinet/tcp.h>
> +#include <netinet/tcp_fsm.h>
>
> #ifdef _KERNEL
> #include <net/vnet.h>
> @@ -587,6 +588,9 @@ struct tcpstat {
> uint64_t tcps_sig_err_sigopt; /* No signature expected by socket */
> uint64_t tcps_sig_err_nosigopt; /* No signature provided by segment */
>
> + /* Running connection count. */
> + uint64_t tcps_states[TCP_NSTATES];
> +
> uint64_t _pad[12]; /* 6 UTO, 6 TBD */
> };
>
>
> Modified: head/usr.bin/systat/netstat.c
> ==============================================================================
> --- head/usr.bin/systat/netstat.c Wed Jan 27 00:24:24 2016 (r294868)
> +++ head/usr.bin/systat/netstat.c Wed Jan 27 00:45:46 2016 (r294869)
> @@ -59,10 +59,10 @@ static const char sccsid[] = "@(#)netsta
> #include <netinet/tcp.h>
> #include <netinet/tcpip.h>
> #include <netinet/tcp_seq.h>
> -#include <netinet/tcp_var.h>
> #define TCPSTATES
> #include <netinet/tcp_fsm.h>
> #include <netinet/tcp_timer.h>
> +#include <netinet/tcp_var.h>
> #include <netinet/tcp_debug.h>
> #include <netinet/udp.h>
> #include <netinet/udp_var.h>
>
--
Tomorrow Will Never Die
More information about the svn-src-head
mailing list