cpu.rt_runtime_us behaviour is different in RHEL 7 Machine as compared to RHEL 8

Solution Verified - Updated -

Issue

  • Differences in cpu.rt_runtime_us behavior between RHEL 7 and RHEL 8.
  • Real-time scheduling time budget limit behavior differs between RHEL 7 and RHEL 8
RHEL 7:
=======

# cat /sys/fs/cgroup/cpuacct/user.slice/user-0.slice/session-1.scope/cpu.rt_runtime_us
100000

# perf stat  stress-ng -c 1 -t 10 --sched fifo --sched-prio 99 --taskset 2
...                                     
      10.007720112 seconds time elapsed

       4.381507000 seconds user   <=---- [ almost 4 times ]
       0.002936000 seconds sys


RHEL 8:
=======

# cat /sys/fs/cgroup/cpuacct/user.slice/cpu.rt_runtime_us
100000

# perf stat  stress-ng -c 1  -t 10 --sched fifo --sched-prio 99 --taskset 2
stress-ng: info:  [1814] setting to a 10 second run per stressor
...                                        
      10.007775763 seconds time elapsed

       1.000498000 seconds user    << user time showing 1 sec as expected
       0.006842000 seconds sys

  • When setting cpu.rt_runtime_us globally and for a user.slice, the time command is showing more user+sys time in RHEL 7 and showing the value under limit in RHEL 8 for Real-time priority scheduling task.

Environment

  • Red Hat Enterprise Linux

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content