Module Name: src Committed By: martin Date: Wed Sep 15 16:38:01 UTC 2021
Modified Files: src/share/man/man4 [netbsd-8]: ixg.4 ixv.4 src/sys/dev/pci [netbsd-8]: files.pci src/sys/dev/pci/ixgbe [netbsd-8]: if_bypass.c if_fdir.c if_sriov.c ix_txrx.c ixgbe.c ixgbe.h ixgbe_82598.c ixgbe_82599.c ixgbe_api.c ixgbe_bypass.h ixgbe_common.c ixgbe_dcb.c ixgbe_dcb.h ixgbe_dcb_82598.c ixgbe_dcb_82598.h ixgbe_dcb_82599.c ixgbe_dcb_82599.h ixgbe_fdir.h ixgbe_features.h ixgbe_mbx.c ixgbe_netbsd.c ixgbe_netbsd.h ixgbe_netmap.c ixgbe_netmap.h ixgbe_osdep.c ixgbe_osdep.h ixgbe_phy.c ixgbe_rss.h ixgbe_sriov.h ixgbe_type.h ixgbe_vf.c ixgbe_x540.c ixgbe_x540.h ixgbe_x550.c ixgbe_x550.h ixv.c Log Message: Pull up the following (all via patch), requested by msaitoh in ticket #1696: sysdev/pci/ixgbe/ixgbe.c 1.252, 1.280-1.283, 1.286-1.287, 1.289-1.290 via patch sysdev/pci/ixgbe/ixgbe.h 1.73, 1.76-1.80 via patch sysdev/pci/ixgbe/ix_txrx.c 1.68-1.93 sysdev/pci/ixgbe/ixv.c 1.153, 1.157-1.161, 1.163-1.166 via patch sysdev/pci/ixgbe/if_bypass.c 1.7-1.9 sysdev/pci/ixgbe/if_fdir.c 1.4-1.5 sysdev/pci/ixgbe/if_sriov.c 1.10-1.11 sysdev/pci/ixgbe/ixgbe_82598.c 1.16 sysdev/pci/ixgbe/ixgbe_82599.c 1.23 sysdev/pci/ixgbe/ixgbe_api.c 1.25 sysdev/pci/ixgbe/ixgbe_bypass.h 1.2 sysdev/pci/ixgbe/ixgbe_common.c 1.30-1.33 sysdev/pci/ixgbe/ixgbe_dcb.c 1.10-1.11 sysdev/pci/ixgbe/ixgbe_dcb.h 1.7 sysdev/pci/ixgbe/ixgbe_dcb_82598.c 1.8-1.9 sysdev/pci/ixgbe/ixgbe_dcb_82598.h 1.7 sysdev/pci/ixgbe/ixgbe_dcb_82599.c 1.8-1.9 sysdev/pci/ixgbe/ixgbe_dcb_82599.h 1.7 sysdev/pci/ixgbe/ixgbe_fdir.h 1.3 sysdev/pci/ixgbe/ixgbe_features.h 1.3 sysdev/pci/ixgbe/ixgbe_mbx.c 1.12 sysdev/pci/ixgbe/ixgbe_netbsd.c 1.16-1.17 sysdev/pci/ixgbe/ixgbe_netbsd.h 1.13-1.14 sysdev/pci/ixgbe/ixgbe_netmap.c 1.3-1.4 sysdev/pci/ixgbe/ixgbe_netmap.h 1.2 sysdev/pci/ixgbe/ixgbe_osdep.c 1.7 sysdev/pci/ixgbe/ixgbe_osdep.h 1.29-1.30 sysdev/pci/ixgbe/ixgbe_phy.c 1.24 sysdev/pci/ixgbe/ixgbe_rss.h 1.5 sysdev/pci/ixgbe/ixgbe_sriov.h 1.4 sysdev/pci/ixgbe/ixgbe_type.h 1.49 sysdev/pci/ixgbe/ixgbe_vf.c 1.27 sysdev/pci/ixgbe/ixgbe_x540.c 1.18-1.19 sysdev/pci/ixgbe/ixgbe_x540.h 1.9 sysdev/pci/ixgbe/ixgbe_x550.c 1.19-1.20 sysdev/pci/ixgbe/ixgbe_x550.h 1.6 sysdev/pci/files.pci 1.438 share/man/man4/ixg.4 1.15 share/man/man4/ixv.4 1.8 - Use MCLGET() instead of homegrown cluster (jcl) allocation mechanism. Before this commit, resource shortage was easily occurred because the total number of the clusters is small. - Improve performance: - Use m_adj(ETHER_ALIGN) more. - Sprinkle __predict_false() in the RX path. - Don't pre-allocate a cluster for RXCOPY case to improve short packet's performance. - Call bus_dmamap_unload(9) via ixgbe_dmamap_unload(), before freeing DMA buffer. Also, when the buffer is already freed, do not call bus_dmamap_unload(9) (no resource leaks with this change). This change is required to make ixg(4) work on alpha. - Keep m_len and m_pkthdr.len consistent to prevent panic on arm. - Fix panic when bus_dmamap_load_mbuf() failed in ixgbe_setup_receive_ring(). - Added BUS_DMA_COHERENT flag to bus_dmamem_map() to improve stability on aarch64. - Use uint64_t instead of bus_addr_t for the TX descriptor's buffer address. At least, this change is required for macppc (sizeof(bus_addr_t) == 4) to make TX work. - Fix little-endian dependence. - Set rxr->next_to_refresh correctly in ixgbe_setup_receive_ring(). - Refresh unrefreshed descriptors' buffers correctly. - Don't call bus_dmamap_sync with rx_mbuf_sz(== MCLBYTES) to prevent panic. - Save the discard_multidesc state to not to forget the state by exiting rxeof(). - Add missing increment of no_mbuf error counter. - Don't increment no_mbuf evcnt(9) when discarding multi-descriptor packet. - ixv: Modify error message to sync with ixgbe.c - Print the error value of ixgbe_reset_hw() for debugging. - Remove extra unlock/lock processing around if_percpuq_enqueue(). - Refactor rxr->next_to_check updating. - Add new sysctl "rx_copy_len". - Add a new sysctl to read rxr->next_to_refresh. - Print error number when error occurred. - Rename ix{gbe,v}_stop() with ix{gbe,v}_stop_locked(). No functional change. - Don't use fixed value. - Comment out flow director processing in fast path. - Add missing NetBSD RCS IDs and __KERNEL_RCSID()s. - KNF. - Fix typos. To generate a diff of this commit: cvs rdiff -u -r1.10.4.2 -r1.10.4.3 src/share/man/man4/ixg.4 cvs rdiff -u -r1.3.2.4 -r1.3.2.5 src/share/man/man4/ixv.4 cvs rdiff -u -r1.388.4.5 -r1.388.4.6 src/sys/dev/pci/files.pci cvs rdiff -u -r1.2.4.6 -r1.2.4.7 src/sys/dev/pci/ixgbe/if_bypass.c cvs rdiff -u -r1.1.4.3 -r1.1.4.4 src/sys/dev/pci/ixgbe/if_fdir.c \ src/sys/dev/pci/ixgbe/ixgbe_fdir.h src/sys/dev/pci/ixgbe/ixgbe_features.h \ src/sys/dev/pci/ixgbe/ixgbe_netmap.c cvs rdiff -u -r1.1.4.5 -r1.1.4.6 src/sys/dev/pci/ixgbe/if_sriov.c cvs rdiff -u -r1.24.2.21 -r1.24.2.22 src/sys/dev/pci/ixgbe/ix_txrx.c cvs rdiff -u -r1.88.2.43 -r1.88.2.44 src/sys/dev/pci/ixgbe/ixgbe.c cvs rdiff -u -r1.24.6.21 -r1.24.6.22 src/sys/dev/pci/ixgbe/ixgbe.h cvs rdiff -u -r1.8.8.5 -r1.8.8.6 src/sys/dev/pci/ixgbe/ixgbe_82598.c cvs rdiff -u -r1.14.8.6 -r1.14.8.7 src/sys/dev/pci/ixgbe/ixgbe_82599.c cvs rdiff -u -r1.15.8.6 -r1.15.8.7 src/sys/dev/pci/ixgbe/ixgbe_api.c cvs rdiff -u -r1.1.4.2 -r1.1.4.3 src/sys/dev/pci/ixgbe/ixgbe_bypass.h \ src/sys/dev/pci/ixgbe/ixgbe_netmap.h cvs rdiff -u -r1.13.2.10 -r1.13.2.11 src/sys/dev/pci/ixgbe/ixgbe_common.c cvs rdiff -u -r1.4.8.2 -r1.4.8.3 src/sys/dev/pci/ixgbe/ixgbe_dcb.c cvs rdiff -u -r1.3.8.2 -r1.3.8.3 src/sys/dev/pci/ixgbe/ixgbe_dcb.h \ src/sys/dev/pci/ixgbe/ixgbe_dcb_82598.c \ src/sys/dev/pci/ixgbe/ixgbe_dcb_82598.h \ src/sys/dev/pci/ixgbe/ixgbe_dcb_82599.c \ src/sys/dev/pci/ixgbe/ixgbe_dcb_82599.h cvs rdiff -u -r1.6.8.3 -r1.6.8.4 src/sys/dev/pci/ixgbe/ixgbe_mbx.c cvs rdiff -u -r1.6.2.6 -r1.6.2.7 src/sys/dev/pci/ixgbe/ixgbe_netbsd.c cvs rdiff -u -r1.7.6.3 -r1.7.6.4 src/sys/dev/pci/ixgbe/ixgbe_netbsd.h cvs rdiff -u -r1.1.12.4 -r1.1.12.5 src/sys/dev/pci/ixgbe/ixgbe_osdep.c cvs rdiff -u -r1.17.6.7 -r1.17.6.8 src/sys/dev/pci/ixgbe/ixgbe_osdep.h cvs rdiff -u -r1.11.6.7 -r1.11.6.8 src/sys/dev/pci/ixgbe/ixgbe_phy.c cvs rdiff -u -r1.2.2.4 -r1.2.2.5 src/sys/dev/pci/ixgbe/ixgbe_rss.h cvs rdiff -u -r1.1.4.4 -r1.1.4.5 src/sys/dev/pci/ixgbe/ixgbe_sriov.h cvs rdiff -u -r1.22.2.12 -r1.22.2.13 src/sys/dev/pci/ixgbe/ixgbe_type.h cvs rdiff -u -r1.12.8.6 -r1.12.8.7 src/sys/dev/pci/ixgbe/ixgbe_vf.c cvs rdiff -u -r1.9.6.5 -r1.9.6.6 src/sys/dev/pci/ixgbe/ixgbe_x540.c cvs rdiff -u -r1.5.8.2 -r1.5.8.3 src/sys/dev/pci/ixgbe/ixgbe_x540.h cvs rdiff -u -r1.5.6.9 -r1.5.6.10 src/sys/dev/pci/ixgbe/ixgbe_x550.c cvs rdiff -u -r1.2.12.3 -r1.2.12.4 src/sys/dev/pci/ixgbe/ixgbe_x550.h cvs rdiff -u -r1.56.2.31 -r1.56.2.32 src/sys/dev/pci/ixgbe/ixv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.