Want to instantly get a 15% performance boost?
Then issue the following command:
echo "interrupt=no" > /proc/miscio/power_enable_config
I finally found out what is causing ksoftirqd so much grief! It is the gpio driver. Turns out the +5V power on/off gpio is configured as an output (OK) and also an interrupt source (not OK). This results in a gpio interrupt storm.
The only thing that keeps the problem from being *much* worse is that the gpio driver disables gpio interrupts while it applies a 10mS debounce period to the input pins. This action limits the total number of actual interrupts to only 100 / sec which is not so bad.
The performance hit comes from the way the debounce actually happens. In the driver, input pins are debounced by continuously rescheduling a bottom half tasklet until the 10mS debounce period has expired. Ksoftirqd was being charged with this CPU time. The sharing of time slices between this tasklet and other runnable, cpu bound, processes resulted in the degraded performance.
Here's the before and after execution time of a cpu intensive task:
# time /bin/tar tvzf junk.tgz > /opt/tmp/file.txt
real 4m 40.36s
user 3m 54.46s
sys 0m 3.02s
# echo "interrupt=no" > /proc/miscio/power_enable_config
# time /bin/tar tvzf junk.tgz > /opt/tmp/file.txt
real 4m 0.15s
user 3m 54.14s
sys 0m 3.04s
See how the real time went from 4:40.36 to 4:00.15? That's 16.7% faster!
One final thing, here's the new load average of my box:
load average: 0.14, 0.03, 0.01 ;-)
- K.C.
I simply added echo "interrupt=no" > /proc/miscio/power_enable_config
At the end of the rc.local file before fi.
Am I doing it right?
is this still applicable?
Hi K.C. -
Just wondering, if this is still applicable to your WL700gE_kc_1078_02.nas firmware?
Is it already in there? But i dont seem to see it in the rc.local file.
I think A 15% performance gain is a lot specially if mldonky tops up to 90%.
Thanks,
Lloyd:D
ksoftirqd_CPU0 still a problem for me
hy i have a wl500gp v1 ,oleg`s 1.9.2.7-10
it work`s perfectly. no hdd atached for the moment
but..
when i start my download from internet it goes 5.8 mb .maxim (i have a 10mb band)
The problem is when i`m downloading the ksoftirqd_CPU0 uses the cpu 100%
and if i enter the 192.168.1.1 to aces my roter..i have a big lag...sometimes even the page is not displyed corectly.
somthing i noticed ..i have to pc wired atached to my wl 500gp and if i download somthing from one pc to another(both top configurations) i have the 6mb 6.5 max transfer. and i know that this is the half speed normaly it must be 10 12 mb no? 100/8=12.5
i ve tried ""echo "interrupt=no" > /proc/miscio/power_enable_config"" i found in the "how to speed up 15 %" thread..but i ve got
[admin@gtm /proc]$ echo "interrupt=no" > /proc/miscio/power_enable_config
-sh: cannot create /proc/miscio/power_enable_config: Directory nonexistent
can someone help me to ...calm down the ksoftirqd_CPU0 ..?
Edit/Delete Message