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

Re: [Xen-devel] Xen optimization



On Tue, 23 Oct 2018, Milan Boberic wrote:
> > Just add an && irq != 1023 to the if check.
> Added it and now when I create bare-metal guest it prints only once:
> 
> (XEN) DEBUG irq=0
> (XEN) d1v0 No valid vCPU found for vIRQ32 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ33 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ34 in the target list (0x2). Skip it
> root@uz3eg-iocc-2018-2:~# (XEN) d1v0 No valid vCPU found for vIRQ35 in
> the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ36 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ37 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ38 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ39 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ40 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ41 in the target list (0x2). Skip it
> 
> 
> This part always prints only once when I create this bare-metal guest
> like I mentioned in earlier replies and we said it doesn't do any
> harm:
> 
> (XEN) d1v0 No valid vCPU found for vIRQ32 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ33 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ34 in the target list (0x2). Skip it
> root@uz3eg-iocc-2018-2:~# (XEN) d1v0 No valid vCPU found for vIRQ35 in
> the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ36 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ37 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ38 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ39 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ40 in the target list (0x2). Skip it
> (XEN) d1v0 No valid vCPU found for vIRQ41 in the target list (0x2). Skip it
> 
> Now, from this patch I get:
> 
> (XEN) DEBUG irq=0
> 
> also printed only once.
> 
> Forgot to mention in reply before this one, I added serrors=panic and
> it didn't make any change, numbers are the same.
> 
> Thanks in advance!

It is good that there are no physical interrupts interrupting the cpu.
serrors=panic makes the context switch faster. I guess there are not
enough context switches to make a measurable difference.

I don't have any other things to suggest right now. You should be able
to measure an overall 2.5us IRQ latency (if the interrupt rate is not
too high).

Just to be paranoid, we might also want to check the following, again it
shouldn't get printed:

diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 5a4f082..6cf6814 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -532,6 +532,8 @@ void vgic_inject_irq(struct domain *d, struct vcpu *v, 
unsigned int virq,
     struct pending_irq *iter, *n;
     unsigned long flags;
 
+    if ( d->domain_id != 0 && virq != 68 )
+        printk("DEBUG virq=%d local=%d\n",virq,v == current);
     /*
      * For edge triggered interrupts we always ignore a "falling edge".
      * For level triggered interrupts we shouldn't, but do anyways.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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