On 02/06/2017 09:47 AM, Daniel P. Berrange wrote:
On Mon, Feb 06, 2017 at 09:32:29AM -0800, Peter Steele wrote:
We've been using libvirt based containers under CentOS 7 and everything has been working fine. One application we run in our containers is ctdb, which uses SCHED_FIFO (real time) threads. This has been working without problems until our recent upgrade to CentOS 7.3. For some reason, ctdb is no longer able to create real time threads, and I've tried a simple program myself that confirms this. The same program works fine on the hypervisor so I know the kernel supports real time. Does anyone know what may have changed in CentOS 7.3 that breaks real time threads in libvirt containers? If I had to guess, perhaps some tunable in cgroups is denying execution time ?
In CentOS 7.2 the path /sys/fs/cgroup/cpu/cpu.rt_runtime_us is zero by default and I had to set it to a non-zero value, e.g. echo 25000 >/sys/fs/cgroup/cpu/cpu.rt_runtime_us in order to use real time threads in containers. In CentOS 7.3, this path is non-zero already (950000 on my system) and it doesn't even let me write a new value to it. For some reason though, real time threads are still not allowed. Apparently some other cgroup param has to be set in 7.3. The question is which one? Peter