Hi,
On more analysis I found that there is a race condition in Guest OS such that 
before complete initialization happens for APs the interrupt migration takes 
place and hence incorrect cpu is written to io-apic's rte for that particular 
pin. The debug prints either in Guest OS or vmm just kills this race condition.
Thanks.  

RegardsAshutosh

> From: mrashut...@hotmail.com
> To: freebsd-virtualization@freebsd.org
> Subject: io-apic interrupt migration on bhyve
> Date: Fri, 17 Oct 2014 13:24:34 +0000
> 
>  
> 
> Hi,
> 
>  
> 
> I am witnessing some strange behavior w.r.t io-apic
> interrupt migration on bhyve.
> 
> I have below assignment for a level triggered
> interrupt:
> 
>  
> 
> io-apic pin - p
> 
> cpu vector - v
> 
> cpu id - 0
> 
>  
> 
> when this interrupt is migrated to cpu 1 then
> the assignment is as below
> 
>  
> 
> io-apic pin - p
> 
> cpu vector - v1
> 
> cpu id - 1
> 
>  
> 
> When VM boots up then OS is getting interrupts for 
> 
>  
> 
> io-apic pin - p
> 
> cpu vector - v1
> 
> cpu id - 0
> 
>  
> 
> Added debug prints in vioapic_write function
> to check the values written to io-apic rte for this pin and then VM gets
> correct interrupts i.e (vector v, cpu 0 ) before the interrupts are migrated 
> and
> (vector v1, cpu 1) after the migration When prints are removed then the
> problem happens and we see interrupts for (vector v1 and cpu 0).
> RegardsAshutosh                                         
> _______________________________________________
> freebsd-virtualization@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
> To unsubscribe, send any mail to 
> "freebsd-virtualization-unsubscr...@freebsd.org"
                                          
_______________________________________________
freebsd-virtualization@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
To unsubscribe, send any mail to 
"freebsd-virtualization-unsubscr...@freebsd.org"

Reply via email to