c - Whole one core dedicated to single process -


is there way in linux assign 1 cpu core particular given process , there should not other processes or interrupt handlers scheduled on core?

i have read process affinity in linux binding processes cpus using taskset utility that's not solving problem because it try affine given process core possible other processes may scheduled on core , want avoid.

should change kernel code scheduling?

yes there is. in fact, there 2 separate ways it:-)

right now, best way accomplish want following:

  1. add parameter isolcpus=[cpu_number] linux kernel command line form boot loader during boot. instruct linux scheduler no run regular tasks on cpu unless requested using cpu affinity.

  2. use irq affinity set other cpus handle interrupts isolated cpu not received interrupt.

  3. use cpu affinity fix specific task isolated cpu.

this give best linux can provide regard cpu isolation without out of tree , in development patches .

your task still interrupted time time linux code, including other tasks - such timer tick interrupt , scheduler code, ipis other cpus , stuff work queue kernel threads, although interruption should quite minimal.

for (almost) complete list of interruption sources, check out page @ https://github.com/gby/linux/wiki

the alternative method use cpusets way more elegant , dynamic suffers weaknesses @ point in time (no migration of timers example) makes me recommend old, crude effective isolcpus parameter.

note work being done linux community address these issues , more give better isolation.


Comments

Popular posts from this blog

Payment information shows nothing in one page checkout page magento -

tcpdump - How to check if server received packet (acknowledged) -