--- Comment #6 from Serhei Makarov <me at serhei dot io> ---
This issue came up again in connection with PR25580. My current thinking
Desired: We want to compile a guru-mode module and ship the compiled module.
The module should continue to load on new kernel versions,
as long as the stap compiler would have produced the same module as before.
SystemTap compiles modules differently depending on
- kernel version (explicitly checked by #if preprocessor conditionals)
- However, the explicit kernel-version #if are written only for
already-released versions. Therefore, the appearance of a new version won't
cause any of these checks to trigger.
- modsymvers (built into the kernel-module build system)
- stapconf results (may change with future kernel version or config tweaks)
- (anything else?)
Checking for modsymvers is given to us by the kernel-module build system.
Although modsymvers only tracks changes to the public kernel ABI,
SystemTap uses both public and private ABIs.
However, changes to private ABIs not detected by stapconf would
not cause the same SystemTap version to start compiling things differently.
In essence, we already assume that updating the kernel but not the SystemTap
module will be safe in this situation.
For the stapconf result, we need to evaluate if the stapconf results are
actually useful to guard against breakage in new kernel versions.
If they are useful, we may need to generate a table of stapconf results for
each new kernel and have it be checked on module load, similarly to modsymvers.
(Not every module uses every stapconf result.)
If they are not, it's sufficient to add an option to relax any explicit
kernel-version checks and then close this bug.
You are receiving this mail because:
You are the assignee for the bug.