What the difference between linux-tools virtual / generic / euclid / etc?

Trying to install perf (to count CPU cycles and events when I run a certain program). I used sudo apt install linux-tools

Package linux-tools is a virtual package provided by:
  linux-tools-oem 4.13.0.1026.30
  linux-tools-gke 4.13.0.1015.17
  linux-tools-gcp 4.13.0.1015.17
  linux-tools-euclid 4.4.0.9027.28
  linux-tools-virtual-hwe-16.04-edge 4.15.0.20.42
  linux-tools-virtual-hwe-16.04 4.13.0.41.60
  linux-tools-virtual 4.4.0.124.130
  linux-tools-lowlatency-hwe-16.04-edge 4.15.0.20.42
  linux-tools-lowlatency-hwe-16.04 4.13.0.41.60
  linux-tools-lowlatency 4.4.0.124.130
  linux-tools-generic-hwe-16.04-edge 4.15.0.20.42
  linux-tools-generic-hwe-16.04 4.13.0.41.60
  linux-tools-generic 4.4.0.124.130
You should explicitly select one to install.

I guess I'll need one of the 4.4.0* to match my kernel version. But I could not find documentation about generic / virtual / euclid /low latency and the hwe flavors. What are they ? Which one will be the most compact and will provide just perf

Reference

https://perf.wiki.kernel.org/index.php/Tutorial

Answers 1

  • linux-tools are used for the kernel performance evaluation and related to the particular version of the kernel.
    The kernel update policy flavours description is provided in the Ubuntu RollingLTSEnablementStack:

    • ga - General Availability, a standard Ubuntu kernel with the fixed version
    • hwe - HardWare Enablement stack, indicates an incremental rolling updates of the kernel (the versions vary in time)
    • hwe-edge - early access to the upcoming HWE Stack, can be thought as an experimental hwe for the final testing before the global release

    Ubuntu provides 2 kinds (flavours) of the kernel, the informal brief description is:

    • generic - standard kernel recommended for majority users, it aims to optimize overall scheduling performance in the multi-process and multi-threaded execution environments but does not provide any guarantees for the maximal scheduling delays
    • lowlatency - specialized kernel with the near real-time execution of the processes and guaranteed limits for the maximal scheduling delays