UML - An idle system should have zero load average
PATCH 3/3 UML - An idle system should have zero load average
The ever-vigilant users of linode.com noticed that an idle 2.6 UML has a persistent load average of ~.4.
It turns out that because the UML timer handler processed softirqs before actually delivering the tick, the tick was counted in the context of the idle thread about half the time.
--
arch/um/kernel/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/um/kernel/time.c +2 -2
@@ -177,6 +177,8 @@ int do_settimeofday(struct timespec *tv)void timer_handler (int sig,union uml_pt_regs *regs) { +if (current_thread->cpu ==0 ) +timer_irq (regs);local_irq_disable ();irq_enter (); update_process_times(CHOOSE_MODE(
@@ -184,6 +186,4 @@ void timer_handler(int sig, union uml_pt (regs)->skas.is_user));irq_exit ();local_irq_enable (); -if (current_thread->cpu ==0 ) -timer_irq (regs); }
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel