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.

Samuel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to