Date: Fri, 25 Nov 2005 14:11:59 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org 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 Message-ID: <200511251412.jAPEC0gG021193@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200511251412.jAPEC0gG021193>