[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH]Fix a restored domain cannot use mouse and keyboard
Hi, Sorry for my late reply. Qemu generates(produces) events to the event channel but no event on it are processed during save. When a domain is restored, pending events and selectors are cleared as follows in tools/libxc/xc_domain_restore.c. 1125 /* clear any pending events and the selector */ 1126 MEMSET_ARRAY_FIELD(new_shared_info, evtchn_pending, 0); 1127 for ( i = 0; i < MAX_VIRT_CPUS; i++ ) 1128 SET_FIELD(new_shared_info, vcpu_info[i].evtchn_pending_sel, 0); So it processes(consumes) no pending event on the event channel and page->in_cons doesn't increase. Qemu has the following code in tools/ioemu/hw/xenfb.c. 568 prod = page->in_prod; 569 if (prod - page->in_cons == XENKBD_IN_RING_LEN) { 570 errno = EAGAIN; 571 return -1; 572 } If the ring buffer fills up to (prod - page->in_cons == XENKBD_IN_RING_LEN), then no event notifications go to the event channel. Thanks. KAZ From: Markus Armbruster <armbru@xxxxxxxxxx> Subject: Re: [Xen-devel] [PATCH]Fix a restored domain cannot use mouse and keyboard Date: Fri, 08 Feb 2008 16:17:01 +0100 > SUZUKI Kazuhiro <kaz@xxxxxxxxxxxxxx> writes: > > > Hi all, > > > > I found a bug that a restored domain could not use mouse and > > keyboard, when the mouse is moved while saving the domain. > > > > The following patch fixes it. > > > > Thanks. > > KAZ > > You didn't tell us what exactly went wrong, so I can only guess. I > guess that when the ring buffer fills up completely during save, then > xenkbd_resume() finds it full, and as long as it remains full, no > further events go in, and no notifications go to the event channel. > As long as the (new) backend doesn't get a notification on its event > channel, it doesn't take out anything, so the ring buffer remains > full. Deadlock. > > Is that correct? > > The fix loses the contents of the ring buffer. I guess that's > tolerable. > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |