tud-zih-energy / lo2s

Linux OTF2 Sampling - A Lightweight Node-Level Performance Monitoring Tool

Home Page:https://tu-dresden.de/zih/forschung/projekte/lo2s?set_language=en

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

  1. 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.

  2. 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.

  3. 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