Trying again as the repost doesn't seem to show up on the list either.

For this series:

Reviewed-and-tested-by: Bill Fischofer <bill.fischo...@linaro.org>

On Tue, Nov 15, 2016 at 5:55 PM, Bill Fischofer <bill.fischo...@linaro.org>
wrote:

> Reposting this since it doesn't seem to have made it to the mailing list.
>
> For this series:
>
> Reviewed-and-tested-by: Bill Fischofer <bill.fischo...@linaro.org>
>
> On Tue, Nov 15, 2016 at 8:41 AM, Bill Fischofer <bill.fischo...@linaro.org
> > wrote:
>
>> For this series:
>>
>> Reviewed-and-tested-by: Bill Fischofer <bill.fischo...@linaro.org>
>>
>> On Thu, Nov 10, 2016 at 5:07 AM, Petri Savolainen <
>> petri.savolai...@nokia.com> wrote:
>>
>>> Pool performance is optimized by using a ring as the global buffer
>>> storage.
>>> IPC build is disabled, since it needs large modifications due to
>>> dependency to
>>> pool internals. Old pool implementation was based on locks and linked
>>> list of
>>> buffer headers. New implementation maintain a ring of buffer handles,
>>> which
>>> enable fast, burst based allocs and frees. Also ring scales better with
>>> number
>>> of cpus than a list (enq and deq operations update opposite ends of the
>>> pool).
>>>
>>> L2fwd link rate (%), 2 x 40GE, 64 byte packets
>>>
>>>         direct-                 parallel-               atomic-
>>> cpus    orig    direct  diff    orig    parall  diff    orig    atomic
>>> diff
>>> 1       7 %     8 %     1 %     6 %     6 %     2 %     5.4 %   5.6 %
>>>  4 %
>>> 2       14 %    15 %    7 %     9 %     9 %     5 %     8 %     9 %
>>>  8 %
>>> 4       28 %    30 %    6 %     13 %    14 %    13 %    12 %    15 %
>>> 19 %
>>> 6       42 %    44 %    6 %     16 %    19 %    19 %    8 %     20 %
>>> 150 %
>>> 8       46 %    59 %    28 %    19 %    23 %    26 %    18 %    24 %
>>> 34 %
>>> 10      55 %    57 %    3 %     20 %    27 %    37 %    8 %     28 %
>>> 264 %
>>> 12      56 %    56 %    -1 %    22 %    31 %    43 %    7 %     32 %
>>> 357 %
>>>
>>> Max packet rate of NICs are reached with 10-12 cpu on direct mode.
>>> Otherwise,
>>> all cases were improved. Especially, scheduler driven cases suffered on
>>> bad
>>> pool scalability.
>>>
>>> changed in v3:
>>> * rebased
>>> * ipc disabled with #ifdef
>>> * added support for multi-segment packets
>>> * API: added explicit limits for packet length in alloc calls
>>> * Corrected validation test and example application bugs found during
>>>   segmentation implementation
>>>
>>> changed in v2:
>>> * rebased to api-next branch
>>> * added a comment that ring size must be larger than number of items in
>>> it
>>> * fixed clang build issue
>>> * added parens in align macro
>>>
>>> v1 reviews:
>>> Reviewed-by: Brian Brooks <brian.bro...@linaro.org>
>>>
>>>
>>>
>>> Petri Savolainen (19):
>>>   linux-gen: ipc: disable build of ipc pktio
>>>   linux-gen: pktio: do not free zero packets
>>>   linux-gen: ring: created common ring implementation
>>>   linux-gen: align: added round up power of two
>>>   linux-gen: pool: reimplement pool with ring
>>>   linux-gen: ring: added multi enq and deq
>>>   linux-gen: pool: use ring multi enq and deq operations
>>>   linux-gen: pool: optimize buffer alloc
>>>   linux-gen: pool: clean up pool inlines functions
>>>   linux-gen: pool: ptr instead of hdl in buffer_alloc_multi
>>>   test: validation: buf: test alignment
>>>   test: performance: crypto: use capability to select max packet
>>>   test: correctly initialize pool parameters
>>>   test: validation: packet: fix bugs in tailroom and concat tests
>>>   linux-gen: packet: added support for segmented packets
>>>   test: validation: packet: improved multi-segment alloc test
>>>   api: packet: added limits for packet len on alloc
>>>   linux-gen: packet: remove zero len support from alloc
>>>   linux-gen: packet: enable multi-segment packets
>>>
>>>  example/generator/odp_generator.c                  |    2 +-
>>>  include/odp/api/spec/packet.h                      |    9 +-
>>>  include/odp/api/spec/pool.h                        |    6 +
>>>  platform/linux-generic/Makefile.am                 |    1 +
>>>  .../include/odp/api/plat/packet_types.h            |    6 +-
>>>  .../include/odp/api/plat/pool_types.h              |    6 -
>>>  .../linux-generic/include/odp_align_internal.h     |   34 +-
>>>  .../linux-generic/include/odp_buffer_inlines.h     |  167 +--
>>>  .../linux-generic/include/odp_buffer_internal.h    |  120 +-
>>>  .../include/odp_classification_datamodel.h         |    2 +-
>>>  .../linux-generic/include/odp_config_internal.h    |   55 +-
>>>  .../linux-generic/include/odp_packet_internal.h    |   87 +-
>>>  platform/linux-generic/include/odp_pool_internal.h |  289 +---
>>>  platform/linux-generic/include/odp_ring_internal.h |  176 +++
>>>  .../linux-generic/include/odp_timer_internal.h     |    4 -
>>>  platform/linux-generic/odp_buffer.c                |   22 +-
>>>  platform/linux-generic/odp_classification.c        |   25 +-
>>>  platform/linux-generic/odp_crypto.c                |   12 +-
>>>  platform/linux-generic/odp_packet.c                |  717 ++++++++--
>>>  platform/linux-generic/odp_packet_io.c             |    2 +-
>>>  platform/linux-generic/odp_pool.c                  | 1440
>>> ++++++++------------
>>>  platform/linux-generic/odp_queue.c                 |    4 +-
>>>  platform/linux-generic/odp_schedule.c              |  102 +-
>>>  platform/linux-generic/odp_schedule_ordered.c      |    4 +-
>>>  platform/linux-generic/odp_timer.c                 |    3 +-
>>>  platform/linux-generic/pktio/dpdk.c                |   10 +-
>>>  platform/linux-generic/pktio/ipc.c                 |    3 +-
>>>  platform/linux-generic/pktio/loop.c                |    2 +-
>>>  platform/linux-generic/pktio/netmap.c              |   14 +-
>>>  platform/linux-generic/pktio/socket.c              |   17 +-
>>>  platform/linux-generic/pktio/socket_mmap.c         |   10 +-
>>>  test/common_plat/performance/odp_crypto.c          |   47 +-
>>>  test/common_plat/performance/odp_pktio_perf.c      |    2 +-
>>>  test/common_plat/performance/odp_scheduling.c      |    8 +-
>>>  test/common_plat/validation/api/buffer/buffer.c    |  113 +-
>>>  test/common_plat/validation/api/crypto/crypto.c    |    2 +-
>>>  test/common_plat/validation/api/packet/packet.c    |   96 +-
>>>  test/common_plat/validation/api/pktio/pktio.c      |   21 +-
>>>  38 files changed, 1745 insertions(+), 1895 deletions(-)
>>>  create mode 100644 platform/linux-generic/include/odp_ring_internal.h
>>>
>>> --
>>> 2.8.1
>>>
>>>
>>
>

Reply via email to