> -----Original Message-----
> From: Bill Fischofer [mailto:bill.fischo...@linaro.org]
> Sent: Thursday, January 12, 2017 2:22 PM
> To: Savolainen, Petri (Nokia - FI/Espoo) <petri.savolainen@nokia-bell-
> labs.com>
> Cc: lng-odp@lists.linaro.org
> Subject: Re: [lng-odp] [API-NEXT PATCHv6 2/5] linux-generic: packet:
> implement reference apis
> 
> On Thu, Jan 12, 2017 at 6:12 AM, Savolainen, Petri (Nokia - FI/Espoo)
> <petri.savolai...@nokia-bell-labs.com> wrote:
> > This patch is now merged, although I had some doubts that it has bad
> impact on performance. Here are some performance results for couple of
> simple, single thread packet alloc/free test cases. No references
> involved, just plain packets as before.
> >
> > Test results before and after "linux-generic: packet: implement
> reference apis":
> >
> >                         CPU cycles per operation
> >                                 before  after
> > packet_alloc            127.8           250.9           +96 %
> > packet_alloc_multi      873.7           1538.8  +76 %
> > packet_free                     31              116.8           +277 %
> > packet_free_multi               214.5           1369.2  +538 %
> > packet_alloc_free               73.4            193.7           +164 %
> > packet_alloc_free_multi 286.1           1228.8  +330 %
> >
> >
> > Huge performance degradation. Numbers are now many times worse than
> before or after my optimizations. To me this shows that almost a complete
> rewrite (or revert) is needed.
> 
> My guess is this is due to the atomics needed for reference counting
> not being properly inlined internally. I know you did similar
> optimizations for ticketlocks. Let me look into this and post a patch
> that does the same for the atomics.

Atomics are inlined already. Also atomic operations should not be required if 
there's a single refence.

-Petri


Reply via email to