From owner-freebsd-stable@freebsd.org Mon Feb 15 15:13:23 2016 Return-Path: Delivered-To: freebsd-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DE0C3AA99ED for ; Mon, 15 Feb 2016 15:13:22 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id C4B1B1A4E for ; Mon, 15 Feb 2016 15:13:22 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: by mailman.ysv.freebsd.org (Postfix) id BFF3DAA99EA; Mon, 15 Feb 2016 15:13:22 +0000 (UTC) Delivered-To: stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A66F4AA99E9 for ; Mon, 15 Feb 2016 15:13:22 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 672EC1A4D for ; Mon, 15 Feb 2016 15:13:22 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1aVKpy-000Jtv-HP; Mon, 15 Feb 2016 18:13:18 +0300 Date: Mon, 15 Feb 2016 18:13:18 +0300 From: Slawa Olhovchenkov To: Giuseppe Lettieri Cc: Luigi Rizzo , Adrian Chadd , "stable@freebsd.org" Subject: Re: 82576 + NETMAP + VLAN Message-ID: <20160215151318.GQ68298@zxy.spb.ru> References: <20160208173935.GK68298@zxy.spb.ru> <56B9E398.1060105@iet.unipi.it> <20160210115937.GA37895@zxy.spb.ru> <56BB3C20.600@iet.unipi.it> <20160210135318.GL68298@zxy.spb.ru> <56BC505F.7080309@iet.unipi.it> <20160211133428.GM68298@zxy.spb.ru> <56C1EA66.807@iet.unipi.it> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56C1EA66.807@iet.unipi.it> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Feb 2016 15:13:23 -0000 On Mon, Feb 15, 2016 at 04:10:30PM +0100, Giuseppe Lettieri wrote: > Hi Slawa, > > I think WITNESS is seeing a false positive, since those two are always > different mutexes. > > The actual deadlock you experience should be caused by something else. I Are you sure? When deadlock occur I am see threads waiting on nm_kn_lock. > have not been able to reproduce it locally (I have not tried that hard, > to be honest). I am pretty sure that there is a lock inversion - one > that may cause real deadlocks - when you use netmap pipes+kqueue and you > don't pass NETMAP_NO_TX_POLL at NIOCREGIF time. The attached patch > should solve this particular problem, but there may be others. May you > please try it? Try it with or w/o WITNESS? > Cheers, > Giuseppe > > Il 11/02/2016 14:34, Slawa Olhovchenkov ha scritto: > > On Thu, Feb 11, 2016 at 10:11:59AM +0100, Giuseppe Lettieri wrote: > > > >> Il 10/02/2016 14:53, Slawa Olhovchenkov ha scritto: > >>> On Wed, Feb 10, 2016 at 02:33:20PM +0100, Giuseppe Lettieri wrote: > >>> > >>>> Il 10/02/2016 12:59, Slawa Olhovchenkov ha scritto: > >>>>> Can you look also on second issue? > >>>>> > >>>>> PS: What need from me? May be open PR? > >>>> > >>>> May you provide some example code that triggers the issue? > >>> > >>> This is about 700 lines of code (not very clear), may be I can describe it? > >> > >> I just need some code to trigger the problem locally. Don't worry about > >> the clarity and the line count, unless you cannot share the code for > >> other reasons. > > > > I am attach source. > > run as "prog if1 if2" > > Got `acquiring duplicate lock of same type: "nm_kn_lock"` immediatly > > after start. > > Dead locking may be occur immediatly after start or may be need > > traffic flooding. > > > > > -- > Dr. Ing. Giuseppe Lettieri > Dipartimento di Ingegneria della Informazione > Universita' di Pisa > Largo Lucio Lazzarino 1, 56122 Pisa - Italy > Ph. : (+39) 050-2217.649 (direct) .599 (switch) > Fax : (+39) 050-2217.600 > e-mail: g.lettieri@iet.unipi.it > Index: dev/netmap/netmap.c > =================================================================== > --- dev/netmap/netmap.c (revision 287671) > +++ dev/netmap/netmap.c (working copy) > @@ -2378,7 +2378,7 @@ > * XXX should also check cur != hwcur on the tx rings. > * Fortunately, normal tx mode has np_txpoll set. > */ > - if (priv->np_txpoll || want_tx) { > + if ((priv->np_txpoll && !is_kevent) || want_tx) { > /* > * The first round checks if anyone is ready, if not > * do a selrecord and another round to handle races.