I'm probably not going to use any of the kernels posted here. I know what I'm doing and given the resources, I could compile a whatever-FPS kernel I want. Unfortunately for me, the resources (=hardware) is the problem. Anyway, I can still see what kind of configurations other server admins have set to their kernels and draw best of them for some future projects.
Then this thread also is probably more likely to get facts straight than bunch of copy&pasted tutorials, because I see mystical instructions in many 1000 FPS tutorials. In my opinion 1000 Hz is not needed for 1000 FPS kernel (note: this is my unverified opinion). Also modifying jiffies.h as instructed by Nitoxys (rewrite on our board) seems also unnecessary.
I've got 100 Hz kernel - with very heavy MySQL stuff running on it - but I still time to time hit some 900+ FPS. I don't see it necessary for the kernel to check 1000 times per second that the most CPU heavy process, ie. srcds, still wants all the CPU resources it can get; 100 times per second should be enough. Dynamic tick (dyntick) kernel should also work, because dyntick kernel can scale up to the optimal state corresponding to the used CPU resources. Can anyone confirm these by posting a working 1000 FPS .config with either 100 Hz or dynamic ticks enabled?
Modifying jiffies.h is something I don't understand at all. Take a look at the original code:
Here the code checks whether the HZ, which is defined in param.h as
is between 768 and 1536. If you're going to change the CONFIG_HZ, which is defined in the "make menuconfig" at "kernel timer frequency" section, to the maximum 1000 Hz, then the value is between 768 - 1536, so no need to patch jiffies.h for that. Then even if you change somewhat illogically the USER_HZ to 1500, which is higher than the internal kernel timer, you're still between the boundaries of 768 to 1536. I don't understand why jiffies.h should be patched to handle the case where any of the HZ definitions would be over 1536 because they're never set so high.
Maybe with these thoughts we can start demystifying secrets of the 1000 FPS kernel. I hope to see noob server admins posting results for their 1000 FPS game servers that they never thought they'd have.
Then this thread also is probably more likely to get facts straight than bunch of copy&pasted tutorials, because I see mystical instructions in many 1000 FPS tutorials. In my opinion 1000 Hz is not needed for 1000 FPS kernel (note: this is my unverified opinion). Also modifying jiffies.h as instructed by Nitoxys (rewrite on our board) seems also unnecessary.
I've got 100 Hz kernel - with very heavy MySQL stuff running on it - but I still time to time hit some 900+ FPS. I don't see it necessary for the kernel to check 1000 times per second that the most CPU heavy process, ie. srcds, still wants all the CPU resources it can get; 100 times per second should be enough. Dynamic tick (dyntick) kernel should also work, because dyntick kernel can scale up to the optimal state corresponding to the used CPU resources. Can anyone confirm these by posting a working 1000 FPS .config with either 100 Hz or dynamic ticks enabled?
Modifying jiffies.h is something I don't understand at all. Take a look at the original code:
Code:
#elif HZ >= 384 && HZ < 768
# define SHIFT_HZ 9
#elif HZ >= 768 && HZ < 1536
# define SHIFT_HZ 10
#else
# error You lose.
#endif
Code:
# define HZ CONFIG_HZ /* Internal kernel timer frequency */
Maybe with these thoughts we can start demystifying secrets of the 1000 FPS kernel. I hope to see noob server admins posting results for their 1000 FPS game servers that they never thought they'd have.