zfs: merge openzfs/zfs@f8e5af53eNotable upstream pull request merges: #17358 4975430cf Add vdev property to disable vdev scheduler #18031 c77f17b75 Add snapshots_changed_nsecs dataset property #
zfs: merge openzfs/zfs@f8e5af53eNotable upstream pull request merges: #17358 4975430cf Add vdev property to disable vdev scheduler #18031 c77f17b75 Add snapshots_changed_nsecs dataset property #18080 dbb3f247e cmd/zfs: clone: accept `-u` to not mount newly created datasets #18089 -multiple Zstd: Update bundled library to version 1.5.7 #18091 2301755df Fix zfs_open() to skip zil_async_to_sync() for the snapshot #18093 -multiple L2ARC: Rework write throttling with DWPD rate limiting and parallel writes #18095 2dbd6af5e Rename several printf attributes declarations to __printf__ #18096 8605bdfdd FreeBSD: unbreak compilation on i386 #18105 794f1587d When receiving a stream with the large block flag, activate feature #18115 765929cb4 DDT: Add locking for table ZAP destruction #18118 09e4e01e9 Fix history logging for `zpool create -t` #18119 2f1f25217 icp: emit .note.GNU-stack section for all ELF targets #18131 3fffe4e70 Fix --enable-invariants on FreeBSD #18133 d2f5cb3a5 Move range_tree, btree, highbit64 to common code #18136 54b141fab FreeBSD: Remove references to DEBUG_VFS_LOCKS #18138 cdf89f413 Flush RRD only when TXGs contain data #18139 a157ef62a Make sure we can still write data to txg #18140 cd895f0e5 remove thread unsafe debug code causing FreeBSD double free panic #18144 4f180e095 Fix activating large_microzap on receive #18146 35b2d3970 Lock db_mtx around arc_release() in couple places #18154 b36472052 nvpair: chase FreeBSD xdrproc_t definition #18160 21bbe7cb6 Improve caching for dbuf prefetches #18177 -multiple Multihost Improvements #18179 2646bd558 Allow rewrite skip cloned and snapshotted blocks #18180 aa29455dd Restrict cloning with different properties #18184 040ba7a7c libzfs: improve error message for zpool create with ENXIO #18188 1412bdc6c zfs_vnops_os.c: Move a vput() to after zfs_setattr_dir() #18198 cc184fe98 Fix `send:raw` permission for send `-w -I` #18208 ba970eb20 Cleanup allocation class selection #18212 0f9564e85 Simplify dnode_level_is_l2cacheable() #18214 370570890 Remove parent ZIO from dbuf_prefetch() #18218 bfb276e55 freebsd: Fix TIMESPEC_OVERFLOW for PowerPC #18222 d06a1d9ac Fix available space accounting for special/dedup #18225 d48967728 ICP: AES-GCM VAES-AVX2: fix typos and document source files #18226 c8a72a27e ICP: AES-GCM assembly: remove unused Gmul functions #18230 -multiple Fix zdb --key crash for unencrypted datasets, and teach tests to understand this better #18233 -multiple icp: add SHA-512 implementation using Intel SHA512 extension #18245 991fc56fa Introduce dedupused/dedupsaved pool properties #18251 6a717f31e Improve misleading error messages for ZPOOL_STATUS_CORRUPT_POOL #18254 7744f0496 SIMD: libspl: test the correct CPUID bit for AVX512VL #18255 6495dafd5 range_tree: use zfs_panic_recover() for partial-overlap remov #18256 3408332d7 zhack: Fix importing large allocation profiles on small pools #18258 f8457fbdc Fix deadlock on dmu_tx_assign() from vdev_rebuild() #18263 f8e5af53e Fix redundant declaration of dsl_pool_tObtained from: OpenZFSOpenZFS commit: f8e5af53e92fa7c03393fbd4922cb9c1d0c15920
show more ...
sdt: Enable on 32-bit powerpc and powerpc64leReviewed by: jhibbits, adrianMFC after: 1 weekDifferential Revision: https://reviews.freebsd.org/D54814
dtraceall: Enable kinst for aarch64 and riscv as wellaarch64 and riscv are supported since 2023 so it should be safe toenable it by default.MFC after: 2 weeksReviewed by: markjDifferential Rev
dtraceall: Enable kinst for aarch64 and riscv as wellaarch64 and riscv are supported since 2023 so it should be safe toenable it by default.MFC after: 2 weeksReviewed by: markjDifferential Revision: https://reviews.freebsd.org/D52575
dtrace: Build systrace_freebsd32 only if COMPAT_FREEBSD32 is configuredMFC after: 1 weekSponsored by: Innovate UK
dtraceall: Make dtaudit a dependencyReported by: tsoomeReviewed by: tsoomeSponsored by: Klara, Inc.Differential Revision: https://reviews.freebsd.org/D46274
dtrace: Avoid including dtrace_isa.c directly into dtrace.cThis was done in the original DTrace import, presumably because thatmade it a bit easier to handle includes. However, this can causedtr
dtrace: Avoid including dtrace_isa.c directly into dtrace.cThis was done in the original DTrace import, presumably because thatmade it a bit easier to handle includes. However, this can causedtrace_getpcstack() to be inlined into dtrace_probe(), resulting in amissing frame in stack traces since dtrace_getpcstack() takes care tobump "aframes" to account for its own stack frame.To avoid this, compile dtrace_isa.c separately on all platforms. Addrequisite includes.MFC after: 2 weeksSponsored by: Innovate UK
Remove residual blank line at start of MakefileThis is a residual of the $FreeBSD$ removal.MFC After: 3 days (though I'll just run the command on the branches)Sponsored by: Netflix
sdt: Implement SDT probes using hot-patchingThe idea here is to avoid a memory access and conditional branch perprobe site. Instead, the probe is represented by an "unreachable"unconditional fun
sdt: Implement SDT probes using hot-patchingThe idea here is to avoid a memory access and conditional branch perprobe site. Instead, the probe is represented by an "unreachable"unconditional function call. asm goto is used to store the address ofthe probe site (represented by a no-op sled) and the address of thefunction call into a tracepoint record. Each SDT probe carries a listof tracepoints.When the probe is enabled, the no-op sled corresponding to eachtracepoint is overwritten with a jmp to the corresponding label. Theimplementation uses smp_rendezvous() to park all other CPUs while theinstruction is being overwritten, as this can't be done atomically ingeneral. The compiler moves argument marshalling code and thesdt_probe() function call out-of-line, i.e., to the end of the function.Per gallatin@ in D43504, this approach has less overhead when probes aredisabled. To make the implementation a bit simpler, I removed supportfor probes with 7 arguments; nothing makes use of this except aregression test case. It could be re-added later if need be.The approach taken in this patch enables some more improvements:1. We can now automatically fill out the "function" field of SDT probe names. The SDT macros let the programmer specify the function and module names, but this is really a bug and shouldn't have been allowed. The intent was to be able to have the same probe in multiple functions and to let the user restrict which probes actually get enabled by specifying a function name or glob.2. We can avoid branching on SDT_PROBES_ENABLED() by adding the ability to include blocks of code in the out-of-line path. For example: if (SDT_PROBES_ENABLED()) { int reason = CLD_EXITED; if (WCOREDUMP(signo)) reason = CLD_DUMPED; else if (WIFSIGNALED(signo)) reason = CLD_KILLED; SDT_PROBE1(proc, , , exit, reason); }could be written SDT_PROBE1_EXT(proc, , , exit, reason, int reason; reason = CLD_EXITED; if (WCOREDUMP(signo)) reason = CLD_DUMPED; else if (WIFSIGNALED(signo)) reason = CLD_KILLED; );In the future I would like to use this mechanism more generally, e.g.,to remove branches and marshalling code used by hwpmc, and generally tomake it easier to add new tracepoint consumers without having to addmore conditional branches to hot code paths.Reviewed by: Domagoj Stolfa, avgMFC after: 2 monthsDifferential Revision: https://reviews.freebsd.org/D44483
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
sys: Remove $FreeBSD$: one-line sh patternRemove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
sys: Remove $FreeBSD$: two-line .h patternRemove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
kinst: port to arm64Reviewed by: markjApproved by: markj (mentor)Sponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D40337
kinst: port to riscvReviewed by: markjApproved by: markj (mentor)Sponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D39884
kinst: accommodate other architectures in MakefileReviewed by: markjApproved by: markj (mentor)Sponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D40871
dtrace: implement dtrace_instr_size() for arm64Reviewed by: markjApproved by; markj (mentor)Sponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D39955
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
dtrace: expose dtrace_instr_size() to userland and implement it for riscvdtrace_instr_size() is needed by the forthcoming RISC-V port of kinst,as well as by libdtrace in D38825 for both amd64 and
dtrace: expose dtrace_instr_size() to userland and implement it for riscvdtrace_instr_size() is needed by the forthcoming RISC-V port of kinst,as well as by libdtrace in D38825 for both amd64 and RISC-V.Reviewed by: markj, mhorneMFC after: 1 weekSponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D39489
sys: Retire OPENZFS_CWARNFLAGS now that it is empty.Reviewed by: markj, emasteDifferential Revision: https://reviews.freebsd.org/D39217
dtrace: whack __mips__ from dtraceallNote contrib code is not modified.Sponsored by: Rubicon Communications, LLC ("Netgate")
dtrace: include fbt module unconditionallyIt is supported on all platforms.Reviewed by: markjSponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D37658
dtrace: Load fasttrap on powerpc with dtraceallThis was missing from the original port of DTrace to powerpc 10 yearsago.MFC after: 3 weeks
dtrace: Add pid provider to the build for powerpcThe fasttrap pid provider has been in place for a long time, but stoppedgetting built by efe88d92da in preparation for 64-bit atomics. 32-bitemul
dtrace: Add pid provider to the build for powerpcThe fasttrap pid provider has been in place for a long time, but stoppedgetting built by efe88d92da in preparation for 64-bit atomics. 32-bitemulation of 64-bit atomics was added in 9aafc7c05.MFC after: 3 weeks
dtraceall: Automatically load kinst.ko on amd64MFC after: 3 months
kinst: Initial revisionThis is a new DTrace provider which allows arbitrary kernel instructionsto be traced. Currently it is implemented only for amd64.kinst probes are created on demand by lib
kinst: Initial revisionThis is a new DTrace provider which allows arbitrary kernel instructionsto be traced. Currently it is implemented only for amd64.kinst probes are created on demand by libdtrace, and there is a probefor each kernel instruction. Probes are namedkinst:<module>:<function>:<offset>, where "offset" is the offset of thetarget instruction relative to the beginning of the function. Omitting"offset" causes all instructions in the function to be traced.kinst works similarly to FBT in that it places a breakpoint on thetarget instruction and hooks into the kernel breakpoint handler.Because kinst has to be able to trace arbitrary instructions, it doesnot emulate most of them in software but rather causes the traced threadto execute a copy of the instruction before returning to the originalcode.The provider is quite low-level and as-is will be useful mostly only tokernel developers. However, it provides a great deal of visibility intokernel code execution and could be used as a building block forhigher-level tooling which can in some sense translate between C sourcesand generated machine code. In particular, the "regs" variable recentlyadded to D allows the CPU's register file to be accessed from kinstprobes.kinst is experimental and should not be used on production systems fornow.In collaboration with: markjSponsored by: Google, Inc. (GSoC 2022)MFC after: 3 monthsDifferential Revision: https://reviews.freebsd.org/D36851
mips: Remove dtrace build supportSponsored by: Netflix
12345