Re: [PATCH spice-common] quic: Remove 'no-inline' hack

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 
> Hi,
> 
> On Fri, May 25, 2018 at 04:51:01PM +0100, Frediano Ziglio wrote:
> > The quic code goes through a function pointer in two places in
> > order to try to prevent the compiler from inlining code.
> > Doing performance measurements this trick does not work anymore
> 
> What do you mean by performance measurements? You've measured
> with and without this patch and it is basically the same?
> 

So basically that sometimes are better sometimes worst :-)
Should I extend the comment somehow?

Today I merged Christophe test (sent time ago), I have a version that
does also time measurements.

> > and just make code less readable.
> 
> Indeed, this is nicer.
> 
> I'm just curious about the measurement that you mention above but
> this is an improvement from my point of view,
> 
> Acked-by: Victor Toso <victortoso@xxxxxxxxxx>
> 
> > This patch and message was based on a previous work of
> > Christophe Fergeau.
> >
> > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx>
> > ---
> >  common/quic.c | 23 ++---------------------
> >  1 file changed, 2 insertions(+), 21 deletions(-)
> >
> > diff --git a/common/quic.c b/common/quic.c
> > index 12e9b0b..a9a82ba 100644
> > --- a/common/quic.c
> > +++ b/common/quic.c
> > @@ -388,19 +388,10 @@ static void more_io_words(Encoder *encoder)
> >      encoder->io_end = encoder->io_now + num_io_words;
> >  }
> >  
> > -static void __write_io_word(Encoder *encoder)
> > -{
> > -    more_io_words(encoder);
> > -    *(encoder->io_now++) = encoder->io_word;
> > -}
> > -
> > -static void (*__write_io_word_ptr)(Encoder *encoder) = __write_io_word;
> > -
> >  static inline void write_io_word(Encoder *encoder)
> >  {
> >      if (encoder->io_now == encoder->io_end) {
> > -        __write_io_word_ptr(encoder); //disable inline optimizations
> > -        return;
> > +        more_io_words(encoder);
> >      }
> >      *(encoder->io_now++) = encoder->io_word;
> >  }
> > @@ -441,20 +432,10 @@ static inline void flush(Encoder *encoder)
> >      encode(encoder, 0, 1);
> >  }
> >  
> > -static void __read_io_word(Encoder *encoder)
> > -{
> > -    more_io_words(encoder);
> > -    encoder->io_next_word = GUINT32_FROM_LE(*(encoder->io_now++));
> > -}
> > -
> > -static void (*__read_io_word_ptr)(Encoder *encoder) = __read_io_word;
> > -
> > -
> >  static inline void read_io_word(Encoder *encoder)
> >  {
> >      if (encoder->io_now == encoder->io_end) {
> > -        __read_io_word_ptr(encoder); //disable inline optimizations
> > -        return;
> > +        more_io_words(encoder);
> >      }
> >      spice_assert(encoder->io_now < encoder->io_end);
> >      encoder->io_next_word = GUINT32_FROM_LE(*(encoder->io_now++));
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]