schlittermann |
Since about 2.4.18 there seems to be a problem if the apm
driver is loaded and its idle_threshold
is lower than 100%
(CONFIG_APM_CPU_IDLE
).
As soon as the guest system (the system inside the virtual machine) is idle, all time controlled actions seem to be slowed down. A "guest" seconds are about 2 ... 10 "host" seconds.
You can test if if your guest system is fairly idle and you
start a ping
. Normally the intervall between two echo
requests is about 1 second. If you compare the guest system time
before and after the ping you may see that there are about as many
seconds gone as echo requests has been send. The seconds become
nearly real seconds if you put some work on your guest (e.g. moving its
mouse).
The first solution - disabling the CPU idle calls inside the
kernel - is not what I want. As I'd like to have the idle calls if
VMWare isn't used. So I extended the apm driver with the capability
of changing the idle_threshold at runtime (via a new born entry in
the proc
file system: /proc/sys/kernel/idle_threshold
).
To enable the proc
entry the driver has to be
loaded with an idle percentage below 100. You may achive this by
enabling the CPU idle call option in the kernel config. Or you may
pass idle_threshold=95
when loading the driver.
Once this has be done, you simply can read and write from and to
/proc/sys/kernel/idle_threshold
.