tests: Stop checking for failures from malloc(M_WAITOK)MFC after: 1 weekDifferential Revision: https://reviews.freebsd.org/D45852(cherry picked from commit aac6c41d4ba9b0a1aef561f6c4bfd284ab369e
tests: Stop checking for failures from malloc(M_WAITOK)MFC after: 1 weekDifferential Revision: https://reviews.freebsd.org/D45852(cherry picked from commit aac6c41d4ba9b0a1aef561f6c4bfd284ab369ebf)
show more ...
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(cherry picked from commit ab393e9548f8cc0ee28499c411963b798ebb38a5)
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
Fix build of epoch_test module.While at it add missing epoch_free() call.MFC after: 1 weekSponsored by: Mellanox Technologies // NVIDIA Networking
Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that arestill not MPSAFE (or already are but aren’t properly mark
Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that arestill not MPSAFE (or already are but aren’t properly marked).Use it in preparation for a general review of all nodes.This is non-functional change that adds annotations to SYSCTL_NODE andSYSCTL_PROC nodes using one of the soon-to-be-required flags.Mark all obvious cases as MPSAFE. All entries that haven't been markedas MPSAFE before are by default marked as NEEDGIANTApproved by: kib (mentor, blanket)Commented by: kib, gallatin, melifaroDifferential Revision: https://reviews.freebsd.org/D23718
Regularize the Netflix copyrightUse recent best practices for Copyright form at the top ofthe license:1. Remove all the All Rights Reserved clauses on our stuff. Where we piggybacked others, u
Regularize the Netflix copyrightUse recent best practices for Copyright form at the top ofthe license:1. Remove all the All Rights Reserved clauses on our stuff. Where we piggybacked others, use a separate line to make things clear.2. Use "Netflix, Inc." everywhere.3. Use a single line for the copyright for grep friendliness.4. Use date ranges in all places for our stuff.Approved by: Netflix Legal (who gave me the form), adrian@ (pmc files)
epoch_test: fix compile- update to new interfaceReported by: manu
epoch(9): Make epochs non-preemptible by defaultThere are risks associated with waiting on a preemptible epoch section.Change the name to make them not be the default and document the issueunder
epoch(9): Make epochs non-preemptible by defaultThere are risks associated with waiting on a preemptible epoch section.Change the name to make them not be the default and document the issueunder CAVEATS.Reported by: markj
epoch: add non-preemptible "critical" variantadds:- epoch_enter_critical() - can be called inside a different epoch, starts a section that will acquire any MTX_DEF mutexes or do anything that
epoch: add non-preemptible "critical" variantadds:- epoch_enter_critical() - can be called inside a different epoch, starts a section that will acquire any MTX_DEF mutexes or do anything that might sleep.- epoch_exit_critical() - corresponding exit call- epoch_wait_critical() - wait variant that is guaranteed that any threads in a section are running.- epoch_global_critical - an epoch_wait_critical safe epoch instanceRequested by: markjApproved by: sbruno
Test priority handling in epoch test.- Double the number of test threads to mp_ncpu*2- Give each thread a different scheduling priority
Add simple preempt safe epoch APIRead locking is over used in the kernel to guarantee liveness. This API makesit easy to provide livenes guarantees without atomics.Includes epoch_test kernel mod
Add simple preempt safe epoch APIRead locking is over used in the kernel to guarantee liveness. This API makesit easy to provide livenes guarantees without atomics.Includes epoch_test kernel module to stress test the API.Documentation will follow initial use case.Test case and improvements to preemption handling in response to discussionwith mjg@Reviewed by: imp@, shurd@Approved by: sbruno@
12