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"