> On 29 Apr 2015, at 17:21 , Bjoern A. Zeeb <b...@freebsd.org> wrote: > > >> On 29 Apr 2015, at 17:19 , George V. Neville-Neil <g...@freebsd.org> wrote: >> >> Author: gnn >> Date: Wed Apr 29 17:19:55 2015 >> New Revision: 282240 >> URL: https://svnweb.freebsd.org/changeset/base/282240 >> >> Log: >> Brief demo script showing the various values that can be read via >> the new SIFTR statically defined tracepoint (SDT). >> >> Differential Revision: https://reviews.freebsd.org/D2387 >> Reviewed by: bz, markj >> > > That’s not the latest revision; sorry.
(see, no dot at end of comment) Also you forgot to svn add share/dtrace/siftr I think? >> Modified: >> head/cddl/lib/libdtrace/tcp.d >> head/sys/netinet/in_kdtrace.c >> head/sys/netinet/in_kdtrace.h >> head/sys/netinet/siftr.c >> >> Modified: head/cddl/lib/libdtrace/tcp.d >> ============================================================================== >> --- 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 = s; >> }; >> + >> +/* >> + * Convert a SIFTR direction value to a string >> + */ >> +#pragma D binding "1.12.1" SIFTR_IN >> +inline int SIFTR_IN = 1; >> +#pragma D binding "1.12.1" SIFTR_OUT >> +inline int SIFTR_OUT = 2; >> + >> +/* SIFTR direction strings. */ >> +#pragma D binding "1.12.1" siftr_dir_string >> +inline string siftr_dir_string[uint8_t direction] = >> + direction == SIFTR_IN ? "in" : >> + direction == 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 = p == NULL ? 0 : p->direction; >> + ipver = p == NULL ? 0 : p->ipver; >> + hash = p == NULL ? 0 : p->hash; >> + tcp_localport = p == NULL ? 0 : ntohs(p->tcp_localport); >> + tcp_foreignport = p == NULL ? 0 : ntohs(p->tcp_foreignport); >> + snd_cwnd = p == NULL ? 0 : p->snd_cwnd; >> + snd_wnd = p == NULL ? 0 : p->snd_wnd; >> + rcv_wnd = p == NULL ? 0 : p->rcv_wnd; >> + snd_bwnd = p == NULL ? 0 : p->snd_bwnd; >> + snd_ssthresh = p == NULL ? 0 : p->snd_ssthresh; >> + conn_state = p == NULL ? 0 : p->conn_state; >> + max_seg_size = p == NULL ? 0 : p->max_seg_size; >> + smoothed_rtt = p == NULL ? 0 : p->smoothed_rtt; >> + sack_enabled = p == NULL ? 0 : p->sack_enabled; >> + snd_scale = p == NULL ? 0 : p->snd_scale; >> + rcv_scale = p == NULL ? 0 : p->rcv_scale; >> + flags = p == NULL ? 0 : p->flags; >> + rxt_length = p == NULL ? 0 : p->rxt_length; >> + snd_buf_hiwater = p == NULL ? 0 : p->snd_buf_hiwater; >> + snd_buf_cc = p == NULL ? 0 : p->snd_buf_cc; >> + rcv_buf_hiwater = p == NULL ? 0 : p->rcv_buf_hiwater; >> + rcv_buf_cc = p == NULL ? 0 : p->rcv_buf_cc; >> + sent_inflight_bytes = p == NULL ? 0 : p->sent_inflight_bytes; >> + t_segqlen = p == NULL ? 0 : p->t_segqlen; >> + flowid = p == NULL ? 0 : p->flowid; >> + flowtype = p == NULL ? 0 : p->flowtype; >> +}; >> >> Modified: head/sys/netinet/in_kdtrace.c >> ============================================================================== >> --- 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 *"); >> >> +SDT_PROBE_DEFINE1_XLATE(tcp, , , siftr, >> + "struct pkt_node *", "siftrinfo_t *"); >> + >> SDT_PROBE_DEFINE6_XLATE(tcp, , , state__change, >> "void *", "void *", >> "struct tcpcb *", "csinfo_t *", >> >> Modified: head/sys/netinet/in_kdtrace.h >> ============================================================================== >> --- 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); >> >> SDT_PROBE_DECLARE(udp, , , receive); >> >> Modified: head/sys/netinet/siftr.c >> ============================================================================== >> --- 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> >> >> #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 >> >> + TCP_PROBE1(siftr, pkt_node); >> alq_post_flags(siftr_alq, log_buf, 0); >> } >> >> > > — > 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." > > — 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." _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"