tcp: improve testing of HPTSImprove the HPTS API to allow testing and add several tests.Reviewed by: tuexenSponsored by: Netflix, Inc.
tcp: Initial ktest for HPTSReviewed by: rrs, tuexenSponsored by: Netflix, Inc.Differential Revision: https://reviews.freebsd.org/D52979
epoch_test: Assign different priorities using offset 1Replace the hardcoded 4 (old RQ_PPQ) by 1 (new RQ_PPQ), as all prioritylevels are now treated differently.MFC after: 1 monthEvent:
epoch_test: Assign different priorities using offset 1Replace the hardcoded 4 (old RQ_PPQ) by 1 (new RQ_PPQ), as all prioritylevels are now treated differently.MFC after: 1 monthEvent: Kitchener-Waterloo Hackathon 202506Sponsored by: The FreeBSD Foundation
show more ...
machine/stdarg.h -> sys/stdarg.hSwitch to using sys/stdarg.h for va_list type and va_* builtins.Make an attempt to insert the include in a sensible place. Wherestyle(9) was followed this is eas
machine/stdarg.h -> sys/stdarg.hSwitch to using sys/stdarg.h for va_list type and va_* builtins.Make an attempt to insert the include in a sensible place. Wherestyle(9) was followed this is easy, where it was ignored, aim for thefirst block of sys/*.h headers and don't get too fussy or try to fixother style bugs.Reviewed by: impExp-run by: antoine (PR 286274)Pull Request: https://github.com/freebsd/freebsd-src/pull/1595
netlink: refactor KPI for generic Netlink modulesNow that the family and group are completely private to netlink_generic.c,provide a simple and robust KPI, that would require very simple guarantee
netlink: refactor KPI for generic Netlink modulesNow that the family and group are completely private to netlink_generic.c,provide a simple and robust KPI, that would require very simple guaranteesfrom both KPI and the module:* Strings are used only for family and group registration, that return ID: uint16_t genl_register_family(const char *name, ... uint32_t genl_register_group(uint16_t family, const char *name, ...* Once created families and groups are guaranteed to not disappear and be addressable by their ID.* All subsequent calls, including deregistration shall use ID.Reviewed by: kpDifferential Revision: https://reviews.freebsd.org/D48845
netlink: use nitems() and roundup(2) from param.hWhile here style nested includes (kernel ones go first).Reviewed by: melifaroDifferential Revision: https://reviews.freebsd.org/D47557
tests: Stop checking for failures from malloc(M_WAITOK)MFC after: 1 weekDifferential Revision: https://reviews.freebsd.org/D45852
callout: retire callout_async_drain()This function was used only in TCP before 446ccdd08e2a. It was born inpain in 2016 to plug different complex panics in TCP timers. It wasn'twarmly accepted
callout: retire callout_async_drain()This function was used only in TCP before 446ccdd08e2a. It was born inpain in 2016 to plug different complex panics in TCP timers. It wasn'twarmly accepted in phabricator by all of the reviewers and my recollectionof overall agreement was that "if you need this KPI, then you'd better fixyour code to not need it". However, the function served its duty well allthe way to FreeBSD 14. But now that TCP doesn't need it anymore, let'sretire it to reduce complexity of callout code and also to avoid itsfurther use.Reviewed by: jhb, markj, kib, rrsDifferential Revision: https://reviews.freebsd.org/D43546
sys: Automated cleanup of cdefs and other formattingApply the following automated changes to try to eliminateno-longer-needed sys/cdefs.h includes as well as now-emptyblank lines in a row.Remov
sys: Automated cleanup of cdefs and other formattingApply the following automated changes to try to eliminateno-longer-needed sys/cdefs.h includes as well as now-emptyblank lines in a row.Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/Remove /\n+#if.*\n#endif.*\n+/Remove /^#if.*\n#endif.*\n/Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/Sponsored by: Netflix
netlink: move NETLINK define to opt_global.hMove the NETLINK define into opt_global.h so we can rely on it beingset correctly, without having to remember to include opt_netlink.h.This ensures tha
netlink: move NETLINK define to opt_global.hMove the NETLINK define into opt_global.h so we can rely on it beingset correctly, without having to remember to include opt_netlink.h.This ensures that the NETLINK define is correctly set. If not wemay end up with unloadable modules, due to missing symbols (such asnlmsg_get_group_writer).PR: 274306Reviewed by: imp, markjMFC after: 3 daysDifferential Revision: https://reviews.freebsd.org/D42179
sys: Remove $FreeBSD$: one-line sh patternRemove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
sys: Remove $FreeBSD$: one-line .c patternRemove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
sys: Remove $FreeBSD$: one-line .c comment patternRemove /^/[*/]\s*\$FreeBSD\$.*\n/
ktest: make ktest work with Netlink loaded as a module.MFC after: 2 weeks
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSDThe SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catchup to that fact and revert to their recommended match of
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSDThe SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catchup to that fact and revert to their recommended match of BSD-2-Clause.Discussed with: pfgMFC After: 3 daysSponsored by: Netflix
tests: make ktest build on ppc.MFC after: 2 weeks
Testing: add framework for the kernel unit tests.This changes intends to reduce the bar to the kernel unit-testing by introducing a new kernel-testing framework ("ktest") based on Netlink, loadab
Testing: add framework for the kernel unit tests.This changes intends to reduce the bar to the kernel unit-testing by introducing a new kernel-testing framework ("ktest") based on Netlink, loadable test modules and python test suite integration.This framework provides the following features:* Integration to the FreeBSD test suite* Automatic test discovery* Automatic test module loading* Minimal boiler-plate code in both kernel and userland* Passing any metadata to the test* Convenient environment pre-setup using python testing framework* Streaming messages from the kernel to the userland* Running tests in the dedicated taskqueues* Skipping or parametrizing testsDifferential Revision: https://reviews.freebsd.org/D39385MFC after: 2 weeks
routing: add IPv6 fib validation procedure.Allow consistency validation of the inet6 fib based on rib data.Validation can be kicked off by loading test_lookup module and running sysctl net.route.
routing: add IPv6 fib validation procedure.Allow consistency validation of the inet6 fib based on rib data.Validation can be kicked off by loading test_lookup module and running sysctl net.route.test.run_inet6_scan=1MFC after: 1 week
routing: Use process fib instead of fib 0 when conducting tests.* Allow to do validation/performance tests by using process fib instead of default fib 0.* Print all validation errors instead of j
routing: Use process fib instead of fib 0 when conducting tests.* Allow to do validation/performance tests by using process fib instead of default fib 0.* Print all validation errors instead of just the first one.MFC after: 1 week
tests: Revise FIB lookups per second benchmarking routinesFix a bug in the LPM SEQ benchmark (missing break inside a switch block)by restructuring the test loop, while introducing additional twos
tests: Revise FIB lookups per second benchmarking routinesFix a bug in the LPM SEQ benchmark (missing break inside a switch block)by restructuring the test loop, while introducing additional twosynthetic test options:ANN: scan only the address space announced in current RIBREP: repeat lookups over several keys in a sliding window schemeThe total of eight combinations of test options are now availablethrough dedicated sysctl hooks.Differential Revision: <https://reviews.freebsd.org/D30311>Reviewed by: melifaroMFC after: 3 days
Revise FIB lookups per second benchmarking routines.Add a LPS benchmark variant which introduces artificial dependenciesbetween successive lookups. While here, instead of writing the resultsfrom
Revise FIB lookups per second benchmarking routines.Add a LPS benchmark variant which introduces artificial dependenciesbetween successive lookups. While here, instead of writing the resultsfrom the lookups to a huge array, add them to an accumulator, in a morelightweight attempt at preventing the CPU's OOO machinery fromdiscarding the lookup results if they would be completely unused.net.route.test.run_lps_rnd measures LPS throughput with independentuniformly random keysnet.route.test.run_lps_seq measures LPS throughput with uniformlyrandom keys with artificial interdependenciesReviewed by: melifaroMFC after: 7 daysDifferential Revision: https://reviews.freebsd.org/D30096
Add IPv4 fib lookup performance tests with uniform keys.Submitted by: zecMFC after: 1 week
Enable running fib tests inside vnet jail.
Add fib lookup testing module.This module intended to measure performance of routing lookups.Uses a list of IP addresses specified by sysctl one-by-one.Performance testing is triggered by changi
Add fib lookup testing module.This module intended to measure performance of routing lookups.Uses a list of IP addresses specified by sysctl one-by-one.Performance testing is triggered by changing sysctl OID with a number of lookups to execute.Lookups are done by the chunks of 10K routes, entering/exiting epoch on chunk granularity to amortise cost.Example:make -C sys/modules/test/fib_lookup unload loadfor i in `cat ~/ip4.txt`; do sysctl net.route.test.add_inet_addr=$i; donefor i in `cat ~/ip6.txt`; do sysctl net.route.test.add_inet6_addr=$i; donesysctl net.route.test.run_inet=10000000dmesg | tailDec 13 23:24:05 current kernel: 10000000 packets in 417240173 nanoseconds, 23967011 ppsDec 13 23:24:06 current kernel: run: 10000000 packets vnet 0xfffff80003073f00Dec 13 23:24:07 current kernel: 10000000 packets in 423086254 nanoseconds, 23635842 ppsDifferential Revision: https://reviews.freebsd.org/D27604
Add small tool to invoke kernel test framework tests.MFC after: 1 weekSponsored by: Mellanox Technologies // NVIDIA Networking
12