diff -r fe930e1b2ce8 xen/arch/x86/io_apic.c --- a/xen/arch/x86/io_apic.c Fri Aug 06 18:35:02 2010 +0100 +++ b/xen/arch/x86/io_apic.c Tue Aug 10 14:36:14 2010 +0100 @@ -446,6 +446,7 @@ genapic->send_IPI_mask(&cleanup_mask, IRQ_MOVE_CLEANUP_VECTOR); cfg->move_in_progress = 0; + printk("%s: Done moving vec %d\n", __func__, cfg->vector); } void irq_complete_move(struct irq_desc **descp) @@ -2266,7 +2267,10 @@ vector = assign_irq_vector(irq); if (vector < 0) + { + printk("%s: assign_irq_vector returned %d\n", __func__, vector); return vector; + } entry.vector = vector; apic_printk(APIC_DEBUG, KERN_DEBUG "IOAPIC[%d]: Set PCI routing entry " diff -r fe930e1b2ce8 xen/arch/x86/irq.c --- a/xen/arch/x86/irq.c Fri Aug 06 18:35:02 2010 +0100 +++ b/xen/arch/x86/irq.c Tue Aug 10 14:36:14 2010 +0100 @@ -201,6 +201,7 @@ } cfg->move_in_progress = 0; + printk("Done moving irq %d v %d\n", irq, cfg->vector); } void clear_irq_vector(int irq) @@ -349,7 +350,13 @@ cpumask_t tmp_mask; if ((cfg->move_in_progress) || cfg->move_cleanup_count) + { + if (cfg->move_in_progress) + printk("irq %d v%d: move_in_progress\n", irq, cfg->vector); + if (cfg->move_cleanup_count) + printk("irq %d v%d: move_cleanup_count\n", irq, cfg->vector); return -EBUSY; + } old_vector = irq_to_vector(irq); if (old_vector) { @@ -391,9 +398,11 @@ if (per_cpu(vector_irq, new_cpu)[vector] != -1) goto next; /* Found one! */ + printk("irq %d vec %d\n", irq, vector); current_vector = vector; current_offset = offset; if (old_vector) { + printk("irq %d moving vector %u\n", irq, old_vector); cfg->move_in_progress = 1; cpus_copy(cfg->old_domain, cfg->domain); } @@ -422,7 +431,9 @@ spin_lock_irqsave(&vector_lock, flags); ret = __assign_irq_vector(irq, cfg, TARGET_CPUS); - if (!ret) { + if ( ret < 0 ) + printk("%s: __asign_irq_vector returned %d\n", __func__, ret); + else if (ret == 0) { ret = cfg->vector; cpus_copy(desc->affinity, cfg->domain); } diff -r fe930e1b2ce8 xen/arch/x86/physdev.c --- a/xen/arch/x86/physdev.c Fri Aug 06 18:35:02 2010 +0100 +++ b/xen/arch/x86/physdev.c Tue Aug 10 14:36:14 2010 +0100 @@ -478,6 +478,8 @@ break; ret = mp_register_gsi(setup_gsi.gsi, setup_gsi.triggering, setup_gsi.polarity); + if ( ret < 0 ) + printk("PHYSDEVOP_setup_gsi: mp_register_gsi returned %d\n", (int)ret); break; } default: