On schedulers
Jeff Roberson
jroberson at chesapeake.net
Fri Aug 3 10:49:20 UTC 2007
On Thu, 2 Aug 2007, Jeff Roberson wrote:
> On Thu, 2 Aug 2007, Niki Denev wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Ivan Voras wrote:
>>> Hi,
>>>
>>> I've just stumbled on the LKML (via Slashdot) discussion on schedulers,
>>> nicely compiled here: http://kerneltrap.org/node/14023 . I don't think
>>> 3D performance is of concern for FreeBSD, but I'm wondering how would
>>> ULE and the latest incarnation of 4BSD fare in that discussion?
>>>
>>> Specifically, I'm interested in this result in Linux:
>>>
>>> 2.6.22-ck1 2.6.22-cfs-v19
>>> ------------------------ ------------------------
>>> quake + 0 loops | 41 fps quake + 0 loops | 41 fps
>>> quake + 1 loop | 3 fps quake + 1 loop | 41 fps
>>> quake + 2 loops | 2 fps quake + 2 loops | 32 fps
>>> quake + 3 loops | 1 fps quake + 3 loops | 24 fps
>>> quake + 4 loops | 0 fps quake + 4 loops | 20 fps
>>> quake + 5 loops | 0 fps quake + 5 loops | 16 fps
>>>
>>> (for the impatient: the benchmark is of running quake with several "idle
>>> loop" processes, presumably on a single CPU machine. On the left is the
>>> SD (staircase deadline) and on the right is the CF (completely fair)
>>> scheduler).
>>>
>>> How would this behave on FreeBSD? Is there a paper on how ULE should
>>> behave / is modeled?
>>>
>>
>> This is on a Intel C2D E6420 with 2G of ram,
>> Nvidia 7900GTO (nvidia-driver-1.0.9746)
>> running xorg-server-6.9.0_5 on a recent -CURRENT :
>>
>> idle is basicaly a small C program with just for(;;); in its main()
>> function.
>> I've run glxgears for 20 secs each (to get four reports)
>> Both idle and glxgears are run as normal user.
>
> Can you tell me what % cpu is going to each process during this time? These
> results are surprising. For workloads like this ULE should essentially
> implement a 'fair' scheduling policy. However, so should 4BSD. So I'm not
> yet sure why the slowdown wouldn't be relative to the number of running
> threads. Also, 'vmstat 1' output would be useful.
>
> Can I recreate this test without a fancy video card? I have the following in
> my laptop:
>
> vgapci0 at pci1:0:0: class=0x030000 card=0x054f1014 chip=0x4e541002
> rev=0x80
> hdr=0x00
> vendor = 'ATI Technologies Inc.'
> device = 'Radeon Mobility M10 NT (RV350-WS)'
Well this must behave very differently when you have hardware
acceleration. I for example see ~288 fps with no other cpu hogs running.
This consumes 100% of the cpu. With 1 cpu hog running I see ~148. With
two I see ~100 fps. It's also worth noting that at no time does
interactivity suffer.
My 'idle' is called loop.sh as I don't think it's particularly idle. ;-)
Here it is:
while true; do
echo -n;
done;
This does no system calls and spends all of it's time in user-space.
Thanks,
Jeff
>
>
> Thanks,
> Jeff
>
>>
>> SMP+ULE 0 idle
>> 101446 frames in 5.0 seconds = 20289.099 FPS
>> 101590 frames in 5.0 seconds = 20317.975 FPS
>> 101701 frames in 5.0 seconds = 20340.037 FPS
>> 101489 frames in 5.0 seconds = 20297.670 FPS
>>
>> SMP+ULE 1 idle
>> 97430 frames in 5.0 seconds = 19485.840 FPS
>> 102176 frames in 5.0 seconds = 20435.017 FPS
>> 102402 frames in 5.0 seconds = 20480.318 FPS
>> 102430 frames in 5.0 seconds = 20485.865 FPS
>>
>> SMP+ULE 2 idle
>> 30 frames in 5.0 seconds = 5.978 FPS
>> 31 frames in 5.0 seconds = 6.182 FPS
>> 31 frames in 5.0 seconds = 6.172 FPS
>> 30 frames in 5.2 seconds = 5.744 FPS
>>
>> SMP+ULE 3 idle
>> 29 frames in 5.2 seconds = 5.631 FPS
>> 30 frames in 5.0 seconds = 5.952 FPS
>> 31 frames in 5.1 seconds = 6.054 FPS
>> 32 frames in 5.2 seconds = 6.213 FPS
>>
>> SMP+ULE 4 idle
>> 21 frames in 5.1 seconds = 4.151 FPS
>> 20 frames in 5.1 seconds = 3.942 FPS
>> 21 frames in 5.2 seconds = 4.066 FPS
>> 20 frames in 5.2 seconds = 3.841 FPS
>>
>> UP+ULE 0 idle
>> 102152 frames in 5.0 seconds = 20430.299 FPS
>> 102572 frames in 5.0 seconds = 20514.236 FPS
>> 102533 frames in 5.0 seconds = 20506.522 FPS
>> 102129 frames in 5.0 seconds = 20425.654 FPS
>>
>> UP+ULE 1 idle
>> 21 frames in 5.1 seconds = 4.158 FPS
>> 24 frames in 5.2 seconds = 4.624 FPS
>> 26 frames in 5.0 seconds = 5.153 FPS
>> 28 frames in 5.0 seconds = 5.586 FPS
>>
>> UP+ULE 2 idle
>> 21 frames in 5.1 seconds = 4.093 FPS
>> 21 frames in 5.1 seconds = 4.093 FPS
>> 21 frames in 5.1 seconds = 4.115 FPS
>> 21 frames in 5.1 seconds = 4.115 FPS
>>
>> UP+ULE 3 idle
>> 20 frames in 5.3 seconds = 3.804 FPS
>> 19 frames in 5.2 seconds = 3.624 FPS
>> 19 frames in 5.2 seconds = 3.619 FPS
>> 19 frames in 5.3 seconds = 3.612 FPS
>>
>> UP+ULE 4 idle
>> 19 frames in 5.3 seconds = 3.600 FPS
>> 17 frames in 5.0 seconds = 3.388 FPS
>> 17 frames in 5.0 seconds = 3.393 FPS
>> 17 frames in 5.0 seconds = 3.380 FPS
>>
>> SMP+4BSD 0 idle
>> 102440 frames in 5.0 seconds = 20487.893 FPS
>> 102285 frames in 5.0 seconds = 20456.848 FPS
>> 102276 frames in 5.0 seconds = 20455.065 FPS
>> 102312 frames in 5.0 seconds = 20462.289 FPS
>>
>> SMP+4BSD 1 idle
>> 101798 frames in 5.0 seconds = 20359.526 FPS
>> 102732 frames in 5.0 seconds = 20546.202 FPS
>> 102619 frames in 5.0 seconds = 20523.692 FPS
>> 102788 frames in 5.0 seconds = 20557.526 FPS
>>
>> SMP+4BSD 2 idle
>> 6 frames in 5.0 seconds = 1.193 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>>
>> SMP+4BSD 3 idle
>> 6 frames in 5.0 seconds = 1.193 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>>
>> SMP+4BSD 4 idle
>> 6 frames in 5.0 seconds = 1.193 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>>
>> UP+4BSD 0 idle
>> 102864 frames in 5.0 seconds = 20572.665 FPS
>> 102569 frames in 5.0 seconds = 20513.792 FPS
>> 102559 frames in 5.0 seconds = 20511.775 FPS
>> 102333 frames in 5.0 seconds = 20466.543 FPS
>>
>> UP+4BSD 1 idle
>> 6 frames in 5.0 seconds = 1.193 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>>
>> UP+4BSD 2 idle
>> 6 frames in 5.0 seconds = 1.193 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>>
>> UP+4BSD 3 idle
>> 6 frames in 5.0 seconds = 1.193 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>>
>> UP+4BSD 4 idle
>> 6 frames in 5.0 seconds = 1.193 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> 5 frames in 5.0 seconds = 0.994 FPS
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.7 (FreeBSD)
>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>>
>> iD8DBQFGscadHNAJ/fLbfrkRAnDOAJ9yipwexiBUrZbS3RJ5R0YDZyn4pACfS/Od
>> gMVwrhA3NYlaQkPNOaEZ7S8=
>> =98Za
>> -----END PGP SIGNATURE-----
>> _______________________________________________
>> freebsd-arch at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
>> To unsubscribe, send any mail to "freebsd-arch-unsubscribe at freebsd.org"
>>
> _______________________________________________
> freebsd-arch at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe at freebsd.org"
>
More information about the freebsd-arch
mailing list