Add Linux kmemleak support to ZTS
- Kmemleak `clear` is invoked right before every test case run.
- Kmemleak `scan` is requested right after each test case is finished.
- Kmemleak instrumentation is not used for
setup/cleanup/pretest/posttest/failsafe stages to shorten the test
case execution time.
- Kmemleak periodic scan is disabled (`scan=0`) before the test suite
run to avoid interfering with the on-demand scan results.
- There are unavoidable potential false positives coming from kernel
areas other than OpenZFS module.
- The ZTS with kmemleak enabled duration is increased by ~50%.
Example run
```
Running Time: 07:12:13
Percent passed: 98.3%
unreferenced object 0xffff9da82aea5410 (size 80):
comm "kworker/u32:10", pid 942206, jiffies
4296749716 (age 2615.516s)
hex dump (first 32 bytes):
00 30 30 00 00 00 00 00 ff 8f 30 00 00 00 00 00 .00.......0.....
51 e6 77 05 a8 9d ff ff 00 00 00 00 00 00 00 00 Q.w.............
backtrace:
[<
000000005cf1fea2>] alloc_extent_state+0x1d/0xb0 [btrfs]
[<
0000000083f78ae5>] set_extent_bit+0x2ff/0x670 [btrfs]
[<
00000000de29249e>] lock_extent_bits+0x6b/0xa0 [btrfs]
[<
00000000b241f424>] lock_and_cleanup_extent_if_need+0xaf/0x1c0
[btrfs]
[<
0000000093ca72b5>] btrfs_buffered_write+0x297/0x7d0 [btrfs]
[<
000000002c2938c8>] btrfs_file_write_iter+0x127/0x390 [btrfs]
[<
00000000b888f720>] do_iter_readv_writev+0x152/0x1b0
[<
00000000320f0bcc>] do_iter_write+0x7c/0x1c0
[<
000000000b5a8fe0>] lo_write_bvec+0x62/0x150 [loop]
[<
000000009aa03c73>] loop_process_work+0x250/0xbd0 [loop]
[<
00000000c7487d8a>] process_one_work+0x1f1/0x390
[<
000000000b236831>] worker_thread+0x53/0x3e0
[<
0000000023cb3e57>] kthread+0x127/0x150
[<
000000002d48676a>] ret_from_fork+0x22/0x30
```
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes #13084