[Spice-devel] [PATCH 22/24] server/red_channel: don't set blocked when ack window full

Alon Levy alevy at redhat.com
Mon Feb 7 06:11:09 PST 2011


On Wed, Feb 02, 2011 at 11:30:42PM +0200, Alon Levy wrote:
> On Wed, Feb 02, 2011 at 07:53:22PM +0100, Marc-André Lureau wrote:
> > Isn't this undoing what was done in patch 19??
> > 
> It is. Good catch. But the problem the comment in patch 19 reports
> does need to be addressed, that is setting the blocked flag if ack
> window breached. I'll make a new patch instead of 19 and 22.
> 

Actually, I think 22 was correct, so I'm just dropping both (well,
I'll leave the red_channel_waiting_for_ack function).

> > On Wed, Jan 19, 2011 at 7:08 PM, Alon Levy <alevy at redhat.com> wrote:
> > > blocked is set only on output block.
> > > ---
> > >  server/red_channel.c |   10 ++++++----
> > >  1 files changed, 6 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/server/red_channel.c b/server/red_channel.c
> > > index 9ad2e5a..0eba73c 100644
> > > --- a/server/red_channel.c
> > > +++ b/server/red_channel.c
> > > @@ -574,18 +574,20 @@ void red_channel_pipe_add_type(RedChannel *channel, int pipe_item_type)
> > >     red_channel_push(channel);
> > >  }
> > >
> > > +static inline int red_channel_waiting_for_ack(RedChannel *channel)
> > > +{
> > > +    return (channel->handle_acks && (channel->ack_data.messages_window > channel->ack_data.client_window * 2));
> > > +}
> > > +
> > >  static inline PipeItem *red_channel_pipe_get(RedChannel *channel)
> > >  {
> > >     PipeItem *item;
> > >
> > >     if (!channel || channel->send_data.blocked ||
> > > +        red_channel_waiting_for_ack(channel) ||
> > >         !(item = (PipeItem *)ring_get_tail(&channel->pipe))) {
> > >         return NULL;
> > >     }
> > > -    if (channel->handle_acks && (channel->ack_data.messages_window > channel->ack_data.client_window * 2)) {
> > > -        channel->send_data.blocked = TRUE;
> > > -        return NULL;
> > > -    }
> > >     --channel->pipe_size;
> > >     ring_remove(&item->link);
> > >     return item;
> > > --
> > > 1.7.3.4
> > >
> > > _______________________________________________
> > > Spice-devel mailing list
> > > Spice-devel at lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/spice-devel
> > >
> > 
> > 
> > 
> > -- 
> > Marc-André Lureau
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list