Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 May 2005 22:15:02 +0300
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        Ed Maste <emaste@phaedrus.sandvine.ca>
Cc:        freebsd-current@FreeBSD.org, Gleb Smirnoff <glebius@FreeBSD.org>
Subject:   Re: SMP, DEVICE_POLLING and fxp LOR
Message-ID:  <20050530191502.GC57333@ip.net.ua>
In-Reply-To: <20050530134443.GA9132@sandvine.com>
References:  <20050530134443.GA9132@sandvine.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--+nBD6E3TurpgldQp
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, May 30, 2005 at 09:44:43AM -0400, Ed Maste wrote:
> A few days ago I posted to -stable about a LOR observed on our 5.4-based
> tree with SMP, DEVICE_POLLING and fxp:
> http://lists.freebsd.org/pipermail/freebsd-stable/2005-May/015376.html
> Contrary to my earlier assertion, em does not have a problem.
>=20
> We do have a fair amount of local diffs, so I've now confirmed this is ea=
sily
> reproduced on unmodified -CURRENT as of 05/28.
>=20
> My config file has
> options         SMP
> options         DEVICE_POLLING
> device          fxp
> (full config file at http://www.maste.org/~ed/sv/STOCK.1 )
>=20
> lock order reversal
>  1st 0xa0783860 Giant (Giant) @ /d2/emaste/cvs_head/src/sys/kern/kern_pol=
l.c:332
>  2nd 0xa23e22a0 fxp0 (network driver) @ /d2/emaste/cvs_head/src/sys/dev/f=
xp/if_fxp.c:1473
> KDB: stack backtrace:
> kdb_backtrace(0,ffffffff,a07a6168,a07a4750,a0759160) at 0xa0585789 =3D kd=
b_backtrace+0x29
> witness_checkorder(a23e22a0,9,a070a173,5c1) at 0xa058f74c =3D witness_che=
ckorder+0x55c
> _mtx_lock_flags(a23e22a0,0,a070a173,5c1) at 0xa05652f8 =3D _mtx_lock_flag=
s+0x60
> fxp_poll(a23e2000,1,5) at 0xa04fa001 =3D fxp_poll+0x29
> netisr_poll(0) at 0xa0567070 =3D netisr_poll+0x188
> swi_net(0) at 0xa05d9041 =3D swi_net+0x81
> ithread_loop(a2309000,c5d8fd38,a2309000,a055aba8,0) at 0xa055acc8 =3D ith=
read_loop+0x120
> fork_exit(a055aba8,a2309000,c5d8fd38) at 0xa055a0f0 =3D fork_exit+0xa0
> fork_trampoline() at 0xa06ad31c =3D fork_trampoline+0x8
>=20
> The ether_poll_deregister in fxp_stop() looks to be the culprit.
>=20
This LOR is well-known and will go away as soon as we commit our WIP
changes for polling(4).  I have no firm plans when it happens though.


Cheers,
--=20
Ruslan Ermilov
ru@FreeBSD.org
FreeBSD committer

--+nBD6E3TurpgldQp
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (FreeBSD)

iD8DBQFCm2Y1qRfpzJluFF4RAuk1AJwLTp+tQ01RY0qcFmfsiFESQ9sMLQCfSslr
sRLImZP1PwMQVQO2lVOyFow=
=Xb4s
-----END PGP SIGNATURE-----

--+nBD6E3TurpgldQp--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050530191502.GC57333>