WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ppc-devel

Re: [XenPPC] IPI problems

Please check if you linux kernel is up to date.
I just built clean xenppc-unstable.hg (assuming it has the issues you state below) and all IPI ^A*3 tests (esp 't' and 'd') work just fine on my maple
I created an NFS domain and Did get:

(XEN) Assertion '!cpu_isset(nxt, cpu_core_map[cpu])' failed, line 465, file schc
(XEN) BUG at sched_credit.c:465
(XEN) ----[ Xen-3.0-unstable     ]----
(XEN) CPU: 00000001   DOMID: 00000001
(XEN) pc c00000000003c3d0 msr 8000000000009032
(XEN) lr c000000000045f54 ctr c000000000045f40
(XEN) srr0 ffffffffffffffff srr1 ffffffffffffffff
(XEN) r00: 0000000024555588 c000000000673cc0 c00000000066df00 0000000000000000 (XEN) r04: 0000000000000001 0000000000000000 0000000024555582 c0000000000100a8 (XEN) r08: c000000000670080 c000000000045f40 c000000000670000 c000000000045e78 (XEN) r12: c0000000011ceb90 c000000000546100 5555555555555555 5555555555555555 (XEN) r16: 5555555555555555 5555555555555555 5555555555555555 5555555555555555 (XEN) r20: 5555555555555555 5555555555555555 5555555555555555 5555555555555555 (XEN) r24: 5555555555555555 5555555555555555 4000000000000000 c000000000000000 (XEN) r28: 0000000000000000 c0000000006c4fc8 c0000000005552e8 0000000000000001
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 1:
(XEN) BUG at sched_credit.c:465
(XEN) ****************************************
(XEN)
(XEN) Reboot in five seconds...
(XEN) ----[ Xen-3.0-unstable     ]----
(XEN) CPU: 00000001   DOMID: 00000001
(XEN) pc c00000000003c3d0 msr 8000000000009032
(XEN) lr c000000000045f54 ctr c000000000045f40
(XEN) srr0 ffffffffffffffff srr1 ffffffffffffffff
(XEN) r00: 0000000024555588 c000000000673cc0 c00000000066df00 0000000000000000 (XEN) r04: 0000000000000001 0000000000000000 0000000024555582 c0000000000100a8 (XEN) r08: c000000000670080 c000000000045f40 c000000000670000 c000000000045e78 (XEN) r12: c0000000011ceb90 c000000000546100 5555555555555555 5555555555555555 (XEN) r16: 5555555555555555 5555555555555555 5555555555555555 5555555555555555 (XEN) r20: 5555555555555555 5555555555555555 5555555555555555 5555555555555555 (XEN) r24: 5555555555555555 5555555555555555 4000000000000000 c000000000000000 (XEN) r28: 0000000000000000 c0000000006c4fc8 c0000000005552e8 0000000000000001 (XEN) [000000000033B6F0] 0000000000435364 .debugger_trap_immediate +0x18/0x38
(XEN) [000000000033B770] 00000000004352C8 .panic+0xe8/0x16c
(XEN) [000000000033B890] 000000000043544C .__bug+0x5c/0x6c
(XEN) [000000000033B910] 000000000041E3A0 .csched_cpu_pick+0x328/0x458
(XEN) [000000000033B9E0] 000000000041ED70 .csched_vcpu_acct+0x144/0x1dc
(XEN) [000000000033BA70] 0000000000421170 .csched_tick+0x48/0xe8
(XEN) [000000000033BB10] 0000000000429DD8 .t_timer_fn+0xec/0x164
(XEN) [000000000033BBC0] 000000000042DBA4 .timer_softirq_action +0xd0/0x1b8
(XEN) [000000000033BC90] 000000000042A758 .do_softirq+0xc4/0xec
(XEN) [000000000033BD20] 0000000000455AC4 test_all_events+0x5c/0x64
(XEN) [000000000043EDE0] 80010001FBE1FFF8
(XEN) SP (600000004bffffd8) is not in xen space


On Jan 12, 2007, at 6:45 PM, Hollis Blanchard wrote:

