[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] 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? 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 |