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>