Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Apr 2012 11:17:15 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Ryan Stone <rysto32@gmail.com>
Cc:        jfv@freebsd.org, Jack Vogel <jfvogel@gmail.com>, John Baldwin <jhb@freebsd.org>, net@freebsd.org
Subject:   Re: 82574L hangs (with r233708 e1000 driver).
Message-ID:  <20120413081715.GC2358@deviant.kiev.zoral.com.ua>
In-Reply-To: <CAFMmRNyWaf88Exn1OKPDjyqsbNTGvHzv0DiHvy0O-uTDkPkNWg@mail.gmail.com>
References:  <20120407133715.GU2358@deviant.kiev.zoral.com.ua> <CAFOYbc=hFg_jvohPVQrp4M%2BXQztoO6b-9Pop=PrVn6VxP6oaHQ@mail.gmail.com> <20120408051125.GA2358@deviant.kiev.zoral.com.ua> <201204091219.39580.jhb@freebsd.org> <20120412183849.GA2358@deviant.kiev.zoral.com.ua> <CAFMmRNyWaf88Exn1OKPDjyqsbNTGvHzv0DiHvy0O-uTDkPkNWg@mail.gmail.com>

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

--P2QgR0JrZwTaWvmb
Content-Type: text/plain; charset=koi8-r
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 12, 2012 at 03:40:27PM -0400, Ryan Stone wrote:
> On Thu, Apr 12, 2012 at 2:38 PM, Konstantin Belousov
> <kostikbel@gmail.com> wrote:
> > And, on receive, the atom board does receive interrupts, em0:rx 0 count=
er
> > in vmstat -i increases. Even more fun, the sysctl dev.em.0.debug
> > shows increasing hw rdh (as I understand, this is hardware 'last
> > received' packet pointer for rx ring). So I looked at the packet
> > descriptor at hw rdt index, and there I see
> > (kgdb) p/x ((struct adapter *)0xffffff80010e4000)->rx_rings->rx_base[78]
> > $11 =3D {buffer_addr =3D 0x12a128800, length =3D 0x5ea, csum =3D 0x3c2b=
, status =3D 0x0,
> > =9Aerrors =3D 0x0, special =3D 0x0}
>=20
> This looks like a buffer address, not a written-back
What do you reference by 'This' ? 0x12a128800 is indeed buffer address,
because it is the content of the first eight bytes of the descriptor.

The next descriptor in the ring had the status 0x63, which is quite
reasonable value for filled descriptor.

> descriptor(0x12a128800 being aligned to a 2048 byte boundary is a big
> clue).  Is it easy to check the mbuf in
> rx_rings->rx_buffers[78].m_head and see whether the buffer in the mbuf
> there has that physical address?
Probably so, I will recheck later today.

>=20
> If that is a buffer address then the driver must be updating
> descriptors in rx_base that are owned by hardware, or somehow
> forgetting to update rdt and rxr->next_to_check.
Yes, there is a bug somewhere.

On the other hand, it is very specific to exactly this model and
might be a revision, because I have tons of em interfaces working
flawlessly with the same version of the driver.

--P2QgR0JrZwTaWvmb
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iEYEARECAAYFAk+H4QsACgkQC3+MBN1Mb4jlkwCfZpSndcS7LsiWMwAey9lV3z18
EP8An2Rb4Gm3cUL/fFqr7dDFrzI1cdPe
=FeLU
-----END PGP SIGNATURE-----

--P2QgR0JrZwTaWvmb--



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