sys: Remove $FreeBSD$: one-line .c patternRemove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
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
show more ...
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@