mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 18:13:04 +00:00
01732755ee
- x96/kprobes: Use boolean for some function return instead of 0 and 1. - x86/kprobes: Prohibit probing on INT/UD. This prevents user to put kprobe on INTn/INT1/INT3/INTO and UD0/UD1/UD2 because these are used for a special purpose in the kernel. - x86/kprobes: Boost Grp instructions. Because a few percent of kernel instructions are Grp 2/3/4/5 and those are safe to be executed without ip register fixup, allow those to be boosted (direct execution on the trampoline buffer with a JMP). - tracing/probes: Add function argument access from return events (kretprobe and fprobe). This allows user to compare how a data structure field is changed after executing a function. With BTF, return event also accepts function argument access by name. This also includes below patches; . Fix a wrong comment (using "Kretprobe" in fprobe) . Cleanup a big probe argument parser function into three parts, type parser, post-processing function, and main parser. . Cleanup to set nr_args field when initializing trace_probe instead of counting up it while parsing. . Cleanup a redundant #else block from tracefs/README source code. . Update selftests to check entry argument access from return probes. . Documentation update about entry argument access from return probes. -----BEGIN PGP SIGNATURE----- iQFPBAABCgA5FiEEh7BulGwFlgAOi5DV2/sHvwUrPxsFAmXwW4kbHG1hc2FtaS5o aXJhbWF0c3VAZ21haWwuY29tAAoJENv7B78FKz8bH80H/3H6JENlDAjaSLi4vYrP Qyw/cOGIuGu8cDEzkkOaFMol3TY23M7tQZH1lFefvV92gebZ0ttXnrQhSsKeO5XT PCZ6Eoift5rwJCY967W4V6O0DrAkOGHlPtlKs47APJnTXwn8RcFTqWlQmhWg1AfD g/FCWV7cs3eewZgV9iQcLydOoLLgRMr3G3rtPYQbCXhPzze0WTu4dSOXxCTjFe04 riHQy7R+ut6Cur8njpoqZl6bCMkQqAylByXf6wK96HjcS0+ZI7Ivi8Ey3l2aAFen EeIViMU2Bl02XzBszj7Xq2cT/ebYAgDonFW3/5ZKD1YMO6F7wPoVH5OHrQ518Xuw hQ8= =O6l5 -----END PGP SIGNATURE----- Merge tag 'probes-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace Pull probes updates from Masami Hiramatsu: "x86 kprobes: - Use boolean for some function return instead of 0 and 1 - Prohibit probing on INT/UD. This prevents user to put kprobe on INTn/INT1/INT3/INTO and UD0/UD1/UD2 because these are used for a special purpose in the kernel - Boost Grp instructions. Because a few percent of kernel instructions are Grp 2/3/4/5 and those are safe to be executed without ip register fixup, allow those to be boosted (direct execution on the trampoline buffer with a JMP) tracing: - Add function argument access from return events (kretprobe and fprobe). This allows user to compare how a data structure field is changed after executing a function. With BTF, return event also accepts function argument access by name. - Fix a wrong comment (using "Kretprobe" in fprobe) - Cleanup a big probe argument parser function into three parts, type parser, post-processing function, and main parser - Cleanup to set nr_args field when initializing trace_probe instead of counting up it while parsing - Cleanup a redundant #else block from tracefs/README source code - Update selftests to check entry argument access from return probes - Documentation update about entry argument access from return probes" * tag 'probes-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: Documentation: tracing: Add entry argument access at function exit selftests/ftrace: Add test cases for entry args at function exit tracing/probes: Support $argN in return probe (kprobe and fprobe) tracing: Remove redundant #else block for BTF args from README tracing/probes: cleanup: Set trace_probe::nr_args at trace_probe_init tracing/probes: Cleanup probe argument parser tracing/fprobe-event: cleanup: Fix a wrong comment in fprobe event x86/kprobes: Boost more instructions from grp2/3/4/5 x86/kprobes: Prohibit kprobing on INT and UD x86/kprobes: Refactor can_{probe,boost} return type to bool |
||
---|---|---|
.. | ||
samples | ||
test.d | ||
.gitignore | ||
config | ||
ftracetest | ||
ftracetest-ktap | ||
Makefile | ||
README | ||
settings |
Linux Ftrace Testcases This is a collection of testcases for ftrace tracing feature in the Linux kernel. Since ftrace exports interfaces via the debugfs, we just need shell scripts for testing. Feel free to add new test cases. Running the ftrace testcases ============================ At first, you need to be the root user to run this script. To run all testcases: $ sudo ./ftracetest To run specific testcases: # ./ftracetest test.d/basic3.tc Or you can also run testcases under given directory: # ./ftracetest test.d/kprobe/ Contributing new testcases ========================== Copy test.d/template to your testcase (whose filename must have *.tc extension) and rewrite the test description line. * The working directory of the script is <debugfs>/tracing/. * Take care with side effects as the tests are run with root privilege. * The tests should not run for a long period of time (more than 1 min.) These are to be unit tests. * You can add a directory for your testcases under test.d/ if needed. * The test cases should run on dash (busybox shell) for testing on minimal cross-build environments. * Note that the tests are run with "set -e" (errexit) option. If any command fails, the test will be terminated immediately. * The tests can return some result codes instead of pass or fail by using exit_unresolved, exit_untested, exit_unsupported and exit_xfail. Result code =========== Ftracetest supports following result codes. * PASS: The test succeeded as expected. The test which exits with 0 is counted as passed test. * FAIL: The test failed, but was expected to succeed. The test which exits with !0 is counted as failed test. * UNRESOLVED: The test produced unclear or intermidiate results. for example, the test was interrupted or the test depends on a previous test, which failed. or the test was set up incorrectly The test which is in above situation, must call exit_unresolved. * UNTESTED: The test was not run, currently just a placeholder. In this case, the test must call exit_untested. * UNSUPPORTED: The test failed because of lack of feature. In this case, the test must call exit_unsupported. * XFAIL: The test failed, and was expected to fail. To return XFAIL, call exit_xfail from the test. There are some sample test scripts for result code under samples/. You can also run samples as below: # ./ftracetest samples/ TODO ==== * Fancy colored output :)