The patch below might fix the ksoftirqd load average >= 1 problem.

I can't reproduce it, but in chasing it in one of Chris Aker's
non-debuggable images, I uncovered this bug.

Testing and feedback are welcome.

It's applied against my incrementals, but it should be easy to apply
in any other UML.

                                Jeff

Index: linux-2.6.12/arch/um/kernel/time_kern.c
===================================================================
--- linux-2.6.12.orig/arch/um/kernel/time_kern.c        2005-07-26 
16:46:19.000000000 -0400
+++ linux-2.6.12/arch/um/kernel/time_kern.c     2005-07-26 18:46:09.000000000 
-0400
@@ -189,8 +189,10 @@
 void timer_handler(int sig, union uml_pt_regs *regs)
 {
        local_irq_disable();
+       irq_enter();
        update_process_times(CHOOSE_MODE(user_context(UPT_SP(regs)), 
                                         (regs)->skas.is_user));
+       irq_exit();
        local_irq_enable();
        if(current_thread->cpu == 0)
                timer_irq(regs);


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to