Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Aug 2007 18:18:15 -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:  <20070802181239.O561@10.0.0.1>
In-Reply-To: <46B1C69D.6070503@cytexbg.com>
References:  <f8o49l$sd1$1@sea.gmane.org> <46B1C69D.6070503@cytexbg.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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)'


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"
>



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