Hey everyone- With this dtrace script; #!/usr/sbin/dtrace -qs #pragma D option aggsize=512k #pragma D option bufsize=512k fbt::tcp_conn_request:entry { this->connp = (conn_t *)arg0; this->tcpp = (tcp_t *)this->connp->conn_tcp; printf("tcp q: %d max: %d\n", this->tcpp->tcp_conn_req_cnt_q, this->tcpp->tcp_conn_req_max ); } I get this error upon incoming tcp connection; dtrace: error on enabled probe ID 1 (ID 36240: fbt:ip:tcp_conn_request:entry): invalid address (0x0) in action #3 at DIF offset 12 Source indicates this... http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/inet/tcp/tcp.c 5275 tcp_conn_request(void *arg, mblk_t *mp, void *arg2) 5276 { ... 5288 conn_t *connp = (conn_t *)arg; 5289 tcp_t *tcp = connp->conn_tcp; ... 5300 if (tcp->tcp_conn_req_cnt_q >= tcp->tcp_conn_req_max) { ... Anyone have an idea why this error shows up? Thanx -Paul -- This message posted from opensolaris.org
Hey Paul - Add this predicate; / arg0 != (conn_t *)0 / Talk soon... /jim Paul Mininni wrote:> Hey everyone- > With this dtrace script; > > #!/usr/sbin/dtrace -qs > > #pragma D option aggsize=512k > #pragma D option bufsize=512k > > fbt::tcp_conn_request:entry > { > this->connp = (conn_t *)arg0; > this->tcpp = (tcp_t *)this->connp->conn_tcp; > printf("tcp q: %d max: %d\n", this->tcpp->tcp_conn_req_cnt_q, this->tcpp->tcp_conn_req_max ); > } > > I get this error upon incoming tcp connection; > > dtrace: error on enabled probe ID 1 (ID 36240: fbt:ip:tcp_conn_request:entry): invalid address (0x0) in action #3 at DIF offset 12 > > Source indicates this... > http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/inet/tcp/tcp.c > 5275 tcp_conn_request(void *arg, mblk_t *mp, void *arg2) > 5276 { > ... > 5288 conn_t *connp = (conn_t *)arg; > 5289 tcp_t *tcp = connp->conn_tcp; > ... > 5300 if (tcp->tcp_conn_req_cnt_q >= tcp->tcp_conn_req_max) { > ... > > Anyone have an idea why this error shows up? > Thanx > -Paul >
Hey Jim- If I change the script to this... fbt::tcp_conn_request:entry { this->connp = (conn_t *)arg0; @c[this->connp] = count(); this->tcpp = (tcp_t *)this->connp->conn_tcp; @t[this->tcpp] = count(); } The output shows this->tcpp are all 0. This doesn''t seem correct. 6597828155008 3 <--- @c 0 3 <--- at t -Paul -- This message posted from opensolaris.org