[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] BUG() on soft lockup upon suspend/resume


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: Glauber de Oliveira Costa <gcosta@xxxxxxxxxx>
  • Date: Mon, 9 Oct 2006 18:22:42 -0300
  • Delivery-date: Mon, 09 Oct 2006 14:22:58 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi,

In systems with vcpu > 1, a BUG due to a detected soft lockup seems to be 
triggered after system resume/suspend. This is probably due to the lack of 
seqlocking around the region that does the local time processing. 

The following patch fix this.

-- 
Glauber de Oliveira Costa
Red Hat Inc.
"Free as in Freedom"
--- linux-2.6.18-orig/arch/i386/kernel/time-xen.c       2006-10-06 
14:37:41.000000000 -0400
+++ linux-2.6.18.x86_64/arch/i386/kernel/time-xen.c     2006-10-09 
17:13:54.000000000 -0400
@@ -666,6 +666,13 @@ irqreturn_t timer_interrupt(int irq, voi
                clock_was_set();
        }
 
+       /* Local timer processing (see update_process_times()). */
+       run_local_timers();
+       if (rcu_pending(cpu))
+               rcu_check_callbacks(cpu, user_mode(regs));
+       scheduler_tick();
+       run_posix_cpu_timers(current); 
+
        write_sequnlock(&xtime_lock);
 
        /*
@@ -709,13 +716,6 @@ irqreturn_t timer_interrupt(int irq, voi
                                            (cputime_t)delta_cpu);
        }
 
-       /* Local timer processing (see update_process_times()). */
-       run_local_timers();
-       if (rcu_pending(cpu))
-               rcu_check_callbacks(cpu, user_mode(regs));
-       scheduler_tick();
-       run_posix_cpu_timers(current);
-
        return IRQ_HANDLED;
 }
 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.