From owner-cvs-src@FreeBSD.ORG Fri Nov 25 14:12:21 2005 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 88CA116A41F; Fri, 25 Nov 2005 14:12:21 +0000 (GMT) (envelope-from glebius@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2625D43D77; Fri, 25 Nov 2005 14:12:04 +0000 (GMT) (envelope-from glebius@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jAPEC0AN021194; Fri, 25 Nov 2005 14:12:00 GMT (envelope-from glebius@repoman.freebsd.org) Received: (from glebius@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jAPEC0gG021193; Fri, 25 Nov 2005 14:12:00 GMT (envelope-from glebius) Message-Id: <200511251412.jAPEC0gG021193@repoman.freebsd.org> From: Gleb Smirnoff Date: Fri, 25 Nov 2005 14:11:59 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: RELENG_6 Cc: Subject: cvs commit: src/sys/dev/em if_em.c if_em.h if_em_hw.c if_em_hw.h if_em_osdep.h 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: Fri, 25 Nov 2005 14:12:21 -0000 glebius 2005-11-25 14:11:59 UTC FreeBSD src repository Modified files: (Branch: RELENG_6) sys/dev/em if_em.c if_em.h if_em_hw.c if_em_hw.h if_em_osdep.h Log: Sync em(4) driver with HEAD, merging the following changes: revision 1.83 date: 2005/11/09 08:43:18; author: yongari; state: Exp; lines: +41 -38 Make em(4) work on big-endian architectures. - disable jumbo frame support on strict alignment architectures due to the limitation of hardware. The driver needs a fix-up code for RX side. The fix will show up in near future. - fix endian issue for 82544 on PCI-X bus. I couldn't test this as I don't have the NIC/hardware. - prefer PCIR_BAR to hardcoded EM_MMBA. - Properly checks for for 64bit BAR [1] - replace inl/outl with bus_space(9) [1] - fix endian issue on VLAN handling. - reorder header files and remove unnecessary one. Reviewed by: cognet No response from: pdeuskar, tackerman Obtained from: OpenBSD [1] revision 1.84 date: 2005/11/09 15:23:54; author: glebius; state: Exp; lines: +7 -3 - Introduce two more stat counters, counting number of RX overruns and number of watchdog timeouts. - Do not log(9) RX overrun events, since this pessimizes things under load [1]. - Do not increase if->if_oerrors in em_watchdog(), since this leads to counter slipping back, when if->if_oerrors is recalculated in em_update_stats_counters(). Instead increase watchdog counter in em_watchdog() and take it into account in em_update_stats_counters(). revision 1.86 date: 2005/11/11 16:04:51; author: ru; state: Exp; lines: +1 -1 - Store pointer to the link-level address right in "struct ifnet" rather than in ifindex_table[]; all (except one) accesses are through ifp anyway. IF_LLADDR() works faster, and all (except one) ifaddr_byindex() users were converted to use ifp->if_addr. - Stop storing a (pointer to) Ethernet address in "struct arpcom", and drop the IFP2ENADDR() macro; all users have been converted to use IF_LLADDR() instead. revisions 1.85, 1.87 - Introduce tunables em.hw.txd and em.hw.rxd, which allow administrator to configure number of transmit and receive descriptors. - Check em.hw.txd and em.hw.rxd against hardware limits [*] and require them to be multiple of 128. revision 1.88 date: 2005/11/21 04:17:43; author: yongari; state: Exp; lines: +121 -83 busdma cleanup for em(4). - don't force busdma to pre-allocate bounce pages for parent tag. - use system supplied roundup2 macro instead of rolling its own version. - TX/RX decriptor length should be multiple of 128. There is no no need to expand the size with the multiple of 4096. - don't create/destroy DMA maps in TX/RX handlers. Use pre-allocated DMA maps. Since creating DMA maps on sparc64 is time consuming operations(resource mananger overhead), this change should boost performance on sparc64. I could get > 2x speedup on Ultra60. - TX/RX descriptors could be aligned on 128 boundary. Aligning them on PAGE_SIZE is waste of resource. - don't blindly create TX DMA tag with size of MCLBYTES * 8. The size is only valid under jumbo frame environments. Instead of using the hardcoded value, re-compute necessary size on the fly. - RX side bus_dmamap_load_mbuf_sg(9) support. - remove unused macro EM_ROUNDUP and constant EM_MMBA. Reviewed by: scottl Tested by: glebius revision 1.89 date: 2005/11/24 01:44:48; author: glebius; state: Exp; lines: +131 -77 Merge in new driver version from Intel - 3.2.18. The most important change is support for adapters based on 82571 and 82572 chips. Tested on: 82547EI on i386 Tested on: 82540EM on sparc64 revision 1.90 date: 2005/11/24 15:13:47; author: cognet; state: Exp; lines: +3 -1 Remember the bus_dmamap_t where we loaded the mbuf, and sync this map instead of tx_buffer->map, or we could end up syncing the wrong map. Revision Changes Path 1.65.2.8 +325 -199 src/sys/dev/em/if_em.c 1.32.2.2 +30 -24 src/sys/dev/em/if_em.h 1.16.2.1 +274 -77 src/sys/dev/em/if_em_hw.c 1.15.2.2 +106 -16 src/sys/dev/em/if_em_hw.h 1.14.2.1 +15 -12 src/sys/dev/em/if_em_osdep.h