Re: Kernel schedules kernel tasks on isolated cpus, SCHED_FIFO prevents kernel tasks from running

2017-06-28 Thread Rik van Riel
On Wed, 2017-06-28 at 08:39 -0500, Andrei Hurynovich wrote: > Hi. > > We are trying to build realtime(-ish) system based on rhel6(kernelĀ  > 2.6.32-642.1.1.el6.x86_64). > > We used isolcpus to remove some cpus from processĀ  > scheduling(isolcpus=2-19 nohz_full=2-19 rcu_nocbs=2-19). > > We spin

Re: Kernel schedules kernel tasks on isolated cpus, SCHED_FIFO prevents kernel tasks from running

2017-06-28 Thread valdis . kletnieks
On Wed, 28 Jun 2017 14:02:37 -0500, Andrei Hurynovich said: > The question is why this old 2.6 kernel decide that it needs per-cpu > events and kblockd tasks. You have per-cpu events ecause your real-time process issues syscalls, and syscalls do things inside the kernel that require per-CPU

Re: Kernel schedules kernel tasks on isolated cpus, SCHED_FIFO prevents kernel tasks from running

2017-06-28 Thread Andrei Hurynovich
Thank you Valdis. Yes, I'm basically getting what I want - the RT proc never ever gives up to the system. There are a plenty of cores left to run non-rt tasks on the machine. The question is why this old 2.6 kernel decide that it needs per-cpu events and kblockd tasks. Maybe someone can

Re: Kernel schedules kernel tasks on isolated cpus, SCHED_FIFO prevents kernel tasks from running

2017-06-28 Thread Greg KH
On Wed, Jun 28, 2017 at 08:39:07AM -0500, Andrei Hurynovich wrote: > Hi. > > We are trying to build realtime(-ish) system based on rhel6(kernel > 2.6.32-642.1.1.el6.x86_64). Wow, you do realize that is a _very_ old and obsolete kernel, supported by no one except Red Hat. If you stick with it,

Re: Kernel schedules kernel tasks on isolated cpus, SCHED_FIFO prevents kernel tasks from running

2017-06-28 Thread valdis . kletnieks
On Wed, 28 Jun 2017 08:39:07 -0500, Andrei Hurynovich said: > We set sysctl kernel.sched_rt_runtime_us = -1 so realtime threads are > NEVER interrupted. > According to /proc/sched_debug, it seems that kernel still schedules > some SCHED_OTHER(e.g. non-realtime) kernel tasks to isolated cpus - for