Date: Thu, 13 Oct 2016 17:38:25 +0300 From: Slawa Olhovchenkov <slw@zxy.spb.ru> To: Julien Charbon <jch@freebsd.org> Cc: Konstantin Belousov <kostikbel@gmail.com>, freebsd-stable@FreeBSD.org, hiren panchasara <hiren@strugglingcoder.info> Subject: Re: 11.0 stuck on high network load Message-ID: <20161013143825.GK57714@zxy.spb.ru> In-Reply-To: <bc6810d8-af4c-1716-cbc7-e64819b78ccd@freebsd.org> References: <20161012092945.GB57714@zxy.spb.ru> <4b0d4b58-6d13-3cd5-6991-27163f27acca@freebsd.org> <20161012095233.GC57714@zxy.spb.ru> <e4f1343c-636a-0970-856b-e65955f79e1a@freebsd.org> <20161012121322.GB57876@zxy.spb.ru> <62d8861c-673e-6d86-e96e-751399e505e5@freebsd.org> <20161012130103.GD57714@zxy.spb.ru> <e8a46471-576d-e074-8a50-5c316fb98bce@freebsd.org> <20161012154229.GC57876@zxy.spb.ru> <bc6810d8-af4c-1716-cbc7-e64819b78ccd@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Oct 13, 2016 at 01:56:21PM +0200, Julien Charbon wrote: > >> Something like: > > > > Yes, thanks! > > Proposed changes added in the review: > > https://reviews.freebsd.org/D8211 > > tell me when you have three days without issue with this change. > > >> tcp_detach() { > >> > >> ... > >> if (inp->inp_flags & INP_TIMEWAIT) { > >> > >> ... > >> if (inp->inp_flags & INP_DROPPED) { > >> > >> in_pcbdetach(inp); > >> if (__predict_true(tp == NULL)) { > >> in_pcbfree(inp); > >> } else { > >> #ifdef INVARIANTS > >> panic("tcp_detach: tp != NULL, That's not good because 'blah'\n"); > >> #else > >> log(LOG_ERR, "tcp_detach: tp != NULL, That's not good because > >> 'blah'\n"); > > > > May be some more info in log can help to detect root cause of issuse? > > I am don't know what info, may be flags or number of references? > > For this kind of issue, the useful part is the stacktrace. INVARIANT Like this? #ifdef KDB kdb_backtrace(); #endif as found in sys/netgraph/ng_base.c > will give you that trace in the core, and without INVARIANT then it is > better to use dtrace: > > $ cat tcp-twstart-dropped.d > fbt::tcp_twstart:entry > /args[0]->t_inpcb->inp_flags & 0x04000000/ > { > stack(); > printf("INP_DROPPED in tcp_twstart: %x", args[0]->t_inpcb->inp_flags); > } Same code may be insert there too, IMHO. > -- > Julien > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20161013143825.GK57714>