Date: Wed, 29 Apr 2015 17:21:27 +0000 From: "Bjoern A. Zeeb" <bz@FreeBSD.org> To: "George V. Neville-Neil" <gnn@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r282240 - in head: cddl/lib/libdtrace sys/netinet Message-ID: <3C5C1638-4FA8-4E59-8CDF-1B102AE500C8@FreeBSD.org> In-Reply-To: <201504291719.t3THJtIM020724@svn.freebsd.org> References: <201504291719.t3THJtIM020724@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> On 29 Apr 2015, at 17:19 , George V. Neville-Neil <gnn@FreeBSD.org> = wrote: >=20 > Author: gnn > Date: Wed Apr 29 17:19:55 2015 > New Revision: 282240 > URL: https://svnweb.freebsd.org/changeset/base/282240 >=20 > Log: > Brief demo script showing the various values that can be read via > the new SIFTR statically defined tracepoint (SDT). >=20 > Differential Revision: https://reviews.freebsd.org/D2387 > Reviewed by: bz, markj >=20 That=E2=80=99s not the latest revision; sorry. > Modified: > head/cddl/lib/libdtrace/tcp.d > head/sys/netinet/in_kdtrace.c > head/sys/netinet/in_kdtrace.h > head/sys/netinet/siftr.c >=20 > Modified: head/cddl/lib/libdtrace/tcp.d > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/cddl/lib/libdtrace/tcp.d Wed Apr 29 17:18:41 2015 = (r282239) > +++ head/cddl/lib/libdtrace/tcp.d Wed Apr 29 17:19:55 2015 = (r282240) > @@ -241,3 +241,78 @@ translator tcpinfoh_t < struct tcphdr *p > translator tcplsinfo_t < int s > { > tcps_state =3D s; > }; > + > +/* > + * Convert a SIFTR direction value to a string > + */ > +#pragma D binding "1.12.1" SIFTR_IN > +inline int SIFTR_IN =3D 1; > +#pragma D binding "1.12.1" SIFTR_OUT > +inline int SIFTR_OUT =3D 2; > + > +/* SIFTR direction strings. */ > +#pragma D binding "1.12.1" siftr_dir_string > +inline string siftr_dir_string[uint8_t direction] =3D > + direction =3D=3D SIFTR_IN ? "in" : > + direction =3D=3D SIFTR_OUT ? "out" : > + "unknown" ; > + > +typedef struct siftrinfo { > + struct timeval tval; > + uint8_t direction; > + uint8_t ipver; > + uint32_t hash; > + uint16_t tcp_localport; > + uint16_t tcp_foreignport; > + uint64_t snd_cwnd; > + u_long snd_wnd; > + u_long rcv_wnd; > + u_long snd_bwnd; > + u_long snd_ssthresh; > + int conn_state; > + u_int max_seg_size; > + int smoothed_rtt; > + u_char sack_enabled; > + u_char snd_scale; > + u_char rcv_scale; > + u_int flags; > + int rxt_length; > + u_int snd_buf_hiwater; > + u_int snd_buf_cc; > + u_int rcv_buf_hiwater; > + u_int rcv_buf_cc; > + u_int sent_inflight_bytes; > + int t_segqlen; > + u_int flowid; > + u_int flowtype; > +} siftrinfo_t; > + > +#pragma D binding "1.12.1" translator > +translator siftrinfo_t < struct pkt_node *p > { > + direction =3D p =3D=3D NULL ? 0 : p->direction; > + ipver =3D p =3D=3D NULL ? 0 : p->ipver; > + hash =3D p =3D=3D NULL ? 0 : p->hash; > + tcp_localport =3D p =3D=3D NULL ? 0 : = ntohs(p->tcp_localport); > + tcp_foreignport =3D p =3D=3D NULL ? 0 : = ntohs(p->tcp_foreignport); > + snd_cwnd =3D p =3D=3D NULL ? 0 : p->snd_cwnd; > + snd_wnd =3D p =3D=3D NULL ? 0 : p->snd_wnd; > + rcv_wnd =3D p =3D=3D NULL ? 0 : p->rcv_wnd; > + snd_bwnd =3D p =3D=3D NULL ? 0 : p->snd_bwnd; > + snd_ssthresh =3D p =3D=3D NULL ? 0 : = p->snd_ssthresh; > + conn_state =3D p =3D=3D NULL ? 0 : p->conn_state; > + max_seg_size =3D p =3D=3D NULL ? 0 : = p->max_seg_size; > + smoothed_rtt =3D p =3D=3D NULL ? 0 : = p->smoothed_rtt; > + sack_enabled =3D p =3D=3D NULL ? 0 : = p->sack_enabled; > + snd_scale =3D p =3D=3D NULL ? 0 : p->snd_scale; > + rcv_scale =3D p =3D=3D NULL ? 0 : p->rcv_scale; > + flags =3D p =3D=3D NULL ? 0 : p->flags; > + rxt_length =3D p =3D=3D NULL ? 0 : p->rxt_length; > + snd_buf_hiwater =3D p =3D=3D NULL ? 0 : p->snd_buf_hiwater; > + snd_buf_cc =3D p =3D=3D NULL ? 0 : p->snd_buf_cc; > + rcv_buf_hiwater =3D p =3D=3D NULL ? 0 : p->rcv_buf_hiwater; > + rcv_buf_cc =3D p =3D=3D NULL ? 0 : p->rcv_buf_cc; > + sent_inflight_bytes =3D p =3D=3D NULL ? 0 : = p->sent_inflight_bytes; > + t_segqlen =3D p =3D=3D NULL ? 0 : p->t_segqlen; > + flowid =3D p =3D=3D NULL ? 0 : p->flowid; > + flowtype =3D p =3D=3D NULL ? 0 : p->flowtype; > +}; >=20 > Modified: head/sys/netinet/in_kdtrace.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/netinet/in_kdtrace.c Wed Apr 29 17:18:41 2015 = (r282239) > +++ head/sys/netinet/in_kdtrace.c Wed Apr 29 17:19:55 2015 = (r282240) > @@ -102,6 +102,9 @@ SDT_PROBE_DEFINE5_XLATE(tcp, , , send, > "struct tcpcb *", "tcpsinfo_t *" , > "struct tcphdr *", "tcpinfo_t *"); >=20 > +SDT_PROBE_DEFINE1_XLATE(tcp, , , siftr, > + "struct pkt_node *", "siftrinfo_t *"); > + > SDT_PROBE_DEFINE6_XLATE(tcp, , , state__change, > "void *", "void *", > "struct tcpcb *", "csinfo_t *", >=20 > Modified: head/sys/netinet/in_kdtrace.h > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/netinet/in_kdtrace.h Wed Apr 29 17:18:41 2015 = (r282239) > +++ head/sys/netinet/in_kdtrace.h Wed Apr 29 17:19:55 2015 = (r282240) > @@ -32,6 +32,8 @@ > SDT_PROBE6(ip, , , probe, arg0, arg1, arg2, arg3, arg4, arg5) > #define UDP_PROBE(probe, arg0, arg1, arg2, arg3, arg4) = \ > SDT_PROBE5(udp, , , probe, arg0, arg1, arg2, arg3, arg4) > +#define TCP_PROBE1(probe, arg0) \ > + SDT_PROBE1(tcp, , , probe, arg0) > #define TCP_PROBE5(probe, arg0, arg1, arg2, arg3, arg4) = \ > SDT_PROBE5(tcp, , , probe, arg0, arg1, arg2, arg3, arg4) > #define TCP_PROBE6(probe, arg0, arg1, arg2, arg3, arg4, arg5) = \ > @@ -51,6 +53,7 @@ SDT_PROBE_DECLARE(tcp, , , connect__refu > SDT_PROBE_DECLARE(tcp, , , connect__request); > SDT_PROBE_DECLARE(tcp, , , receive); > SDT_PROBE_DECLARE(tcp, , , send); > +SDT_PROBE_DECLARE(tcp, , , siftr); > SDT_PROBE_DECLARE(tcp, , , state__change); >=20 > SDT_PROBE_DECLARE(udp, , , receive); >=20 > Modified: head/sys/netinet/siftr.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/netinet/siftr.c Wed Apr 29 17:18:41 2015 = (r282239) > +++ head/sys/netinet/siftr.c Wed Apr 29 17:19:55 2015 = (r282240) > @@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$"); > #include <sys/pcpu.h> > #include <sys/proc.h> > #include <sys/sbuf.h> > +#include <sys/sdt.h> > #include <sys/smp.h> > #include <sys/socket.h> > #include <sys/socketvar.h> > @@ -86,6 +87,7 @@ __FBSDID("$FreeBSD$"); > #include <net/pfil.h> >=20 > #include <netinet/in.h> > +#include <netinet/in_kdtrace.h> > #include <netinet/in_pcb.h> > #include <netinet/in_systm.h> > #include <netinet/in_var.h> > @@ -547,6 +549,7 @@ siftr_process_pkt(struct pkt_node * pkt_ > } > #endif >=20 > + TCP_PROBE1(siftr, pkt_node); > alq_post_flags(siftr_alq, log_buf, 0); > } >=20 >=20 =E2=80=94=20 Bjoern A. Zeeb Charles Haddon Spurgeon: "Friendship is one of the sweetest joys of life. Many might have failed beneath the bitterness of their trial had they not found a friend."
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3C5C1638-4FA8-4E59-8CDF-1B102AE500C8>