Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Aug 2007 03:51:39 -0700 (PDT)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        Niki Denev <nike_d@cytexbg.com>
Cc:        Ivan Voras <ivoras@fer.hr>, freebsd-arch@freebsd.org
Subject:   Re: On schedulers
Message-ID:  <20070803034628.U561@10.0.0.1>
In-Reply-To: <20070802181239.O561@10.0.0.1>
References:  <f8o49l$sd1$1@sea.gmane.org> <46B1C69D.6070503@cytexbg.com> <20070802181239.O561@10.0.0.1>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
>> To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
>> 
> _______________________________________________
> freebsd-arch@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070803034628.U561>