When I run my Virtual Machine with Gentoo as guest, I have found that there is considerable overhead coming from tick_periodic function.( this is the function which runs on every timer interrupt).This function updates a global jiffy using write_seqlocks which leads to the overhead.
Here's a grep of HZ and relevant stuff in my config file.
sharan013@sitmac4:~$ cat /boot/config | egrep 'HZ|TIME' # CONFIG_RCU_FAST_NO_HZ is not set CONFIG_NO_HZ=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 # CONFIG_MACHZ_WDT is not set CONFIG_TIMERFD=y CONFIG_HIGH_RES_TIMERS=y CONFIG_X86_CYCLONE_TIMER=y CONFIG_HPET_TIMER=y
Clearly it has set the configuration to 1000, but when I do
sysconf(_SC_CLK_TCK) I get 100 as my timer frequency.So what is my systems timer frequency?
What I want to do is to bring the frequency down to 100,even lower if possible.Although it might effect the interactivity and precision of poll/select and schedulers time slice, I am ready to sacrifice these things for lesser timer interrupt as it will speed up VM.
when I tried to find out what has to be done I read in some place that you can do so by changing in the configuration file, else where I read that adding divider=10 to the boot parameter does the job , else where I read that none of it is needed if you can set the
(CONFIG_HIGH_RES_TIMERS) to acheive low-latency timers even without increasing the timer frequency and the same is possible with a tickless system
I am extermely confused about what is the right approach.
All I want is to bring down the timer interrupt to as low as possible.
Can I know the right way of doing this ?