diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2024-11-26 15:25:16 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-11-27 10:28:33 +0000 |
| commit | 4f0d9df0078216bcadfc7d4a744a160a1d3659be (patch) | |
| tree | 551a402090bd19e9d98e678dc28a6d2d19d3944b /sys/linux/test | |
| parent | 52b38cc1f0ef7be017dc51c45e16a1054254f95f (diff) | |
pkg/ifaceprobe: add package
Package ifaceprobe implements dynamic component of automatic kernel interface extraction.
Currently it discovers all /{dev,sys,proc} files, and collects coverage for open/read/write/mmap/ioctl
syscalls on these files. Later this allows to build file path <-> file_operations mapping.
I've tried 2 other approaches:
1. Immediately map file to file_operations callbacks similar to tools/fops_probe,
and export only that. This required lots of hardcoding of kernel function/file
names, did not work well in all cases, and presumably would produce more
maintanance in future.
2. Automatically infer what kernel functions are common, and which correspond
to file_operations callbacks by first collecting coverage for all files/programs,
and then counting how many times wach PC is encountered in combined coverage.
Presumably common functions (SYS_read, vfs_read) will be present in most/all traces,
while the actual file_operations callback will be present in only one/few traces.
This also did not work well and produced lots of bugs where common functions
were somehow called in few programs, or common file_operations callbacks were
called in too many traces.
Diffstat (limited to 'sys/linux/test')
0 files changed, 0 insertions, 0 deletions
