kinst: accommodate other architectures in MakefileReviewed by: markjApproved by: markj (mentor)Sponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D40871
sys: Retire OPENZFS_CWARNFLAGS now that it is empty.Reviewed by: markj, emasteDifferential Revision: https://reviews.freebsd.org/D39217
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
show more ...