I mentioned that I accidentally pushed an upstream merge to
xenppc-unstable while it's still broken. There are a couple broken
things. First, DomU console stops mid-string early in boot. Could be an
event channel problem with the ring buffer; haven't investigated.

We seem to have an IPI problem, which causes vcpu_pause() to hang the
system. The following patch, tested on JS20 and JS21, illustrates it.
Before dom0 starts, IPIs work fine. After Linux's mpic_init(), IPIs (as
triggered by the 'I' keyhandler) lock the machine. Actually, it looks
like a message is trying to get out, because after a while we see a '('
emitted (presumably the first character in "(XEN)").

(When I comment out mpic_init() in dom0, Xen IPIs continue to work but
real IRQs (e.g. the IDE controller) fail in dom0.)

Why is this problem occurring only after an upstream merge? I don't
know. It's possible that some common IRQ code has changed to no longer
call the same arch-specific code, but I'm just speculating.



diff -r d6481755ade6 xen/arch/powerpc/setup.c
--- a/xen/arch/powerpc/setup.c  Thu Jan 11 13:39:27 2007 -0600
+++ b/xen/arch/powerpc/setup.c  Fri Jan 12 17:12:27 2007 -0600
@@ -438,7 +438,9 @@ static void __init __start_xen(multiboot

     domain_unpause_by_systemcontroller(dom0);
 #ifdef DEBUG_IPI
-    ipi_torture_test();
+    //ipi_torture_test();
+    extern void do_ipi_test(char c);
+    do_ipi_test(0);
 #endif
     startup_cpu_idle_loop();
 }
diff -r d6481755ade6 xen/common/keyhandler.c
--- a/xen/common/keyhandler.c   Thu Jan 11 13:39:27 2007 -0600
+++ b/xen/common/keyhandler.c   Fri Jan 12 17:44:46 2007 -0600
@@ -260,6 +260,16 @@ static void do_debug_key(unsigned char k
                              bit. */
 }

+static void got_ipi(void *info)
+{
+    printk("CPU %u got IPI\n", smp_processor_id());
+}
+
+void do_ipi_test(unsigned char key)
+{
+    smp_call_function(got_ipi, NULL, 0, 0);
+}
+
 void initialize_keytable(void)
 {
     open_softirq(KEYPRESS_SOFTIRQ, keypress_softirq);
@@ -286,6 +296,8 @@ void initialize_keytable(void)
 #endif

     register_irq_keyhandler('%', do_debug_key,   "Trap to xendbg");
+
+    register_keyhandler('I', do_ipi_test, "IPI test");
 }

 /*
diff -r d6481755ade6 xen/drivers/char/console.c
--- a/xen/drivers/char/console.c        Thu Jan 11 13:39:27 2007 -0600
+++ b/xen/drivers/char/console.c        Fri Jan 12 17:09:01 2007 -0600
@@ -246,7 +246,7 @@ static void sercon_puts(const char *s)

/* CTRL-<switch_char> switches input direction between Xen and DOM0. */
 #define SWITCH_CODE (opt_conswitch[0]-'a'+1)
-static int xen_rx = 1; /* FALSE => serial input passed to domain 0. */ +static int xen_rx = 0; /* FALSE => serial input passed to domain 0. */

 static void switch_serial_input(void)
 {
diff -r d6481755ade6 xen/include/asm-powerpc/smp.h
--- a/xen/include/asm-powerpc/smp.h     Thu Jan 11 13:39:27 2007 -0600
+++ b/xen/include/asm-powerpc/smp.h     Fri Jan 12 17:03:59 2007 -0600
@@ -52,7 +52,7 @@ void smp_event_check_interrupt(void);
 void smp_event_check_interrupt(void);
 void send_IPI_mask(cpumask_t mask, int vector);

-#undef DEBUG_IPI
+#define DEBUG_IPI
 #ifdef DEBUG_IPI
 void ipi_torture_test(void);
 #endif



--
Hollis Blanchard
IBM Linux Technology Center


_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel


_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel

<Prev in Thread] Current Thread [Next in Thread>