Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Jan 2020 22:09:45 +0100
From:      Hans Petter Selasky <hps@selasky.org>
To:        Gleb Smirnoff <glebius@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r357293 - head/sys/net
Message-ID:  <1bd0ae2c-3b5a-dfd7-747b-75af6f8d4d03@selasky.org>
In-Reply-To: <20200130205629.GK1268@FreeBSD.org>
References:  <202001301204.00UC43Rw022059@repo.freebsd.org> <20200130205629.GK1268@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2020-01-30 21:56, Gleb Smirnoff wrote:
> On Thu, Jan 30, 2020 at 12:04:03PM +0000, Hans Petter Selasky wrote:
> H> Author: hselasky
> H> Date: Thu Jan 30 12:04:02 2020
> H> New Revision: 357293
> H> URL: https://svnweb.freebsd.org/changeset/base/357293
> H>
> H> Log:
> H>   Widen EPOCH(9) usage in netisr.
> H>
> H>   Software interrupt handlers are allowed to sleep. In swi_net() there
> H>   is a read lock behind NETISR_RLOCK() which in turn ends up calling
> H>   msleep() which means the whole of swi_net() cannot be protected by an
> H>   EPOCH(9) section. By default the NETISR_LOCKING feature is disabled.
> H>
> H>   This issue was introduced by r357004. This is a preparation step for
> H>   replacing the functionality provided by r357004.
> H>
> H>   Found by:	kib@
> H>   Sponsored by:	Mellanox Technologies
> 
> What?! NETISR_RLOCK() which in turn ends up calling msleep()? Can you please
> explain this nonsense?
> 

See rms_rlock_fallback() in kern_rmlock.c .

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1bd0ae2c-3b5a-dfd7-747b-75af6f8d4d03>