[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Xen optimization
On Mon, 22 Oct 2018, Milan Boberic wrote: > Hi, > > > I think we want to fully understand how many other interrupts the > > baremetal guest is receiving. To do that, we can modify my previous > > patch to suppress any debug messages for virq=68. That way, we should > > only see the other interrupts. Ideally there would be none. > > diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c > > index 5a4f082..b7a8e17 100644 > > --- a/xen/arch/arm/vgic.c > > +++ b/xen/arch/arm/vgic.c > > @@ -577,7 +577,11 @@ void vgic_inject_irq(struct domain *d, struct vcpu *v, > > unsigned int virq, > > /* the irq is enabled */ > > if ( test_bit(GIC_IRQ_GUEST_ENABLED, &n->status) ) > > + { > > gic_raise_guest_irq(v, virq, priority); > > + if ( d->domain_id != 0 && virq != 68 ) > > + printk("DEBUG virq=%d local=%d\n",virq,v == current); > > + } > > list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight ) > > { > > when I apply this patch there are no prints nor debug messages in xl > dmesg. So bare-metal receives only interrupt 68, which is good. Yes, good! > > Next step would be to verify that there are no other physical interrupts > > interrupting the vcpu execution other the irq=68. We should be able to > > check that with the following debug patch: > > > > diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c > > index e524ad5..b34c3e4 100644 > > --- a/xen/arch/arm/gic.c > > +++ b/xen/arch/arm/gic.c > > @@ -381,6 +381,13 @@ void gic_interrupt(struct cpu_user_regs *regs, int > > is_fiq) > > /* Reading IRQ will ACK it */ > > irq = gic_hw_ops->read_irq(); > > + if (current->domain->domain_id > 0 && irq != 68) > > + { > > + local_irq_enable(); > > + printk("DEBUG irq=%d\n",irq); > > + local_irq_disable(); > > + } > > + > > if ( likely(irq >= 16 && irq < 1020) ) > > { > > local_irq_enable(); > > But when I apply this patch it prints forever: > (XEN) DEBUG irq=1023 > > Thanks in advance! I know why! It's because we always loop around until we read the spurious interrupt. Just add an && irq != 1023 to the if check. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |