idprio(1) broken

Andriy Gapon avg at FreeBSD.org
Tue Dec 26 12:01:35 UTC 2017


On 26/12/2017 11:18, Eugene Grosbein wrote:
> On 26.12.2017 16:10, Eugene Grosbein wrote:
> 
>> Is idprio(1) broken in stable/11?
>>
>> As root, start one bzip2 instance with idprio and one additional bzip2 intance per CPU core:
>>
>> # idprio 5 bzip2 -9 </dev/zero >/dev/null &
>> # n=$(sysctl -n kern.smp.cpus)
>> # i=1; while [ $i -le $n ]; do bzip2 -9 </dev/zero >/dev/null & i=$(($i+1)); done
>> # top
>>
>> For dual core system, I see that idprio'd bzip2 takes all cycles of first core
>> and two "normal" bzip2's share cycles of second core each taking ~50% of CPU time.
>>
>> It is expected that idprio'd bzip2 get no CPU time at all and each of "normal" bzip2's
>> get ~100% of single CPU core for such setup.
> 
> This works as expected for stable/10.

Seems to work as expected on head as well.
Tested on a 6-core physical system and a 2-core bhyve VM.

# ps axwwl | fgrep bzip2
   0 943  935   0 129  5 10564  2196 -        RN    1  0:00.00 idprio 5 bzip2 -9
   0 945  935   0 108  5 18332  9676 -        RN    1  1:16.15 bzip2 -9
   0 946  935   0 108  5 18332  9676 -        RN    1  1:16.34 bzip2 -9

idprio isn't even able to exec bzip2.

# ps axwwl | fgrep bzip2
    0 28986 86816   0 129  5   18348    2324 -        RN   17       0:00.02 bzip2 -9
    0 28988 86816   0 106  5   18348    9680 -        RN   17       1:27.25 bzip2 -9
    0 28989 86816   0 106  5   18348    9680 -        RN   17       1:27.86 bzip2 -9
    0 28990 86816   0 108  5   18348    9680 -        RN   17       1:35.50 bzip2 -9
    0 28991 86816   0 106  5   18348    9680 -        RN   17       1:27.00 bzip2 -9
    0 28992 86816   0 106  5   18348    9680 -        RN   17       1:25.83 bzip2 -9
    0 28993 86816   0 106  5   18348    9680 -        RN   17       1:26.76 bzip2 -9

-- 
Andriy Gapon


More information about the freebsd-stable mailing list