| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
To simplify interface Read*Symbols were moved out from symbolizer.Symbolizer.
|
| |
|
|
|
|
|
| |
Instead of storing real PC values store indexes into the PCs table.
This significantly reduces size of the cache (in my case from
1823 MB to 473 MB) and actually makes use of the cache simpler
(don't need separate map).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We query globs for 2 reasons:
1. Expand glob types in syscall descriptions.
2. Dynamic file probing for automatic descriptions generation.
In both of these contexts are are interested in files
that will be present during test program execution
(rather than normal unsandboxed execution).
For example, some files may not be accessible to test programs
after pivot root. On the other hand, we create and link
some additional files for the test program that don't
normally exist.
Add a new request type for querying of globs that are
executed in the test program context.
|
|
|
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.
|