Re: weird network problems on current since 10/28/2012

看板FB_current作者時間12年前 (2013/04/27 12:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串14/14 (看更多)
On 04.11.2012 21:15, Andreas Tobler wrote: > On 04.11.12 14:57, Andre Oppermann wrote: >> On 04.11.2012 13:11, Kim Culhan wrote: >>> On Sun, November 4, 2012 6:21 am, Dimitry Andric wrote: >>>> On 2012-11-04 02:13, Manfred Antar wrote: >>>>> At 03:29 PM 11/3/2012, Adrian Chadd wrote: >>>> After the commit, there was a small discussion thread on svn-src-head@ >>>> about the possible problems with the approach. Maybe you are >>>> experiencing those? >>>> >>>> As the commit message says, you should be able to turn the feature off >>>> using: >>>> >>>> sysctl net.inet.tcp.experimental.initcwnd10=0 >>>> >>>> Can you please try that, and see if the problems go away? >>> >>> FWIW this did not make the problem go away on 2 machines. >> >> Yes, this very much looks like the same problem as in PR/173309. >> >> Please try the attached patch. It fixes the connection hang issue. >> There may be a second issue I debugging currently base on the feedback >> from Fabian Keil. > > I jump into this thread since I have a similar network issue. > > My scenario: > > 'make installkernel DESTDIR=/netboot/test' to a nfs mounted drive. > The nfs drive on the server is an ufs fs. No zfs. > > Up to r242261 I can install the kernel (or world) in a fluent way to the > nfs destination. > >>From r242262 it doesn't work smooth. I have stalls, sometimes my > patience is not enough and I kill the process. > > I tried 242266 with the above mentioned patch. No real success. > > How can I help/test? Please try the attach patch instead of the above mentioned one. -- Andre Index: netinet/tcp_output.c =================================================================== --- netinet/tcp_output.c (revision 242577) +++ netinet/tcp_output.c (working copy) @@ -228,7 +228,7 @@ tso = 0; mtu = 0; off = tp->snd_nxt - tp->snd_una; - sendwin = min(tp->snd_wnd, tp->snd_cwnd); + sendwin = ulmax(ulmin(tp->snd_wnd - off, tp->snd_cwnd), 0); flags = tcp_outflags[tp->t_state]; /* @@ -249,7 +249,7 @@ (p = tcp_sack_output(tp, &sack_bytes_rxmt))) { long cwin; - cwin = min(tp->snd_wnd, tp->snd_cwnd) - sack_bytes_rxmt; + cwin = ulmin(tp->snd_wnd - off, tp->snd_cwnd) - sack_bytes_rxmt; if (cwin < 0) cwin = 0; /* Do not retransmit SACK segments beyond snd_recover */ @@ -355,7 +355,7 @@ * sending new data, having retransmitted all the * data possible in the scoreboard. */ - len = ((long)ulmin(so->so_snd.sb_cc, tp->snd_wnd) + len = ((long)ulmin(so->so_snd.sb_cc, tp->snd_wnd - off) - off); /* * Don't remove this (len > 0) check ! _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
文章代碼(AID): #1HUrJv6I (FB_current)
討論串 (同標題文章)
文章代碼(AID): #1HUrJv6I (FB_current)