DTrace: remove sparc64 remnants in non-contrib codeSponsored by: The FreeBSD Foundation(cherry picked from commit 64a790d264808116469914c19265e905b3929e00)
Tune DTrace 'aframes' for the FBT and profile providers on arm64.In both cases, too few frames were trimmed, leading to exception handlingor DTrace internals being exposed in stack traces exposed
Tune DTrace 'aframes' for the FBT and profile providers on arm64.In both cases, too few frames were trimmed, leading to exception handlingor DTrace internals being exposed in stack traces exposed by D's stack()primitive.Reviewed by: emaste, andrewDifferential Revision: https://reviews.freebsd.org/D29356(cherry picked from commit 599fb1d198ec6792ba062114d2589ca9f01a3568)
show more ...
Merge OpenZFS support in to HEAD.The primary benefit is maintaining a completely sharedcode base with the community allowing FreeBSD to receivenew features sooner and with less effort.I would a
Merge OpenZFS support in to HEAD.The primary benefit is maintaining a completely sharedcode base with the community allowing FreeBSD to receivenew features sooner and with less effort.I would advise against doing 'zpool upgrade'or creating indispensable pools using newfeatures until this change has had a month+to soak.Work on merging FreeBSD support in to what wasat the time "ZFS on Linux" began in August 2018.I first publicly proposed transitioning FreeBSDto (new) OpenZFS on December 18th, 2018. FreeBSDsupport in OpenZFS was finally completed in December2019. A CFT for downstreaming OpenZFS support into FreeBSD was first issued on July 8th. All issuesthat were reported have been addressed or, fora couple of less critical matters there arepull requests in progress with OpenZFS. iXsystemshas tested and dogfooded extensively internally.The TrueNAS 12 release is based on OpenZFS withsome additional features that have not yet madeit upstream.Improvements include: project quotas, encrypted datasets, allocation classes, vectorized raidz, vectorized checksums, various command line improvements, zstd compression.Thanks to those who have helped along the way:Ryan Moeller, Allan Jude, Zack Welch, and manyothers.Sponsored by: iXsystems, Inc.Differential Revision: https://reviews.freebsd.org/D25872
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
Revert r326083, it doesn't behave as expected.Even though there do appear to be more artificial frames, with 12, stacktraces no longer list at all. Revert until a better, more stable value canbe
Revert r326083, it doesn't behave as expected.Even though there do appear to be more artificial frames, with 12, stacktraces no longer list at all. Revert until a better, more stable value canbe determined.
PowerPC has 12 artificial frames for the profilerIt may need to be different between AIM and Book-E, this was tested only onBook-E (64- and 32-bit)MFC after: 3 weeks
Use C99 initializers for DTrace provider methods.This makes the definitions easier to read and more cscope-friendly.MFC after: 1 week
o Replace __riscv__ with __riscvo Replace __riscv64 with (__riscv && __riscv_xlen == 64)This is required to support new GCC 7.1 compiler.This is compatible with current GCC 6.1 compiler.RISC-V
o Replace __riscv__ with __riscvo Replace __riscv64 with (__riscv && __riscv_xlen == 64)This is required to support new GCC 7.1 compiler.This is compatible with current GCC 6.1 compiler.RISC-V is extensible ISA and the idea here is to have built-in defineper each extension, so together with __riscv we will have some subsetof these as well (depending on -march string passed to compiler):__riscv_compressed__riscv_atomic__riscv_mul__riscv_div__riscv_muldiv__riscv_fdiv__riscv_fsqrt__riscv_float_abi_soft__riscv_float_abi_single__riscv_float_abi_double__riscv_cmodel_medlow__riscv_cmodel_medany__riscv_cmodel_pic__riscv_xlenReviewed by: ngieSponsored by: DARPA, AFRLDifferential Revision: https://reviews.freebsd.org/D11901
Ensure that profile and tick probes provide a non-zero PC value.The idle thread may process callouts while reloading the timer incpu_activeclock(). In this case, provide a representative value, &c
Ensure that profile and tick probes provide a non-zero PC value.The idle thread may process callouts while reloading the timer incpu_activeclock(). In this case, provide a representative value, &cpu_idle,instead of 0 for args[0] so that the active thread can be more easilyidentified from the probe.This addresses intermittent failures of the profile-n/tst.argtest.d test.MFC after: 2 weeksSponsored by: Dell EMC IsilonDifferential Revision: https://reviews.freebsd.org/D10651
Add initial DTrace support for RISC-V.Sponsored by: DARPA, AFRLSponsored by: HEIF5
Allow the artificial profile frames to be adjusted as needed by the user.While here update for armv6 to a tested value.Submitted by: Howard Su <[email protected]>Reviewed by: statDifferential
Allow the artificial profile frames to be adjusted as needed by the user.While here update for armv6 to a tested value.Submitted by: Howard Su <[email protected]>Reviewed by: statDifferential Revision: https://reviews.freebsd.org/D4315
First cut of DTrace for AArch64.Reviewed by: andrew, emasteSponsored by: ARM LimitedDifferential Revision: https://reviews.freebsd.org/D2738
CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than tenyears for head. However, it is continuously misused as the mpsafe argumentfor callout_init(9). Deprecate the flag and cle
CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than tenyears for head. However, it is continuously misused as the mpsafe argumentfor callout_init(9). Deprecate the flag and clean up callout_init() callsto make them more consistent.Differential Revision: https://reviews.freebsd.org/D2613Reviewed by: jhbMFC after: 2 weeks
Adjust PROF_ARTIFICIAL_FRAMES in the DTrace profile provider on ARM toskip 10, rather than 9, frames. This appears to work quite well inpractice on the BeagleBone Black, so remove a comment about
Adjust PROF_ARTIFICIAL_FRAMES in the DTrace profile provider on ARM toskip 10, rather than 9, frames. This appears to work quite well inpractice on the BeagleBone Black, so remove a comment about the valuebeing bogus and replace it with a slightly less negative one. However,the number of frames to skip is quite sensitive to details of the timerand interrupt handling paths, so this is necessarily fragile -- but nomore so than on x86.Sponsored by: DARPA, AFRL
Replace the completely arbitrary '3' with '9' for the number of frames toskip using the DTrace 'profile' provider on ARM. This causes stack tracesto skip various driver-and callout-related things
Replace the completely arbitrary '3' with '9' for the number of frames toskip using the DTrace 'profile' provider on ARM. This causes stack tracesto skip various driver-and callout-related things as they do on x86, wherethe likewise arbitrary values are '6' (32-bit) and '10' (64-bit) forsimilar sorts of reasons.MFC after: 3 daysSponsored by: DARPA, AFRL
Initial version of DTrace on ARM32.Submitted by: Howard Su based on work by Oleksandr TymoshenkoReviewed by: ian, andrew, rpaulo, markj
remove opensolaris cyclic code, replace with high-precision calloutsIn the old days callout(9) had 1 tick precision and that was inadequatefor some uses, e.g. DTrace profile module, so we had to e
remove opensolaris cyclic code, replace with high-precision calloutsIn the old days callout(9) had 1 tick precision and that was inadequatefor some uses, e.g. DTrace profile module, so we had to emulate cyclicAPI and behavior. Now we can directly use callout(9) in the very fewplaces where cyclic was used.Differential Revision: https://reviews.freebsd.org/D1161Reviewed by: gnn, jhb, markjMFC after: 2 weeks
Implement DTrace for PowerPC. This includes both 32-bit and 64-bit.There is one known issue: Some probes will display an error message along thelines of: "Invalid address (0)"I tested this wi
Implement DTrace for PowerPC. This includes both 32-bit and 64-bit.There is one known issue: Some probes will display an error message along thelines of: "Invalid address (0)"I tested this with both a simple dtrace probe and dtruss on a few differentbinaries on 32-bit. I only compiled 64-bit, did not run it, but I don't expectproblems without the modules loaded. Volunteers are welcome.MFC after: 1 month
Add device part of DTrace/MIPS code
Custom DTrace kernel module files plus FreeBSD-specific DTrace providers.