[Spice-devel] [PATCH 2/2] Optimise client pipe passing pipe position instead of data

Jonathon Jongsma jjongsma at redhat.com
Wed Sep 14 15:23:21 UTC 2016


On Wed, 2016-09-14 at 06:30 -0400, Frediano Ziglio wrote:
> > 
> > 
> > I haven't looked very carefully at the changes, but a few comments
> > about readability:
> > 
> > On Mon, Sep 12, 2016 at 04:32:03PM +0100, Frediano Ziglio wrote:
> > > 
> > > This avoid to have the search the data scanning all the
> > > queue changing the order of these operations from O(n) to O(1).
> > > 
> > > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > > ---
> > >  server/dcc-send.c           |  9 ++++-----
> > >  server/dcc.c                | 20 +++++++++-----------
> > >  server/dcc.h                |  2 +-
> > >  server/red-channel-client.c | 32 +++++++++++++++++++++++++----
> > > ---
> > >  server/red-channel-client.h |  4 +++-
> > >  5 files changed, 42 insertions(+), 25 deletions(-)
> > > 
> > > diff --git a/server/dcc.c b/server/dcc.c
> > > index 0d672df..ece37d9 100644
> > > --- a/server/dcc.c
> > > +++ b/server/dcc.c
> > > @@ -78,15 +77,14 @@ int
> > > dcc_clear_surface_drawables_from_pipe(DisplayChannelClient *dcc,
> > > int
> > > surface
> > >         no other drawable depends on them */
> > >  
> > >      rcc = RED_CHANNEL_CLIENT(dcc);
> > > -    l = rcc->priv->pipe.head;
> > > -    while (l != NULL) {
> > > -        GList *cur = l;
> > > +    for (l = rcc->priv->pipe.head; l != NULL; item_pos = NULL) {
> > 
> > Please no :) the while() version might be better. The  for()
> > version
> > with the loop index being updated within the loop, but only after
> > doing
> > a bit of work with the previous value of the loop index is really
> > unexpected.
> > 
> 
> What can I say: I give up!

Give up? Why?

> 
> This patch is not related to GQueue nor to optimization.
> This fixes a regression introduced in the first patch.

Which patch was the regression introduced in? Was that patch merged
already?

> I spotted this regression the first time (some months ago) this
> patch was posted on the mailing list but no matter saying that some
> path touched some sensible code that required more attention, no
> matter all my consideration about complexity no one pick up again
> these patches and noted the issue.

I'm afraid that I don't remember a discussion from some months ago. If
there was a regression introduced by a patch that has already been
merged, then you should feel free to ping for review if something was
not getting reviewed. I wasn't aware of any regressions. 

On the other hand, if the regression was introduced in one of the
patches that are still under review, then I don't quite understand your
frustration. Isn't finding and fixing regressions part of what a review
is for?


> 
> Now I could think different causes:
> - we are too tired of these patches and we don't pay much attention;
> - we look more at style than behavior;
> - we are too busy to spend too much time on the review.
> Any of the reason do not seem really a good reason to me.
> Any other reason I don't see?
> 

Do you have suggestions for improving things?

Jonathon


More information about the Spice-devel mailing list