Re: niced tasks on SMT system

From: Mike Galbraith
Date: Thu Dec 28 2017 - 08:25:09 EST

On Thu, 2017-12-28 at 13:10 +0100, Pavel Machek wrote:
> Hi!
> Ok, so I'm compiling, and I'd like to run a flight simulator.
> Flightgear normally does 20fps on my system... kinda low but playable.
> I have reniced make -j 5 fo kernel running. Scheduler gives 100% of
> one of CPUs to Flightgear (good), but the smt sibling is used by the
> compilation, and I'm down to 9 fps. Not good.
> Even with single-threaded make, I have 10-13fps.
> Is there way to learn which CPUs are SMT siblings?

cat /sys/devices/system/cpu/cpu{N}/topology/thread_siblings

> Is there way to disable SMT during runtime?

You could offline them, but wouldn't it be better to tell each which
CPUs they can use, or perhaps partition your box with cpusets?

> Can I do something to improve Flightgear performance and still do
> compilation?

Sure, run everything associated with your game as RT, and everything
not game gets the leftover cycles.  If there are none, box will
 throttle RT to save itself from it's psycho :) driver and you'll know
that you need a bigger box. (it's likely your phone)

Oh yeah, echo NO_RT_RUNTIME_SHARE > /sys/kernel/debug/sched_features
before you try that, otherwise the throttle won't help.