MFC r339703:Deprecate a number of less used 10 and 10/100 Ethernet devices.The current deprecated list is: ae, bm, cs, de, dme, ed, ep, ex, fe,pcn, sf, sn, tl, tx, txp, vx, wb, xeThe list was
MFC r339703:Deprecate a number of less used 10 and 10/100 Ethernet devices.The current deprecated list is: ae, bm, cs, de, dme, ed, ep, ex, fe,pcn, sf, sn, tl, tx, txp, vx, wb, xeThe list was defined as part of FCP-0101. Per the FCP, devices may beremoved from the deprecation list if enough users are found or they areconverted to iflib.FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.mdApproved by: re (gjb)Reviewed by: rgrimesDifferential Revision: https://reviews.freebsd.org/D17654
show more ...
ifnet: Replace if_addr_lock rwlock with epoch + mutexRun on LLNW canaries and tested by pho@gallatin:Using a 14-core, 28-HTT single socket E5-2697 v3 with a 40GbE MLX5based ConnectX 4-LX NIC, I
ifnet: Replace if_addr_lock rwlock with epoch + mutexRun on LLNW canaries and tested by pho@gallatin:Using a 14-core, 28-HTT single socket E5-2697 v3 with a 40GbE MLX5based ConnectX 4-LX NIC, I see an almost 12% improvement in receivedpacket rate, and a larger improvement in bytes delivered all the wayto userspace.When the host receiving 64 streams of netperf -H $DUT -t UDP_STREAM -- -m 1,I see, using nstat -I mce0 1 before the patch:InMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree4.98 0.00 4.42 0.00 4235592 33 83.80 4720653 2149771 1235 247.324.73 0.00 4.20 0.00 4025260 33 82.99 4724900 2139833 1204 247.324.72 0.00 4.20 0.00 4035252 33 82.14 4719162 2132023 1264 247.324.71 0.00 4.21 0.00 4073206 33 83.68 4744973 2123317 1347 247.324.72 0.00 4.21 0.00 4061118 33 80.82 4713615 2188091 1490 247.324.72 0.00 4.21 0.00 4051675 33 85.29 4727399 2109011 1205 247.324.73 0.00 4.21 0.00 4039056 33 84.65 4724735 2102603 1053 247.32After the patchInMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree5.43 0.00 4.20 0.00 3313143 33 84.96 5434214 1900162 2656 245.515.43 0.00 4.20 0.00 3308527 33 85.24 5439695 1809382 2521 245.515.42 0.00 4.19 0.00 3316778 33 87.54 5416028 1805835 2256 245.515.42 0.00 4.19 0.00 3317673 33 90.44 5426044 1763056 2332 245.515.42 0.00 4.19 0.00 3314839 33 88.11 5435732 1792218 2499 245.525.44 0.00 4.19 0.00 3293228 33 91.84 5426301 1668597 2121 245.52Similarly, netperf reports 230Mb/s before the patch, and 270Mb/s after the patchReviewed by: gallatinSponsored by: Limelight NetworksDifferential Revision: https://reviews.freebsd.org/D15366
Fall back to ether_ioctl() by default.The common pratice in ethernet device drivers is to fall back toether_ioctl() to implement generic ioctls not implemented by the driverand to fail if no hand
Fall back to ether_ioctl() by default.The common pratice in ethernet device drivers is to fall back toether_ioctl() to implement generic ioctls not implemented by the driverand to fail if no handler exists.Convert these drivers to follow that practice rather than callingether_ioctl() for specific cases.vxge(4) aready had the default case, but it was only called on failureto match.Reviewed by: impObtained from: CheriBSDSponsored by: DARPA, AFRLDifferential Revision: https://reviews.freebsd.org/D14895
Create a new ISA_PNP_INFO macro. Use this macro every where we haveISA PNP card support (replace by hand version in if_ed). Move moduledeclarations to the end of some files. Fix PCCARD_PNP_INFO to
Create a new ISA_PNP_INFO macro. Use this macro every where we haveISA PNP card support (replace by hand version in if_ed). Move moduledeclarations to the end of some files. Fix PCCARD_PNP_INFO to usenitems(). Remove some stale comments about pc98, turns out the commentwas simply wrong.
sys/dev: further adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - error
sys/dev: further adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - errorprone - task.The Software Package Data Exchange (SPDX) group provides a specificationto make it easier for automated tools to detect and summarize well knownopensource licenses. We are gradually adopting the specification, notingthat the tags are considered only advisory and do not, in any way,superceed or replace the license texts.
remove archaic register keyword from ixgb and exReviewed by: sbruno
Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO buildingblock. Use it in all the PNP drivers to export either the current PNPtable. For uart, create a custom table and export it usingMOD
Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO buildingblock. Use it in all the PNP drivers to export either the current PNPtable. For uart, create a custom table and export it usingMODULE_PNP_INFO since it's the only one that matches on functionnumber.Differential Review: https://reviews.freebsd.org/D3461
In order to reduce use of M_EXT outside of the mbuf allocator andsocket-buffer implementations, introduce a return value for MCLGET()(and m_cljget() that underlies it) to allow the caller to avoid
In order to reduce use of M_EXT outside of the mbuf allocator andsocket-buffer implementations, introduce a return value for MCLGET()(and m_cljget() that underlies it) to allow the caller to avoid testingM_EXT itself. Update all callers to use the return value.With this change, very few network device drivers remain aware ofM_EXT; the primary exceptions lie in mbuf-chain pretty printers fordebugging, and in a few cases, custom mbuf and cluster allocationimplementations.NB: This is a difficult-to-test change as it touches many drivers forwhich I don't have physical devices. Instead we've gone for intensivereview, but further post-commit review would definitely be appreciatedto spot errors where changes could not easily be made mechanically,but were largely mechanical in nature.Differential Revision: https://reviews.freebsd.org/D1440Reviewed by: adrian, bz, gnnSponsored by: EMC / Isilon Storage Division
Mechanically convert to if_inc_counter().
The r48589 promised to remove implicit inclusion of if_var.h soon. Prepareto this event, adding if_var.h to files that do need it. Also, includeall includes that now are included due to implicit po
The r48589 promised to remove implicit inclusion of if_var.h soon. Prepareto this event, adding if_var.h to files that do need it. Also, includeall includes that now are included due to implicit pollution via if_var.hSponsored by: NetflixSponsored by: Nginx, Inc.
Mechanically substitute flags from historic mbuf allocator withmalloc(9) flags in sys/dev.
Convert files to UTF-8
ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it againReviewed by: yongari
Add new tunable 'net.link.ifqmaxlen' to set default send interfacequeue length. The default value for this parameter is 50, which isquite low for many of today's uses and the only way to modify thi
Add new tunable 'net.link.ifqmaxlen' to set default send interfacequeue length. The default value for this parameter is 50, which isquite low for many of today's uses and the only way to modify thisparameter right now is to edit if_var.h file. Also add read-onlysysctl with the same name, so that it's possible to retrieve thecurrent value.MFC after: 1 month
Replace several instances of 'if (!a & b)' with 'if (!(a &b))' in orderto silence newer GCC versions.
Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/IF_ADDR_UNLOCK() across network device drivers when accessing theper-interface multicast address list, if_multiaddrs. This willa
Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/IF_ADDR_UNLOCK() across network device drivers when accessing theper-interface multicast address list, if_multiaddrs. This willallow us to change the locking strategy without affecting our driverprogramming interface or binary interface.For two wireless drivers, remove unnecessary locking, since theydon't actually access the multicast address list.Approved by: re (kib)MFC after: 6 weeks
Add preliminary support for the OLICOM OC2231 and OC2232. This is thefirst driver that does the configuration dance with CFE's. There'slikely some additional configuration that's needed to get th
Add preliminary support for the OLICOM OC2231 and OC2232. This is thefirst driver that does the configuration dance with CFE's. There'slikely some additional configuration that's needed to get thingsworking completely...
Some PC Card variants of the 82365 don't seem to like setting the IRQnumber in the irq register. While there are other issues with thesevariants, avoiding writing to it helps interrupt generation
Some PC Card variants of the 82365 don't seem to like setting the IRQnumber in the irq register. While there are other issues with thesevariants, avoiding writing to it helps interrupt generation on atleast one card, and doesn't hurt on the others. Flag ISA attachmentas needing INT_NO_REG written, and don't update the PC Card attachment(which will have the effect of not touching it for PC Cards).Document this in a comment, and tweak one or two formatting nits whileI'm here.
Make ex(4) MPSAFE:- Add a mutex to the softc to protect the softc and device hardware.- Use a private watchdog timer.- Setup interrupt handler after ether_ifattach().- Use bus_foo() rather than b
Make ex(4) MPSAFE:- Add a mutex to the softc to protect the softc and device hardware.- Use a private watchdog timer.- Setup interrupt handler after ether_ifattach().- Use bus_foo() rather than bus_space_foo() and remove bus space tag and handle from softc.Tested by: imp
s/destory/destroy/ (except for the code in contrib/).
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()o add an int return code to all fast handlerso retire INTR_FAST/IH_FASTFor more info: http://docs.freebsd.org
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()o add an int return code to all fast handlerso retire INTR_FAST/IH_FASTFor more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-currentReviewed by: manyApproved by: re@
Remove ifdef notyet SIOCGHWADDR vestige.
- 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 on
- 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.
Catch up with IFP2ENADDR() type change (array -> pointer).
Fix "struct ifnet" leaks when attach() fails in the middle.
1234