Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jan 2007 15:07:31 +0300
From:      Sergey Zaharchenko <doublef-ctm@yandex.ru>
To:        current@freebsd.org
Subject:   nve related LOR triggered by lots of small packets, and a hard hang
Message-ID:  <20070110120731.GA1515@shark.localdomain>

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

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

Hello -current,

While chasing that smbfs recursive locking thing, I decided to try
copying a large amount of small files (/usr/src actually) to an SMB
share to which I am connected by an NVIDIA nForce MCP2 card. I have come
across a lock order reversal which seems related to the card. First,
some files are copied, then I see the following kernel messages, some
more files are copied, and then the system hangs without responding to
the keyboard or anything.

: lock order reversal:
:  1st 0xc3629f00 inp (tcpinp) @ /src/usr.src/sys/netinet/tcp_usrreq.c:801
:  2nd 0xc0a9feec tcp (tcp) @ /src/usr.src/sys/netinet/tcp_input.c:626
: KDB: stack backtrace:
: db_trace_self_wrapper(c0950c60) at db_trace_self_wrapper+0x25
: kdb_backtrace(0,ffffffff,c0a612a8,c0a612d0,c09f8e84,...) at kdb_backtrace=
+0x29
: witness_checkorder(c0a9feec,9,c095ec63,272) at witness_checkorder+0x586
: _mtx_lock_flags(c0a9feec,0,c095ec63,272,0,...) at _mtx_lock_flags+0x84
: tcp_input(c32df800,14,c3300800,100a8c0,0,...) at tcp_input+0x432
: ip_input(c32df800) at ip_input+0x5a6
: netisr_dispatch(2,c32df800,0,c32c5000,c3300800,...) at netisr_dispatch+0x=
58
: ether_demux(c32c5000,c32df800,c32caed8,c32df800,dd1757d4,...) at ether_de=
mux+0x28a
: ether_input(c32c5000,c32df800,c32caed8,0,c0970133,...) at ether_input+0x2=
02
: nve_ospacketrx(c32cae00,dd175810,1,0,0,...) at nve_ospacketrx+0xd9
: UpdateReceiveDescRingData(c08981a4,c08981c4,c0898260,c089828c,c08982a4,..=
=2E) at UpdateReceiveDescRingData+0x2f8
: nve_osalloc(c32cb200,dd391010,c32cae00,c0898108,c08981a4,...) at nve_osal=
loc
: _end(c33a5c00,c0a9e784,3065766e,0,0,...) at 0xc32aa600
: _end(c32cb200,dd391010,c32cae00,c0898108,c08981a4,...) at 0xc3327680
: _end(c33a5c00,c0a9e784,3065766e,0,0,...) at 0xc32aa600
: _end(c32cb200,dd391010,c32cae00,c0898108,c08981a4,...) at 0xc3327680

The last 2 strings repeat themselves a lot of times (kdb seems to have a
limit of 1024 stack trace strings, which came in very helpful). No info
about the actual hang... The LOR looks like #009
(http://sources.zabbadoz.net/freebsd/lor/009.html), but is different
actually. Any ideas? BTW, what is _end?

--=20
DoubleF
No virus detected in this message. Ehrm, wait a minute...
/kernel: pid 56921 (antivirus), uid 32000: exited on signal 9
Oh yes, no virus:)

--1yeeQ81UyVL57Vl7
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.1 (FreeBSD)

iD8DBQFFpNcCwo7hT/9lVdwRAsL/AJoDEfwJV0MhFYkuC50mRfpDgOTnDQCfU/l/
4mgmMbiY7oJ+6V6//EWHY1w=
=mVyJ
-----END PGP SIGNATURE-----

--1yeeQ81UyVL57Vl7--



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