From owner-cvs-src@FreeBSD.ORG Thu May 8 15:31:02 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 545151065675 for ; Thu, 8 May 2008 15:31:02 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from c00l3r.networx.ch (c00l3r.networx.ch [62.48.2.2]) by mx1.freebsd.org (Postfix) with ESMTP id 8133B8FC13 for ; Thu, 8 May 2008 15:31:01 +0000 (UTC) (envelope-from andre@freebsd.org) Received: (qmail 76056 invoked from network); 8 May 2008 14:32:39 -0000 Received: from localhost (HELO [127.0.0.1]) ([127.0.0.1]) (envelope-sender ) by c00l3r.networx.ch (qmail-ldap-1.03) with SMTP for ; 8 May 2008 14:32:39 -0000 Message-ID: <48231CB8.6030509@freebsd.org> Date: Thu, 08 May 2008 17:31:04 +0200 From: Andre Oppermann User-Agent: Thunderbird 1.5.0.14 (Windows/20071210) MIME-Version: 1.0 To: Scott Long References: <200805081505.m48F5cHa066615@repoman.freebsd.org> In-Reply-To: <200805081505.m48F5cHa066615@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/bce if_bce.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 May 2008 15:31:02 -0000 Scott Long wrote: > scottl 2008-05-08 15:05:38 UTC > > FreeBSD src repository > > Modified files: > sys/dev/bce if_bce.c > Log: > The BCE chips appear to have an undocumented requirement that RX frames be > aligned on an 8 byte boundary. Prior to rev 1.36 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. m_align() to your rescue. m_adj() probably wont do the right thing on an empty mbuf (-cluster). -- Andre