[lxc-users] Enabling real time support in containers
Peter Steele
pwsteele at gmail.com
Thu Apr 6 19:51:39 UTC 2017
On 04/05/2017 06:45 AM, Serge E. Hallyn wrote:
> I correct in assuming LXC *does* provide a means to enable RT
> The kernel has hardcoded checks (which are not namespaced) that
> if you are not (global) root, you cannot set or change the rt
> policy. I suspect there is a way that could be safely relaxed
> (i.e. if a container has exclusie use of a cpu), but we'd have
> to talk to the scheduling experts about what would make sense.
> (see
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/sched/core.c?id=refs/tags/v4.11-rc5#n4164
> )
>
> Otherwise, as a workaround (assuming this is the only problem you
> hit) you could simply make sure that the RT policy is correct ahead
> of time and the priority is high enough that the application is only
> lowering it, then the kernel wouldn't stop it. Certainly that's
> more fragile. Or you could get fancier and LD_PRELOAD to catch
> sys_setscheduler and redirect to an api over a socket to a tiny
> deamon on the host kernel which sets it up for you... But certainly
> it would be best for everyone if this was supported in the kernel the
> right way.
>
Most of our containers do not require real time support. There are a
couple of cases though where our software does use real time threads
though. We originally were running under libvirt based VMs and real time
support was not an issue in this kind of environment (it was fully
supported). We ported our software to libvirt lxc based containers and
with the appropriate configuration was able to get real time support
working under this environment as well. We want to make one more
transition now to LXC (mainly due to lack of active support for
libvirt-lxc in CentOS). I had assumed this was simply a container
configuration issue but your response makes me think that it's not as
simple as that. Not sure where that leaves us.
Peter
More information about the lxc-users
mailing list