Module Name: src Committed By: martin Date: Wed Sep 15 16:30:51 UTC 2021
Modified Files: src/share/man/man4 [netbsd-9]: ixg.4 ixv.4 src/sys/dev/pci [netbsd-9]: files.pci src/sys/dev/pci/ixgbe [netbsd-9]: 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 (via patch), requested by msaitoh in ticket #1346: sys/dev/pci/ixgbe/ixgbe.c 1.252, 1.280-1.283, 1.286-1.287, 1.289-1.290 via patch sys/dev/pci/ixgbe/ixgbe.h 1.73, 1.76-1.80 via patch sys/dev/pci/ixgbe/ix_txrx.c 1.68-1.93 sys/dev/pci/ixgbe/ixv.c 1.153, 1.157-1.161, 1.163-1.166 via patch sys/dev/pci/ixgbe/if_bypass.c 1.7-1.9 sys/dev/pci/ixgbe/if_fdir.c 1.4-1.5 sys/dev/pci/ixgbe/if_sriov.c 1.10-1.11 sys/dev/pci/ixgbe/ixgbe_82598.c 1.16 sys/dev/pci/ixgbe/ixgbe_82599.c 1.23 sys/dev/pci/ixgbe/ixgbe_api.c 1.25 sys/dev/pci/ixgbe/ixgbe_bypass.h 1.2 sys/dev/pci/ixgbe/ixgbe_common.c 1.30-1.33 sys/dev/pci/ixgbe/ixgbe_dcb.c 1.10-1.11 sys/dev/pci/ixgbe/ixgbe_dcb.h 1.7 sys/dev/pci/ixgbe/ixgbe_dcb_82598.c 1.8-1.9 sys/dev/pci/ixgbe/ixgbe_dcb_82598.h 1.7 sys/dev/pci/ixgbe/ixgbe_dcb_82599.c 1.8-1.9 sys/dev/pci/ixgbe/ixgbe_dcb_82599.h 1.7 sys/dev/pci/ixgbe/ixgbe_fdir.h 1.3 sys/dev/pci/ixgbe/ixgbe_features.h 1.3 sys/dev/pci/ixgbe/ixgbe_mbx.c 1.12 sys/dev/pci/ixgbe/ixgbe_netbsd.c 1.13, 1.16-1.17 sys/dev/pci/ixgbe/ixgbe_netbsd.h 1.13-1.14 sys/dev/pci/ixgbe/ixgbe_netmap.c 1.3-1.4 sys/dev/pci/ixgbe/ixgbe_netmap.h 1.2 sys/dev/pci/ixgbe/ixgbe_osdep.c 1.7 sys/dev/pci/ixgbe/ixgbe_osdep.h 1.29-1.30 sys/dev/pci/ixgbe/ixgbe_phy.c 1.24 sys/dev/pci/ixgbe/ixgbe_rss.h 1.5 sys/dev/pci/ixgbe/ixgbe_sriov.h 1.4 sys/dev/pci/ixgbe/ixgbe_type.h 1.49 sys/dev/pci/ixgbe/ixgbe_vf.c 1.27 sys/dev/pci/ixgbe/ixgbe_x540.c 1.18-1.19 sys/dev/pci/ixgbe/ixgbe_x540.h 1.9 sys/dev/pci/ixgbe/ixgbe_x550.c 1.19-1.20 sys/dev/pci/ixgbe/ixgbe_x550.h 1.6 sys/dev/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.12.4.1 -r1.12.4.2 src/share/man/man4/ixg.4 cvs rdiff -u -r1.4.2.2 -r1.4.2.3 src/share/man/man4/ixv.4 cvs rdiff -u -r1.413.2.3 -r1.413.2.4 src/sys/dev/pci/files.pci cvs rdiff -u -r1.4.8.2 -r1.4.8.3 src/sys/dev/pci/ixgbe/if_bypass.c \ src/sys/dev/pci/ixgbe/ixgbe_osdep.c cvs rdiff -u -r1.2 -r1.2.8.1 src/sys/dev/pci/ixgbe/if_fdir.c \ src/sys/dev/pci/ixgbe/ixgbe_fdir.h cvs rdiff -u -r1.6 -r1.6.2.1 src/sys/dev/pci/ixgbe/if_sriov.c cvs rdiff -u -r1.54.2.5 -r1.54.2.6 src/sys/dev/pci/ixgbe/ix_txrx.c cvs rdiff -u -r1.199.2.13 -r1.199.2.14 src/sys/dev/pci/ixgbe/ixgbe.c cvs rdiff -u -r1.56.2.4 -r1.56.2.5 src/sys/dev/pci/ixgbe/ixgbe.h cvs rdiff -u -r1.12.8.3 -r1.12.8.4 src/sys/dev/pci/ixgbe/ixgbe_82598.c cvs rdiff -u -r1.21.4.1 -r1.21.4.2 src/sys/dev/pci/ixgbe/ixgbe_82599.c cvs rdiff -u -r1.23.2.1 -r1.23.2.2 src/sys/dev/pci/ixgbe/ixgbe_api.c cvs rdiff -u -r1.1 -r1.1.14.1 src/sys/dev/pci/ixgbe/ixgbe_bypass.h \ src/sys/dev/pci/ixgbe/ixgbe_netmap.h cvs rdiff -u -r1.25.2.3 -r1.25.2.4 src/sys/dev/pci/ixgbe/ixgbe_common.c cvs rdiff -u -r1.9 -r1.9.4.1 src/sys/dev/pci/ixgbe/ixgbe_dcb.c cvs rdiff -u -r1.6 -r1.6.8.1 src/sys/dev/pci/ixgbe/ixgbe_dcb.h \ src/sys/dev/pci/ixgbe/ixgbe_dcb_82598.h \ src/sys/dev/pci/ixgbe/ixgbe_dcb_82599.h cvs rdiff -u -r1.7 -r1.7.8.1 src/sys/dev/pci/ixgbe/ixgbe_dcb_82598.c \ src/sys/dev/pci/ixgbe/ixgbe_dcb_82599.c cvs rdiff -u -r1.2 -r1.2.4.1 src/sys/dev/pci/ixgbe/ixgbe_features.h cvs rdiff -u -r1.11 -r1.11.2.1 src/sys/dev/pci/ixgbe/ixgbe_mbx.c cvs rdiff -u -r1.9.4.3 -r1.9.4.4 src/sys/dev/pci/ixgbe/ixgbe_netbsd.c cvs rdiff -u -r1.11.4.1 -r1.11.4.2 src/sys/dev/pci/ixgbe/ixgbe_netbsd.h cvs rdiff -u -r1.2 -r1.2.2.1 src/sys/dev/pci/ixgbe/ixgbe_netmap.c cvs rdiff -u -r1.23.6.3 -r1.23.6.4 src/sys/dev/pci/ixgbe/ixgbe_osdep.h cvs rdiff -u -r1.18.4.3 -r1.18.4.4 src/sys/dev/pci/ixgbe/ixgbe_phy.c cvs rdiff -u -r1.4 -r1.4.8.1 src/sys/dev/pci/ixgbe/ixgbe_rss.h cvs rdiff -u -r1.3 -r1.3.8.1 src/sys/dev/pci/ixgbe/ixgbe_sriov.h cvs rdiff -u -r1.41.2.2 -r1.41.2.3 src/sys/dev/pci/ixgbe/ixgbe_type.h cvs rdiff -u -r1.18.2.3 -r1.18.2.4 src/sys/dev/pci/ixgbe/ixgbe_vf.c cvs rdiff -u -r1.16.8.1 -r1.16.8.2 src/sys/dev/pci/ixgbe/ixgbe_x540.c cvs rdiff -u -r1.8 -r1.8.8.1 src/sys/dev/pci/ixgbe/ixgbe_x540.h cvs rdiff -u -r1.15.2.3 -r1.15.2.4 src/sys/dev/pci/ixgbe/ixgbe_x550.c cvs rdiff -u -r1.5 -r1.5.4.1 src/sys/dev/pci/ixgbe/ixgbe_x550.h cvs rdiff -u -r1.125.2.11 -r1.125.2.12 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.