Deprecate / remove legacy support
tilsche opened this issue · comments
I strongly dislike carrying around legacy stuff.
#ifdef
macros are annoying- Refactoring and bug fixes are made more expensive (see #241)
- Vastly increased test cost
Currently we have three legacy crufts:
-
tracepoint switch writer, i.e.
NOT USE_PERF_RECORD_SWITCH
.
While it is relatively encapsulated in it's own source file, it also has 9#ifndefs
throughout the code.
Ditching it would technically require Linux kernel 4.3, however, it seems to have been backported in 3.10.0-1127.19.1.el7.x86_64. So there's that. -
use_clockid
/USE_PERF_CLOCKID
.
In itself, it is not quite as invasive with it is mostly used together with 3)
As per the manpage, available since Linux 4.1, but apparently also backported. -
hw_breakpoint.h
/USE_HW_BREAKPOINT_COMPAT
.
Also a very annoying codepath to maintain, but probably no go because it is not only dependent on the kernel version (not sure which), but also on hardware support (not supported on Power9).
I would deprecate 1 and 2. If some HPC-relevant architectures do not offer hardware breakpoints then we have to keep 3 for now.
Taurus seems like a good benchmark for the lower limit on what kernel features are supported, the DKRZ installation is running a 4.18 kernel for example