|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Re: Losing PS/2 Interrupts
On May 19, 2011, at 5:45 PM, Thomas Goetz wrote:
> I'm running PVOPs 2.6.38 on Xen 4.0.2 RC3 and while booting a guest I lose
> interrupts for the PS/2 trackpad. The trackpad stops functioning because the
> device is waiting for service. I added a work around that calls
> i8042_interupt form a timer if it hasn't been called in 1s and it started
> working again. I added some code to Xen to count IRQ 12 and compared that to
> the IRQ 12 count in //proc/interrupts (I stopped PS/2 activity and waited for
> PS/2 interrupt activity to stop before taking the counts). I lose one
> interrupt in Dom0 every time the trackpad freezes.
>
>
> (XEN) IRQ 12 count 21048
> 12: 21047 0 xen-pirq-ioapic-edge i8042 <--- lost an
> interrupt in dom0
> ...
>
> (XEN) IRQ 12 count 48540
> 12: 48537 0 xen-pirq-ioapic-edge i8042 <--- lost 3
> interrupts in dom0
>
>
> I looked at the point at which the trackpad gets it's last interrupt in a
> trace and the other major activity at that time is the event channel that
> services the Qemu vcpu io_req code.
>
> This 2.6.38 tree has a merge of Stafano's 2.6.39 fixes in
> drivers/xen/events.c.
>
> Anyone have any ideas or suggestions?
>
More data. The number of missing interrupts is equal to the number of times
__do_IRQ_guest called send_guest_pirq and incremented already_pending. The
number of IRQ 12 interrupts reported by /proc/interrupts is the same as the
count of times __xen_evtchn_do_upcall called generic_handle_irq_desc for IRQ
12. So the issue has to be between send_guest_pirq in Xen and
__xen_evtchn_do_upcall in dom0.
-Tom Goetz
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|