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