[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] pv-grub guest booting fail with recent qemu-xen
> -----Original Message----- > From: Wei Liu [mailto:wei.liu2@xxxxxxxxxx] > Sent: Monday, April 11, 2016 6:54 PM > To: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>; Wei Liu > <wei.liu2@xxxxxxxxxx>; Hao, Xudong <xudong.hao@xxxxxxxxx>; Konrad > Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>; xen-devel@xxxxxxxxxxxxx; > stefano.stabellini@xxxxxxxxxxxxx; Anthony PERARD <anthony.perard@xxxxxxxxxx> > Subject: Re: [Xen-devel] pv-grub guest booting fail with recent qemu-xen > > On Sun, Apr 10, 2016 at 10:14:46PM +0200, Samuel Thibault wrote: > > Hello, > > > > > > > > + if (prod - out_cons >= XENFB_OUT_RING_LEN) { > > > > > > + return; > > > > > > + } > > > > This test seems overzealous to me: AIUI, the producer can produce > > XENFB_OUT_RING_LEN events, and thus prod - out_cons is exactly > > XENFB_OUT_RING_LEN, i.e. there is no room left at all. > > > > The frontend part is: > > > > while (page->out_prod - page->out_cons == XENFB_OUT_RING_LEN) > > schedule(); > > > > I.e. it waits while the buffer is exactly full. > > > > So it seems to me the bug is at the backend side. > > > > OK, thanks for checking! > > Hudong, can you try the following diff? Yes, This patch works with testing. Thanks, -Xudong > > diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c index 8eb3046..284b345 > 100644 > --- a/hw/display/xenfb.c > +++ b/hw/display/xenfb.c > @@ -789,7 +789,7 @@ static void xenfb_handle_events(struct XenFB *xenfb) > > prod = page->out_prod; > out_cons = page->out_cons; > - if (prod - out_cons >= XENFB_OUT_RING_LEN) { > + if (prod - out_cons > XENFB_OUT_RING_LEN) { > return; > } > xen_rmb(); /* ensure we see ring contents up to prod */ > > > Samuel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |