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) 

Reply via email to