> -----Original Message----- > From: Gerd Hoffmann [mailto:kra...@redhat.com] > Sent: Tuesday, May 13, 2014 9:27 PM > To: Gonglei (Arei) > Cc: qemu-devel@nongnu.org; Huangweidong (C); Michael S. Tsirkin > Subject: Re: usb: usb tablet freeze when save/restore guest os > > Hi, > > > In the situation of save/restore guest os, when the guest os is saving > > memory iteratively, meanwhile the usb tablet work normally (by vnc). When > qemu > > has set the UHCI_PORT_RD bit to 1, and post a interrupt to guest os, but > > guest os has hibernated this moment, so the interrupt cannot be handled > > in time. So, the UHCI_PORT_RD bit will not be cleared by > uhci_finish_suspend(). > > > When we restore the guest os, and the usb tablet event happen again, but > > because of UHCI_PORT_RD bit being set to 1, qemu consider the guest os is > > handling the interrupt of resuming UHCI, so will not post another interrupt. > > Another interrupt should not be needed. If we don't deliver the > interrupt before suspend, we must deliver it after resume. > The fact is that an interrupt has been delivered during suspend, and guest os don't response it.
>It must not get lost, loosing interrupts can cause all sorts of problems. > Yes. Strongly agreed. > There was a kernel bug recently causing lost interrupts on migration, > maybe this is the same (rh bug 1036478)? Paolo? Is the fix upstream? > Which kernel has it? > Oh? Sounds good. Cc'ing Paolo for attention. Thanks. Best regards, -Gonglei