cvs commit: src/sys/netinet in_pcb.c tcp_subr.c tcp_timer.c tcp_var.h

Gleb Smirnoff glebius at FreeBSD.org
Wed Sep 6 06:56:35 PDT 2006


glebius     2006-09-06 13:56:35 UTC

  FreeBSD src repository

  Modified files:
    sys/netinet          in_pcb.c tcp_subr.c tcp_timer.c tcp_var.h 
  Log:
  o Backout rev. 1.125 of in_pcb.c. It appeared to behave extremely
    bad under high load. For example with 40k sockets and 25k tcptw
    entries, connect() syscall can run for seconds. Debugging showed
    that it iterates the cycle millions times and purges thousands of
    tcptw entries at a time.
    Besides practical unusability this change is architecturally
    wrong. First, in_pcblookup_local() is used in connect() and bind()
    syscalls. No stale entries purging shouldn't be done here. Second,
    it is a layering violation.
  o Return back the tcptw purging cycle to tcp_timer_2msl_tw(),
    that was removed in rev. 1.78 by rwatson. The commit log of this
    revision tells nothing about the reason cycle was removed. Now
    we need this cycle, since major cleaner of stale tcptw structures
    is removed.
  o Disable probably necessary, but now unused
    tcp_twrecycleable() function.
  
  Reviewed by:    ru
  
  Revision  Changes    Path
  1.181     +0 -16     src/sys/netinet/in_pcb.c
  1.259     +3 -4      src/sys/netinet/tcp_subr.c
  1.83      +12 -7     src/sys/netinet/tcp_timer.c
  1.134     +2 -0      src/sys/netinet/tcp_var.h


More information about the cvs-src mailing list