From owner-freebsd-hackers@FreeBSD.ORG Mon Aug 25 07:28:06 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B593616A4BF for ; Mon, 25 Aug 2003 07:28:06 -0700 (PDT) Received: from dmlb.org (pc2-cmbg4-6-cust36.cmbg.cable.ntl.com [81.96.76.36]) by mx1.FreeBSD.org (Postfix) with ESMTP id 008AC43FF7 for ; Mon, 25 Aug 2003 07:28:06 -0700 (PDT) (envelope-from dmlb@dmlb.org) Received: from slave.my.domain ([192.168.200.39]) by dmlb.org with esmtp (Exim 3.36 #1) id 19rIK5-000Lu0-00; Mon, 25 Aug 2003 15:27:57 +0100 Received: from dmlb by slave.my.domain with local (Exim 3.36 #1) id 19rIK5-000Ite-00; Mon, 25 Aug 2003 15:27:57 +0100 Message-ID: X-Mailer: XFMail 1.5.2 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 Date: Mon, 25 Aug 2003 15:27:57 +0100 (BST) From: Duncan Barclay To: Greg Lehey , freebsd-hackers@freebsd.org Sender: Duncan Barclay Subject: mbuf/mbuf cluster adjustments (bcm driver) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2003 14:28:06 -0000 Hi I've finally managed to get back to work on the bcm driver for Broadcom 440x chips. I think the RX packet loss/performance problem that people have with the driver from July is down to how I am accounting for a 30byte header that the chip prepends to an incoming packet. At present, the driver preallocates a load of mbuf clusters for the chip to DMA into. The chip then loads the mbuf cluster with this 30byte header followed by the real packet. I then account for this header by doing an m_adj(m, 30) before if_input(). However, this doesn't seem to work all the time. Looking at the code for m_adj I don't think it is meant for use with mbuf clusters. Is there a tidy way of trimming this header off from the mbuf cluster? I'm going to first try manually copying stuff to confirm that this is the problem and then try m_pullup followed by m_adj. Thanks Duncan -- ________________________________________________________________________ Duncan Barclay | dmlb@dmlb.org | dmlb@freebsd.org|