tuned icon indicating copy to clipboard operation
tuned copied to clipboard

Dynamic tuning of IRQs and kthreads

Open adriaan42 opened this issue 10 months ago • 4 comments

For a flexible deployment of realtime applications we need tuning of IRQs and kernel threads that go beyond what TuneD currently offers:

  • Tuning of individual interrupts: If the realtime application uses a device (e.g., NIC), we want to control the affinity of the corresponding interrupt. Currently, we can only control the affinities of all interrupts with one setting.
  • Tuning of individual kernel threads: Example is again a NIC that can have associated NAPI threads, which we want to tune. Some of this is already possible with the scheduler plugin, but it's lacking flexibility.
  • Adapt tuning dynamically: resources (isolated CPUs, NICs, ...) are allocated to apps dynamically, so we only know which IRQs and Kthreads we need to move to which CPUs at the time an app is started. Currently this can only be done statically in the profile.

The code is already there:

  • #596
  • #580
  • #628 EDIT: this one now spawned two more:
    • #734
    • #735

Opening this issue to summarize and put the 3 PRs into context.

@yarda could you please comment? Is this a relevant story for TuneD in principle? Do you think it's realistic to get this integrated for the 2.23 release?

adriaan42 avatar Apr 29 '24 13:04 adriaan42