-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dear 7-STABLE users, I would like to call for test for a patchset that is intended for MFC to 7-STABLE before 7.1-RELEASE. The patchset can be viewed/downloaded here: http://www.delphij.net/bce.diff (~1.2MB) For those with slow network, you can download the compressed version: http://www.delphij.net/bce.diff.bz2 (~210KB) In order to apply the patch, you will need to update your source tree to latest RELENG_7, then, cd into /usr/src/sys and use patch < ~/bce.diff (assume that you have downloaded it to your home directory), then recompile your kernel (or module). This patchset would add some new hardware support, plus a bunch of bugfixes done by davidch@ in the past months. Since this is a relatively big change, I would appreciate tests from bce(4) hardware owners, your help will aid us to make FreeBSD 7.1 a better release. For your convenience, here is a summary for the change: r176448,178132,178853,179436,179695,179771,182293 r176448 (davidch) - Added loose RX MTU functionality to allow frames larger than 1500 bytes to be accepted even though the interface MTU is set to 1500. - Implemented new TCP header splitting/jumbo frame support which uses two chains for receive traffic rather than the original single receive chain. - Added additional debug support code. r178132 (davidch) - Fixed a problem with the send chain consumer index which would cause TX traffic to sit in the send chain until a received packet kick started the interrupt handler. This would cause extremely slow performance when used with NFS over UDP. - Removed untested polling code. - Updated copyright year in the file header. - Removed inadvertent ^M's created by DOS text editor. r178853 (scottl) The BCE chips appear to have an undocumented requirement that RX frames be aligned on an 8 byte boundary. Prior to rev 1.36 (now r176448) this wasn't a problem because mbuf clusters tend be naturally aligned. The switch to using split buffers with the first buffer being the embedded data area of the mbuf has broken this assumption, at least on i386, causing a complete failure of RX functionality. Fix this for now by using a full cluster for the first RX buffer. A more sophisticated approach could be done with the old buffer scheme to realign the m_data pointer with m_adj(), but I'm also not clear on performance benefits of this old scheme or the performance implications of adding an m_adj() call to every allocation. r179436 (jhb) Trim an extra semi-colon. r179695 (davidch) - Fixed kern/123696 by increasing firmware timeout value from 100 to 1000. - Fixed a problem on i386 architecture when using split header/jumbo frame firmware caused by hardware alignment requirements. - Added #define BCE_USE_SPLIT_HEADER to allow the feature to be enabled/disabled. Enabled by default. PR: kern/123696 r179771 (davidch) - Added support for BCM5709 and BCM5716 controllers. r182293 (davidch) - Updated support for 5716. - Added some additional code for debug builds. - Fixed a problem printing physical memory on 64bit system during debugging. - Modified some of the context memory and mailbox register names to more clearly distinguish their use. - Added memory barriers for Intel CPUs when accessing host memory data structures which are written by hardware. - -- Xin LI <delphij@delphij.net> http://www.delphij.net/ FreeBSD - The Power to Serve! -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) iEYEARECAAYFAkkOzV4ACgkQi+vbBBjt66C3IgCgi5OVuzAIlzJ/cgSpZuWPdqvZ FAEAn0xUK/gp5VNwisDgcbGzfPh7jig4 =1CGv -----END PGP SIGNATURE-----