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
|