Re: sched: tweak select_idle_sibling to look for idle threads

From: Chris Mason
Date: Wed May 04 2016 - 13:47:14 EST


On Wed, May 04, 2016 at 05:45:10PM +0200, Peter Zijlstra wrote:
> On Tue, May 03, 2016 at 11:11:53AM -0400, Chris Mason wrote:
> > # pick a single core, in my case cpus 0,20 are the same core
> > # cpu_hog is any program that spins
> > #
> > taskset -c 20 cpu_hog &
> >
> > # schbench -p 4 means message passing mode with 4 byte messages (like
> > # pipe test), no sleeps, just bouncing as fast as it can.
> > #
> > # make the scheduler choose between the sibling of the hog and cpu 1
> > #
> > taskset -c 0,1 schbench -p 4 -m 1 -t 1
>
> Will that schbench thingy print something? Mine doesn't seem to output
> anything, not actually exit, although it stops consuming CPU cycles at
> some point.
>
>

It should, make sure you're at the top commit in git.

git://git.kernel.org/pub/scm/linux/kernel/git/mason/schbench.git

It's not recent so I'd be surprised if you weren't already there. The
default runtime is 30 seconds, but you can use -r to specify something
shorter.

It's possible I'm missing a wakeup to shut the whole thing down, but I
thought I fixed that.

./schbench -p 4 -m 1 -t 1
Latency percentiles (usec)
50.0000th: 5
75.0000th: 5
90.0000th: 5
95.0000th: 5
*99.0000th: 8
99.5000th: 15
99.9000th: 17
Over=0, min=0, max=652
avg worker transfer: 113768.27 ops/sec 444.41KB/s

-chris