Hello,

I have some new info about 1000fps servers that we were discussing in 
November 2008.

Old topic is here: 
http://list.valvesoftware.com/mailman/private/hlds_linux/2008-November/058527.html

So, I was able to get constant 1000fps server, by constant I mean no 
drops, not single one (sorry for arguing too much in November, I was wrong).

But there are some issues I encountered.

1. I think htop, top and others are not showing CPU usage correct. 0% of 
all cores when 10 fully loaded 12 player 1000fps servers with pingboost 
3, it's funny.

2. segfaults, sometimes it just hangs. I don't know why, debug says 
nothing, but I was able to minimize if not eliminate those segfaults 
(but I don't know how, yet).

I'm using Gentoo 64bit, but it should be almost same for any other Linux 
disto.

Here is the kernel config: http://kveri.com/1000fps_kernel_config

If you're willing to try it, I'll be glad.

First of all: it's vanilla kernel 2.6.26.8 (kernel.org)
NO RT patch
just this config and these few steps:

include/asm/param.h (or any other param.h under include dir in kernel root):

#ifdef __KERNEL__
# define HZ             2100            /* Internal kernel timer 
frequency */
# define USER_HZ        1               /* some user interfaces are */
# define CLOCKS_PER_SEC 1              /* in "ticks" like times() */
#endif

include/linux/jiffies.h:
change
#elif HZ >= 1536 && HZ < 3072
# define SHIFT_HZ       11

to
#elif HZ >= 1536 && HZ < 3072
# define SHIFT_HZ       1

and

change
# define LATCH ((CLOCK_TICK_RATE + HZ / 2) / HZ) / * For divider * /

to
#define LATCH  ((CLOCK_TICK_RATE + 2200/2) / 2200)      /* For divider */

kernel/timeconst.pl:
change (comment it)
print "#if HZ != $hz\n";
print "#error \"kernel/timeconst.h has the wrong HZ value!\"\n";
print "#endif\n";

to
#       print "#if HZ != $hz\n";
#       print "#error \"kernel/timeconst.h has the wrong HZ value!\"\n";
#       print "#endif\n";

and execute:
kernel/timeconst.pl 2100 > kernel/timeconst.h

*this step is probably why my CPU stats aren't working correctly anymore*.

Next, use TSC clocksource,

for grub: add clocksource="tsc" to your kernel command line in 
menu.lst/grub.conf

for lilo: add append="clocksource=TSC" to your /etc/lilo.conf, under 
this kernel image and execute /sbin/lilo.

I didn't try hpet, but it probably worth trying, as well as changing CPU 
I/O schedulers in kernel.

That config I posted above is heavily optimized for my hardware, but it 
can be optimized further, make sure it suits your hardware.

My experiences: with RT patch I was able to get around 900 fps, but not 
as stable as without RT patch. I tried 4 different kernels (all 
2.6.26.8): 1. without RT without HZ modification, without RT with HZ, 
with RT without HZ and with RT with HZ. Best one was without RT with HZ 
(that one I was discribing).

Pingboost: I tried anything from pingboost 0 (no -pingboost) to 
pingboost 3, nothing except pingboost 3 gave me 1000fps constant.

Sys_ticrate:
well, it looks like anything more than HZ in kernel (2100) makes game 
accelerated, so I'm using sys_ticrate 2000 for now.

If anyone tries this method/config please let me know what are your 
results, I'll be very interested.

That HZ guide was from: http://www.howto-cs16-root.de/gen_kernel.htm
some other tips: 
http://wiki.fragaholics.de/index.php/EN:Linux_Kernel_Optimization

Please, anyone who has experience in this, share it too.

Thanks

Kveri

-- 
Tato sprava bola prehladana na vyskyt virusov
a nebezpecneho obsahu antivirovym systemom
a zda sa byt cista.


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux

Reply via email to