[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Clock Interrupt not occurring. hypervisor_callback not being called.
On 2/28/06, Dave Winchell <dwinchell@xxxxxxxxxxxxxxx> wrote: > Have you tried making evtchn_pending and evtchn_mask volatile in > shared_info_t? I tried that. It's still showing the same behaviour. The function is as below. When the kprintf("l1 ... bit is uncommented, the clock events seem to get fired fine, and the the main loop also continues to run. When removed, it doesn't get called at all. It never gets as far as do_event. kprintf is a function that calls hypervisor_console_io. This is 2.0.7 btw. Regards Ivan <SNIP> PUBLIC void do_hypervisor_callback(struct stackframe_s *regs) { unsigned long l1, l2; unsigned int l1i, l2i, port; int irq; shared_info_t *s = hypervisor_shared_info; s->vcpu_data[0].evtchn_upcall_pending = 0; l1 = x86_atomic_xchg(&s->evtchn_pending_sel, 0); while ( l1 != 0 ) { /* kprintf("l1: %x\n");*/ l1i = x86_scan_forward(l1); l1 &= ~(1 << l1i); l2 = s->evtchn_pending[l1i] & ~s->evtchn_mask[l1i]; while ( l2 != 0 ) { kprintf("l2: %x\n", l2); l2i = x86_scan_forward(l2); l2 &= ~(1 << l2i); port = (l1i << 5) + l2i; if ( (irq = event_to_action[port]) != -1 ) { do_event(irq, regs); } } } } <ENDSNIP> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |