On Wed, 2006-08-23 at 20:38 -0700, Piet Delaney wrote:
I was right, at least for 2.6.12, when we free the
socket the timer should have list poison in them.
retransmit_timer = {
entry = {
next = 0x100100,
prev = 0x200200
},
expires = 44563,
lock = {
slock = 1,
magic = 3735899821
},
magic = 1267182958,
function = 0xc043104a <tcp_write_timer>,
data = 3884627220,
base = 0x0
},
Problem was just my looking at the tcp_sock but
having only saved the sock part.
-piet
> Hey Gang:
>
> I just re-subscribed to netdev.... Earlier today I brought up
> something I don't understand with some of the heavy weights
> but still don't feel I understand what's happening. It could
> be a kgdb cache flushing problem or some magic/land-mines
> in the kernel that I'm not familiar with.
>
> We are running a modified 2.6.12 kernel, yea I know that's
> old -- we are working on that. In the past I've expected the
> timer list to "look empty" when the sock structure is released;
> that is when the refcnt drops to zero.
>
> Shouldn't the tcp timers have LIST_POISON1 and LIST_POISON2
> in their list heads when we drop the last reference to a sk?
>
> We noticed our tcp timers have unexpected values in them
> and wondering how to explain it.
>
> Attached is a copy of a tcp_sock just prior to our freeing it;
> as see by kgdb on our 2.6.12 with tcp modified to support being
> a proxy. The structure members without sk_ prefixed to it are
> additional info that we have added to implement a TCP proxy.
>
> sk->sk_timer looks as expected with LIST_POISON in both list
> head pointers.
>
> The retransmit_timer on the other hand appears to have valid
> pointers in it, so I'm wondering if we have a timer reference
> count problem.
>
> The tcp_sock is zero'd out on allocation, so I doubt it's
> just stale pointers from a previous incarnation of a tcp_sock.
>
> The delack_timer also has absurd values in it.
>
> I'll add some debug code to try to understand this; if any
> of you have some thought on this, it might save me some time
> trying to understanding it.
>
> -piet
>
--
Piet Delaney
BlueLane Teck
W: (408) 200-5256; [EMAIL PROTECTED]
H: (408) 243-8872; [EMAIL PROTECTED]
(gdb) print second_saved_tcp_sk
$1 = {
inet = {
sk = {
__sk_common = {
skc_family = 2,
skc_state = 7 '\a',
skc_reuse = 0 '\0',
skc_bound_dev_if = 0,
skc_node = {
next = 0x0,
pprev = 0x0
},
skc_bind_node = {
next = 0x0,
pprev = 0x0
},
skc_refcnt = {
counter = 1
}
},
sk_shutdown = 3 '\003',
sk_no_check = 0 '\0',
sk_userlocks = 0 '\0',
sk_protocol = 6 '\006',
sk_type = 1,
sk_rcvbuf = 87380,
sk_lock = {
slock = {
slock = 1,
magic = 3735899821
},
owner = 0x0,
wq = {
lock = {
slock = 1,
magic = 3735899821
},
task_list = {
next = 0xe78ab54c,
prev = 0xe78ab54c
}
}
},
sk_sleep = 0x0,
sk_dst_cache = 0x0,
sk_policy = {0x0,
0x0},
sk_dst_lock = {
lock = 16777216,
magic = 3736018669
},
sk_rmem_alloc = {
counter = 0
},
sk_wmem_alloc = {
counter = 0
},
sk_omem_alloc = {
counter = 0
},
sk_receive_queue = {
next = 0xe78ab578,
prev = 0xe78ab578,
qlen = 0,
lock = {
slock = 1,
magic = 3735899821
}
},
sk_write_queue = {
next = 0xe78ab58c,
prev = 0xe78ab58c,
qlen = 0,
lock = {
slock = 1,
magic = 3735899821
}
},
sk_wmem_queued = 0,
sk_forward_alloc = 0,
sk_allocation = 208,
sk_sndbuf = 16384,
sk_route_caps = 7081,
sk_hashent = 242205,
sk_flags = 49929,
sk_lingertime = 0,
sk_backlog = {
head = 0x0,
tail = 0x0
},
sk_error_queue = {
next = 0xe78ab5c8,
prev = 0xe78ab5c8,
qlen = 0,
lock = {
slock = 1,
magic = 3735899821
}
},
sk_prot = 0xc0615fe0,
sk_prot_creator = 0xc0615fe0,
sk_callback_lock = {
lock = 16777216,
magic = 3736018669
},
sk_err = 104,
sk_err_soft = 0,
sk_ack_backlog = 0,
sk_max_ack_backlog = 8192,
sk_priority = 0,
sk_peercred = {
pid = 0,
uid = 4294967295,
gid = 4294967295
},
sk_rcvlowat = 1,
sk_rcvtimeo = 2147483647,
sk_sndtimeo = 2147483647,
sk_filter = 0x0,
sk_protinfo = 0x0,
sk_timer = {
entry = {
next = 0x100100,
prev = 0x200200
},
expires = 7243360,
lock = {
slock = 1,
magic = 3735899821
},
magic = 1267182958,
function = 0xc0431643 <tcp_keepalive_timer>,
data = 3884627220,
base = 0x0
},
sk_stamp = {
tv_sec = -1,
tv_usec = -1
},
sk_socket = 0x0,
sk_user_data = 0x0,
sk_sndmsg_page = 0x0,
sk_send_head = 0x0,
sk_sndmsg_off = 0,
sk_write_pending = 0,
sk_security = 0x0,
sk_state_change = 0xc03ad479 <sock_def_wakeup>,
sk_data_ready = 0xc03ad592 <sock_def_readable>,
sk_write_space = 0xc03bc71d <sk_stream_write_space>,
sk_error_report = 0xc03ad4f8 <sock_def_error_report>,
sk_backlog_rcv = 0xc04375f7 <tcp_v4_do_rcv>,
sk_destruct = 0xc0457e4a <inet_sock_destruct>,
peer_sock = 0xe78aba04,
socket_type = 2,
peer_sk_state = 7 '\a',
flag_tcp_done = 1 '\001',
flag_tcp_destroy = 1 '\001',
flag_write_queue_purge = 1 '\001',
flag_new_server_ack = 0 '\0',
do_rst_processing = 0 '\0',
do_srv_finack_processing = 0 '\0',
rst_processing_done = 1 '\001',
flag_tw_present = 0 '\0',
default_ttl = 64 '@',
tcp_close_processing_index = 0,
conndev = 0xc25e9000,
ha = "\000\023Fdè3", '\0' <repeats 25 times>,
l2type = 0 '\0',
l2addlen = 0 '\0',
l2header = '\0' <repeats 31 times>,
vproxy_wmem_queued_data_size = 0,
vproxy_max_ubytes = 128000,
sk_umem_alloc = 0,
sk_ubytes_alloc = 0,
num_backlogged_packet = 0,
ready_list = {
next = 0xe78ab6ec,
prev = 0xe78ab6ec
},
user_zbuf_queue = {
next = 0xe78ab6f4,
prev = 0xe78ab6f4
},
vproxy_id = 0,
listener_id = 0,
socket_fd = -1,
thrd_id = 0,
proper_close_flag = 0 '\0',
accepted_flag = 0 '\0',
close_sent_flag = 0 '\0',
close_with_reset = 0 '\0',
synq_high_water_mark = 1,
acceptq_high_water_mark = 1,
backlog_accept_queue = 0x0,
backlog_accept_queue_tail = 0x0,
sk_backlog_acceptq_len = 0,
backlog_acceptq_high_water_mark = 0,
peer_clock = 75995319,
default_protocol = 2048,
dproxy_port = 0,
sa_session_id = 18,
recv_tstamp = 0
},
daddr = 638298304,
rcv_saddr = 17541312,
dport = 20480,
num = 50607,
saddr = 17541312,
uc_ttl = -1,
cmsg_flags = 0,
opt = 0x0,
sport = 44997,
id = 23278,
tos = 0 '\0',
mc_ttl = 1 '\001',
pmtudisc = 1 '\001',
recverr = 0,
freebind = 0,
hdrincl = 0,
mc_loop = 1,
mc_index = 0,
mc_addr = 0,
mc_list = 0x0,
cork = {
flags = 0,
fragsize = 0,
opt = 0x0,
rt = 0x0,
length = 0,
addr = 0,
fl = {
oif = 0,
iif = 0,
nl_u = {
ip4_u = {
daddr = 0,
saddr = 0,
fwmark = 0,
tos = 0 '\0',
scope = 0 '\0'
},
ip6_u = {
daddr = {
in6_u = {
u6_addr8 = '\0' <repeats 15 times>,
u6_addr16 = {0,
0,
0,
0,
0,
0,
0,
0},
u6_addr32 = {0,
0,
0,
0}
}
},
saddr = {
in6_u = {
u6_addr8 = '\0' <repeats 15 times>,
u6_addr16 = {0,
0,
0,
0,
0,
0,
0,
0},
u6_addr32 = {0,
0,
0,
0}
}
},
flowlabel = 0
},
dn_u = {
daddr = 0,
saddr = 0,
fwmark = 0,
scope = 0 '\0'
}
},
proto = 0 '\0',
flags = 0 '\0',
uli_u = {
ports = {
sport = 0,
dport = 0
},
icmpt = {
type = 0 '\0',
code = 0 '\0'
},
dnports = {
sport = 0,
dport = 0,
objnum = 0 '\0',
objnamel = 0 '\0',
objname = '\0' <repeats 15 times>
},
spi = 0
}
}
}
},
tcp_header_len = 32,
pred_flags = 0,
rcv_nxt = 4215893076,
snd_nxt = 3915183010,
snd_una = 3915183009,
snd_sml = 3915183010,
rcv_tstamp = 43361,
lsndtime = 43361,
bind_hash = 0x0,
ack = {
pending = 0 '\0',
quick = 0 '\0',
pingpong = 0 '\0',
blocked = 0 '\0',
ato = 0,
timeout = 0,
lrcvtime = 0,
last_seg_size = 0,
rcv_mss = 536
},
ucopy = {
prequeue = {
next = 0xe78ab7fc,
prev = 0xe78ab7fc,
qlen = 0,
lock = {
slock = 1,
magic = 3735899821
}
},
task = 0x0,
iov = 0x0,
memory = 0,
len = 0
},
snd_wl1 = 4215893076,
snd_wnd = 5792,
max_window = 5792,
pmtu_cookie = 1500,
mss_cache = 2896,
mss_cache_std = 1448,
ext_header_len = 0,
ca_state = 0 '\0',
retransmits = 0 '\0',
advmss = 1448,
window_clamp = 0,
rcv_ssthresh = 0,
frto_highmark = 0,
reordering = 3 '\003',
frto_counter = 0 '\0',
adv_cong = 0 '\0',
defer_accept = 0 '\0',
srtt = 8,
mdev = 2,
mdev_max = 200,
rttvar = 200,
rtt_seq = 3915183009,
rto = 201,
packets_out = 1,
left_out = 0,
retrans_out = 0,
backoff = 0 '\0',
nonagle = 1 '\001',
keepalive_probes = 0 '\0',
probes_out = 0 '\0',
rx_opt = {
ts_recent_stamp = 1156574913,
ts_recent = 75869935,
rcv_tsval = 75870939,
rcv_tsecr = 0,
saw_tstamp = 1,
tstamp_ok = 1,
dsack = 0,
wscale_ok = 1,
sack_ok = 3,
snd_wscale = 2,
rcv_wscale = 2,
eff_sacks = 0 '\0',
num_sacks = 0 '\0',
user_mss = 0,
mss_clamp = 1460
},
snd_ssthresh = 2147483647,
snd_cwnd = 16,
snd_cwnd_cnt = 0,
snd_cwnd_clamp = 65535,
snd_cwnd_used = 0,
snd_cwnd_stamp = 43361,
timeout = 44563,
retransmit_timer = {
entry = {
next = 0x100100,
prev = 0x200200
},
expires = 44563,
lock = {
slock = 1,
magic = 3735899821
},
magic = 1267182958,
function = 0xc043104a <tcp_write_timer>,
data = 3884627220,
base = 0x0
},
delack_timer = {
entry = {
next = 0x0,
prev = 0x0
},
expires = 0,
lock = {
slock = 1,
magic = 3735899821
},
magic = 1267182958,
function = 0xc0430a34 <tcp_delack_timer>,
data = 3884627220,
base = 0x0
},
out_of_order_queue = {
next = 0xe78ab8ec,
prev = 0xe78ab8ec,
qlen = 0,
lock = {
slock = 1,
magic = 3735899821
}
},
af_specific = 0xc0615fa0,
rcv_wnd = 5840,
rcv_wup = 4215893076,
write_seq = 3915183010,
pushed_seq = 3915182990,
copied_seq = 4215893076,
duplicate_sack = {{
start_seq = 0,
end_seq = 0
}},
selective_acks = {{
start_seq = 0,
end_seq = 0
},
{
start_seq = 0,
end_seq = 0
},
{
start_seq = 0,
end_seq = 0
},
{
start_seq = 0,
end_seq = 0
}},
syn_retries = 0 '\0',
ecn_flags = 0 '\0',
prior_ssthresh = 0,
lost_out = 0,
sacked_out = 0,
fackets_out = 0,
high_seq = 0,
retrans_stamp = 0,
undo_marker = 0,
undo_retrans = 0,
urg_seq = 0,
urg_data = 0,
pending = 0 '\0',
urg_mode = 0 '\0',
snd_up = 0,
total_retrans = 0,
syn_wait_lock = {
lock = 0,
magic = 0
},
listen_opt = 0x0,
accept_queue = 0x0,
accept_queue_tail = 0x0,
keepalive_time = 0,
keepalive_intvl = 0,
linger2 = 0,
last_synq_overflow = 0,
rcv_rtt_est = {
rtt = 0,
seq = 0,
time = 0
},
rcvq_space = {
space = 5840,
seq = 0,
time = 0
},
westwood = {
bw_ns_est = 0,
bw_est = 0,
rtt_win_sx = 43360,
bk = 0,
snd_una = 3915182990,
cumul_ack = 0,
accounted = 0,
rtt = 20000,
rtt_min = 20000
},
vegas = {
beg_snd_nxt = 0,
beg_snd_una = 0,
beg_snd_cwnd = 0,
doing_vegas_now = 0 '\0',
cntRTT = 0,
minRTT = 0,
baseRTT = 0
},
bictcp = {
cnt = 0,
last_max_cwnd = 0,
last_cwnd = 0,
last_stamp = 0
}
}
(gdb) print second_saved_peer_tcp_sk
$2 = {
inet = {
sk = {
__sk_common = {
skc_family = 2,
skc_state = 7 '\a',
skc_reuse = 0 '\0',
skc_bound_dev_if = 0,
skc_node = {
next = 0x0,
pprev = 0x0
},
skc_bind_node = {
next = 0x0,
pprev = 0x0
},
skc_refcnt = {
counter = 1
}
},
sk_shutdown = 3 '\003',
sk_no_check = 0 '\0',
sk_userlocks = 0 '\0',
sk_protocol = 6 '\006',
sk_type = 1,
sk_rcvbuf = 133792,
sk_lock = {
slock = {
slock = 1,
magic = 3735899821
},
owner = 0x0,
wq = {
lock = {
slock = 1,
magic = 3735899821
},
task_list = {
next = 0xe78aba3c,
prev = 0xe78aba3c
}
}
},
sk_sleep = 0x0,
sk_dst_cache = 0x0,
sk_policy = {0x0,
0x0},
sk_dst_lock = {
lock = 16777216,
magic = 3736018669
},
sk_rmem_alloc = {
counter = 0
},
sk_wmem_alloc = {
counter = 0
},
sk_omem_alloc = {
counter = 0
},
sk_receive_queue = {
next = 0xe78aba68,
prev = 0xe78aba68,
qlen = 0,
lock = {
slock = 1,
magic = 3735899821
}
},
sk_write_queue = {
next = 0xe78aba7c,
prev = 0xe78aba7c,
qlen = 0,
lock = {
slock = 1,
magic = 3735899821
}
},
sk_wmem_queued = 0,
sk_forward_alloc = 0,
sk_allocation = 208,
sk_sndbuf = 16384,
sk_route_caps = 7081,
sk_hashent = 231453,
sk_flags = 33547,
sk_lingertime = 0,
sk_backlog = {
head = 0x0,
tail = 0x0
},
sk_error_queue = {
next = 0xe78abab8,
prev = 0xe78abab8,
qlen = 0,
lock = {
slock = 1,
magic = 3735899821
}
},
sk_prot = 0xc0615fe0,
sk_prot_creator = 0xc0615fe0,
sk_callback_lock = {
lock = 16777216,
magic = 3736018669
},
sk_err = 32,
sk_err_soft = 0,
sk_ack_backlog = 0,
sk_max_ack_backlog = 8192,
sk_priority = 0,
sk_peercred = {
pid = 0,
uid = 4294967295,
gid = 4294967295
},
sk_rcvlowat = 1,
sk_rcvtimeo = 2147483647,
sk_sndtimeo = 2147483647,
sk_filter = 0x0,
sk_protinfo = 0x0,
sk_timer = {
entry = {
next = 0x100100,
prev = 0x200200
},
expires = 7243360,
lock = {
slock = 1,
magic = 3735899821
},
magic = 1267182958,
function = 0xc0431643 <tcp_keepalive_timer>,
data = 3884628484,
base = 0x0
},
sk_stamp = {
tv_sec = -1,
tv_usec = -1
},
sk_socket = 0x0,
sk_user_data = 0x0,
sk_sndmsg_page = 0x0,
sk_send_head = 0x0,
sk_sndmsg_off = 0,
sk_write_pending = 0,
sk_security = 0x0,
sk_state_change = 0xc04c1339 <sa_tcp_state_change>,
sk_data_ready = 0xc04c1359 <sa_tcp_data_ready>,
sk_write_space = 0xc03bc71d <sk_stream_write_space>,
sk_error_report = 0xc04c133e <sa_tcp_error_report>,
sk_backlog_rcv = 0xc04375f7 <tcp_v4_do_rcv>,
sk_destruct = 0xc0457e4a <inet_sock_destruct>,
peer_sock = 0xe78ab514,
socket_type = 1,
peer_sk_state = 7 '\a',
flag_tcp_done = 1 '\001',
flag_tcp_destroy = 1 '\001',
flag_write_queue_purge = 1 '\001',
flag_new_server_ack = 0 '\0',
do_rst_processing = 0 '\0',
do_srv_finack_processing = 0 '\0',
rst_processing_done = 1 '\001',
flag_tw_present = 0 '\0',
default_ttl = 64 '@',
tcp_close_processing_index = 0,
conndev = 0xc25ea000,
ha = "\000\220û\001¦N", '\0' <repeats 25 times>,
l2type = 0 '\0',
l2addlen = 0 '\0',
l2header = '\0' <repeats 31 times>,
vproxy_wmem_queued_data_size = 0,
vproxy_max_ubytes = 128000,
sk_umem_alloc = 0,
sk_ubytes_alloc = 0,
num_backlogged_packet = 0,
ready_list = {
next = 0xe78abbdc,
prev = 0xe78abbdc
},
user_zbuf_queue = {
next = 0xe78abbe4,
prev = 0xe78abbe4
},
vproxy_id = 3,
listener_id = 1,
socket_fd = 33,
thrd_id = 1,
proper_close_flag = 1 '\001',
accepted_flag = 1 '\001',
close_sent_flag = 1 '\001',
close_with_reset = 0 '\0',
synq_high_water_mark = 1,
acceptq_high_water_mark = 1,
backlog_accept_queue = 0x0,
backlog_accept_queue_tail = 0x0,
sk_backlog_acceptq_len = 0,
backlog_acceptq_high_water_mark = 0,
peer_clock = 75870939,
default_protocol = 2048,
dproxy_port = 0,
sa_session_id = 18,
recv_tstamp = 0
},
daddr = 17541312,
rcv_saddr = 638298304,
dport = 44997,
num = 80,
saddr = 638298304,
uc_ttl = -1,
cmsg_flags = 0,
opt = 0x0,
sport = 20480,
id = 50484,
tos = 0 '\0',
mc_ttl = 1 '\001',
pmtudisc = 1 '\001',
recverr = 0,
freebind = 0,
hdrincl = 0,
mc_loop = 1,
mc_index = 0,
mc_addr = 0,
mc_list = 0x0,
cork = {
flags = 0,
fragsize = 0,
opt = 0x0,
rt = 0x0,
length = 0,
addr = 0,
fl = {
oif = 0,
iif = 0,
nl_u = {
ip4_u = {
daddr = 0,
saddr = 0,
fwmark = 0,
tos = 0 '\0',
scope = 0 '\0'
},
ip6_u = {
daddr = {
in6_u = {
u6_addr8 = '\0' <repeats 15 times>,
u6_addr16 = {0,
0,
0,
0,
0,
0,
0,
0},
u6_addr32 = {0,
0,
0,
0}
}
},
saddr = {
in6_u = {
u6_addr8 = '\0' <repeats 15 times>,
u6_addr16 = {0,
0,
0,
0,
0,
0,
0,
0},
u6_addr32 = {0,
0,
0,
0}
}
},
flowlabel = 0
},
dn_u = {
daddr = 0,
saddr = 0,
fwmark = 0,
scope = 0 '\0'
}
},
proto = 0 '\0',
flags = 0 '\0',
uli_u = {
ports = {
sport = 0,
dport = 0
},
icmpt = {
type = 0 '\0',
code = 0 '\0'
},
dnports = {
sport = 0,
dport = 0,
objnum = 0 '\0',
objnamel = 0 '\0',
objname = '\0' <repeats 15 times>
},
spi = 0
}
}
}
},
tcp_header_len = 32,
pred_flags = 3020230784,
rcv_nxt = 3915183010,
snd_nxt = 4215893076,
snd_una = 4215893076,
snd_sml = 4215893076,
rcv_tstamp = 44362,
lsndtime = 43360,
bind_hash = 0x0,
ack = {
pending = 0 '\0',
quick = 1 '\001',
pingpong = 1 '\001',
blocked = 0 '\0',
ato = 40,
timeout = 44402,
lrcvtime = 43360,
last_seg_size = 0,
rcv_mss = 536
},
ucopy = {
prequeue = {
next = 0xe78abcec,
prev = 0xe78abcec,
qlen = 0,
lock = {
slock = 1,
magic = 3735899821
}
},
task = 0x0,
iov = 0x0,
memory = 0,
len = 0
},
snd_wl1 = 3915183009,
snd_wnd = 5840,
max_window = 5840,
pmtu_cookie = 1500,
mss_cache = 1448,
mss_cache_std = 1448,
ext_header_len = 0,
ca_state = 0 '\0',
retransmits = 0 '\0',
advmss = 1448,
window_clamp = 98896,
rcv_ssthresh = 2920,
frto_highmark = 0,
reordering = 3 '\003',
frto_counter = 0 '\0',
adv_cong = 0 '\0',
defer_accept = 0 '\0',
srtt = 0,
mdev = 3000,
mdev_max = 0,
rttvar = 0,
rtt_seq = 0,
rto = 3000,
packets_out = 0,
left_out = 0,
retrans_out = 0,
backoff = 0 '\0',
nonagle = 1 '\001',
keepalive_probes = 0 '\0',
probes_out = 0 '\0',
rx_opt = {
ts_recent_stamp = 1156574914,
ts_recent = 75995319,
rcv_tsval = 75995319,
rcv_tsecr = 75869935,
saw_tstamp = 1,
tstamp_ok = 1,
dsack = 0,
wscale_ok = 1,
sack_ok = 3,
snd_wscale = 2,
rcv_wscale = 2,
eff_sacks = 0 '\0',
num_sacks = 0 '\0',
user_mss = 0,
mss_clamp = 1460
},
snd_ssthresh = 2147483647,
snd_cwnd = 2,
snd_cwnd_cnt = 0,
snd_cwnd_clamp = 65535,
snd_cwnd_used = 0,
snd_cwnd_stamp = 43360,
timeout = 0,
retransmit_timer = {
entry = {
next = 0x0,
prev = 0x0
},
expires = 0,
lock = {
slock = 1,
magic = 3735899821
},
magic = 1267182958,
function = 0xc043104a <tcp_write_timer>,
data = 3884628484,
base = 0x0
},
delack_timer = {
entry = {
next = 0x100100,
prev = 0x200200
},
expires = 44402,
lock = {
slock = 1,
magic = 3735899821
},
magic = 1267182958,
function = 0xc0430a34 <tcp_delack_timer>,
data = 3884628484,
base = 0x0
},
out_of_order_queue = {
next = 0xe78abddc,
prev = 0xe78abddc,
qlen = 0,
lock = {
slock = 1,
magic = 3735899821
}
},
af_specific = 0xc0615fa0,
rcv_wnd = 2920,
rcv_wup = 3915183010,
write_seq = 4215893076,
pushed_seq = 4215893076,
copied_seq = 3915183010,
duplicate_sack = {{
start_seq = 0,
end_seq = 0
}},
selective_acks = {{
start_seq = 0,
end_seq = 0
},
{
start_seq = 0,
end_seq = 0
},
{
start_seq = 0,
end_seq = 0
},
{
start_seq = 0,
end_seq = 0
}},
syn_retries = 0 '\0',
ecn_flags = 0 '\0',
prior_ssthresh = 0,
lost_out = 0,
sacked_out = 0,
fackets_out = 0,
high_seq = 0,
retrans_stamp = 0,
undo_marker = 0,
undo_retrans = 0,
urg_seq = 0,
urg_data = 0,
pending = 0 '\0',
urg_mode = 0 '\0',
snd_up = 0,
total_retrans = 0,
syn_wait_lock = {
lock = 0,
magic = 0
},
listen_opt = 0x0,
accept_queue = 0x0,
accept_queue_tail = 0x0,
keepalive_time = 0,
keepalive_intvl = 0,
linger2 = 0,
last_synq_overflow = 0,
rcv_rtt_est = {
rtt = 0,
seq = 3915185929,
time = 43360
},
rcvq_space = {
space = 2920,
seq = 0,
time = 0
},
westwood = {
bw_ns_est = 0,
bw_est = 0,
rtt_win_sx = 43360,
bk = 0,
snd_una = 4215893076,
cumul_ack = 0,
accounted = 0,
rtt = 20000,
rtt_min = 20000
},
vegas = {
beg_snd_nxt = 0,
beg_snd_una = 0,
beg_snd_cwnd = 0,
doing_vegas_now = 0 '\0',
cntRTT = 0,
minRTT = 0,
baseRTT = 0
},
bictcp = {
cnt = 0,
last_max_cwnd = 0,
last_cwnd = 0,
last_stamp = 0
}
}
(gdb) where
#0 atomic_dec_and_test (v=0x6b6b6b83) at atomic.h:135
#1 0xc04a915b in sock_put (sk=0x6b6b6b6b, file=0xc058d3cc
"net/ipv4/../../../secureall-kernel/vproxy/sa_tcp_input.c", line=1644) at
sock.h:976
#2 0xc04acdfb in sa_tcp_v4_rcv (skb=0xe75387dc) at
net/ipv4/../../../secureall-kernel/vproxy/sa_tcp_input.c:1644
#3 0xc0431e98 in vproxy_tcp_rcv (sk=0x0, skb=0x6b6b6b83, vi=0xe78ab000) at
vproxy.h:320
#4 0xc0437777 in tcp_v4_rcv (skb=0xe75387dc) at net/ipv4/tcp_ipv4.c:1775
#5 0xc0403af1 in ip_local_deliver_finish (skb=0xe75387dc) at
net/ipv4/ip_input.c:242
#6 0xc0404194 in vproxy_ip_local_deliver_finish (skb=0x6b6b6b83) at
net/ipv4/ip_input.c:441
#7 0xc049dd49 in ip_handler (skb=0xe75387dc) at
net/ipv4/../../../secureall-kernel/vproxy/vproxy.c:803
#8 0xc049e2a4 in bridge_handler (skb=0xe75387dc, outdev=0x6b6b6b83) at
net/ipv4/../../../secureall-kernel/vproxy/vproxy.c:1081
#9 0xc03c4678 in vproxy_bridge_handler (skb=0xe75387dc, outdev=0xc25ea000,
vi=0xc264389c) at vproxy.h:271
#10 0xc03c8d8c in netif_receive_skb (skb=0xe75387dc) at net/core/dev.c:1750
#11 0xc029412f in e1000_clean_rx_irq (adapter=0xc25e9240, work_done=0xe7a0bf20,
work_to_do=64) at drivers/net/e1000/e1000_main.c:2947
#12 0xc02935de in e1000_clean (netdev=0xc25e9000, budget=0xe7a0bf5c) at
drivers/net/e1000/e1000_main.c:2674
#13 0xc03c939b in net_rx_action (h=0xc068a418) at net/core/dev.c:1865
#14 0xc0124a8c in __do_softirq () at kernel/softirq.c:95
#15 0xc0124b2d in do_softirq () at kernel/softirq.c:129
#16 0xc0124be4 in irq_exit () at kernel/softirq.c:169
#17 0xc0105cfe in do_IRQ (regs=0xe7a0bfbc) at arch/i386/kernel/irq.c:107
#18 0xc0103faa in common_interrupt () at atomic.h:216
#19 0xc05aad99 in end_of_stack_stop_unwind_function ()
#20 0xc05aad99 in end_of_stack_stop_unwind_function ()
(gdb)