Branch: refs/heads/master
  Home:   https://github.com/Linaro/odp
  Commit: a820d8a84e132652b4cef295756ccf135e3bd54b
      
https://github.com/Linaro/odp/commit/a820d8a84e132652b4cef295756ccf135e3bd54b
  Author: Petri Savolainen <petri.savolai...@linaro.org>
  Date:   2017-09-14 (Thu, 14 Sep 2017)

  Changed paths:
    M platform/linux-generic/include/odp/api/plat/packet_inlines.h
    M platform/linux-generic/include/odp/api/plat/packet_inlines_api.h
    M platform/linux-generic/include/odp/api/plat/packet_types.h
    M platform/linux-generic/include/odp_packet_internal.h
    M platform/linux-generic/odp_packet.c

  Log Message:
  -----------
  linux-gen: packet: roll back to copy based references

In order to re-implement segmentation for the new reference
implementation roll back to the copy based reference implementation,
which have been proved to work OK.

This zero copy reference implementation introduced multiple issues:
  * segment pointers and length were not set correctly, but were
    left to NULL
  * reference counting has a race condition which causes random
    assert failures also with non-reference packets
  * there's larger than expected performance drop with
    non-reference packets
  * the first segment of a reference was zero bytes long, which
    is possible by the API but is unusual for users

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>


  Commit: 88d36e6811de494708c520cb12e9e5f97628e9e4
      
https://github.com/Linaro/odp/commit/88d36e6811de494708c520cb12e9e5f97628e9e4
  Author: Petri Savolainen <petri.savolai...@linaro.org>
  Date:   2017-09-14 (Thu, 14 Sep 2017)

  Changed paths:
    M test/common_plat/validation/api/packet/packet.c

  Log Message:
  -----------
  validation: packet: relax small concat test

Limit number of consecutive small concat to fraction of
the number of packets in the pool. An implementation linking
packets together (no copy) cannot be expected to support
one byte concats up to max packet size.

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>


  Commit: 04029613fbdc85221d1a20354a49ada912302fc0
      
https://github.com/Linaro/odp/commit/04029613fbdc85221d1a20354a49ada912302fc0
  Author: Petri Savolainen <petri.savolai...@linaro.org>
  Date:   2017-09-14 (Thu, 14 Sep 2017)

  Changed paths:
    M test/common_plat/validation/api/packet/packet.c

  Log Message:
  -----------
  validation: packet: unshared len with static reference

When static references are used all data is shared, and thus
unshared length is zero. When there's no references, all data
is unique to the packet (unshared len == len).

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>


  Commit: 20c75b764af6fd15e5e1d4df969ac33d62525405
      
https://github.com/Linaro/odp/commit/20c75b764af6fd15e5e1d4df969ac33d62525405
  Author: Petri Savolainen <petri.savolai...@linaro.org>
  Date:   2017-09-14 (Thu, 14 Sep 2017)

  Changed paths:
    M test/common_plat/validation/api/packet/packet.c

  Log Message:
  -----------
  validation: packet: check reference packet content

Check that reference and base packets contain the same data.

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>


  Commit: a787abf96b17d9714a6b892091d19c1be2bc5e6c
      
https://github.com/Linaro/odp/commit/a787abf96b17d9714a6b892091d19c1be2bc5e6c
  Author: Petri Savolainen <petri.savolai...@linaro.org>
  Date:   2017-09-14 (Thu, 14 Sep 2017)

  Changed paths:
    M platform/linux-generic/include/odp_buffer_internal.h
    M platform/linux-generic/include/odp_packet_internal.h
    M platform/linux-generic/odp_packet.c
    M platform/linux-generic/odp_pool.c

  Log Message:
  -----------
  linux-gen: packet: re-implement packet segmentation

Removed limitation to fixed number of segments
(CONFIG_PACKET_MAX_SEGS) per packet. Packet headers carrying
segment tables are now linked together with 'next_seg' pointer.
Last header containing a segment table is pointed by 'last_seg'
pointer. Other than the first segment are not referred directly
but with seg_entry_ functions.

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>


  Commit: e4289ab4f73221a9d20ecfb8eac6b79a26df06a3
      
https://github.com/Linaro/odp/commit/e4289ab4f73221a9d20ecfb8eac6b79a26df06a3
  Author: Petri Savolainen <petri.savolai...@linaro.org>
  Date:   2017-09-14 (Thu, 14 Sep 2017)

  Changed paths:
    M platform/linux-generic/include/odp_buffer_internal.h

  Log Message:
  -----------
  linux-gen: buffer: optimize header layout

Pack most often used buffer header fields (including seg[0])
into the first cache line.

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>


  Commit: ef4e4d4c4ef1f9f569c236494cb178feb7c90343
      
https://github.com/Linaro/odp/commit/ef4e4d4c4ef1f9f569c236494cb178feb7c90343
  Author: Petri Savolainen <petri.savolai...@linaro.org>
  Date:   2017-09-14 (Thu, 14 Sep 2017)

  Changed paths:
    M platform/linux-generic/include/odp_buffer_internal.h
    M platform/linux-generic/include/odp_packet_internal.h
    M platform/linux-generic/odp_packet.c
    M platform/linux-generic/odp_pool.c

  Log Message:
  -----------
  linux-gen: packet: implement static references

Implemented static references with a reference counter. Counter
is zero when not used (reference API not used).

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>


  Commit: 6efe7d971a3a4b8f7eaa42660b48eee31493924c
      
https://github.com/Linaro/odp/commit/6efe7d971a3a4b8f7eaa42660b48eee31493924c
  Author: Petri Savolainen <petri.savolai...@linaro.org>
  Date:   2017-09-14 (Thu, 14 Sep 2017)

  Changed paths:
    M platform/linux-generic/odp_packet.c

  Log Message:
  -----------
  linux-gen: packet: enhance segment prints

Print segment addresses and reference counts in addition to
segment lengths.

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>


  Commit: 69a1179a05344b59961aaf997a1b406698b6840b
      
https://github.com/Linaro/odp/commit/69a1179a05344b59961aaf997a1b406698b6840b
  Author: Petri Savolainen <petri.savolai...@linaro.org>
  Date:   2017-09-14 (Thu, 14 Sep 2017)

  Changed paths:
    M platform/linux-generic/include/odp/api/plat/packet_types.h

  Log Message:
  -----------
  linux-gen: packet: compress packet offset table

Use uint16_t (instead of size_t) for offsets and thus decrease
size of the offset table into one fourth.

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>


  Commit: ba97c3174d0de3e08cffaad414bf2a55de8853df
      
https://github.com/Linaro/odp/commit/ba97c3174d0de3e08cffaad414bf2a55de8853df
  Author: Petri Savolainen <petri.savolai...@linaro.org>
  Date:   2017-09-14 (Thu, 14 Sep 2017)

  Changed paths:
    M platform/linux-generic/odp_packet.c

  Log Message:
  -----------
  linux-gen: packet: implement dynamic references

Use link headers to implement dynamic references. These
are segment headers which first segment (seg[0]) does not
point to itself but to a referenced segment. Link headers
enable long chains of references (new dynamic references
from previous references).

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>


  Commit: 91ef9f7e224056af351cbaf99ccfa98ee815460d
      
https://github.com/Linaro/odp/commit/91ef9f7e224056af351cbaf99ccfa98ee815460d
  Author: Petri Savolainen <petri.savolai...@linaro.org>
  Date:   2017-09-14 (Thu, 14 Sep 2017)

  Changed paths:
    M include/odp/arch/default/api/abi/packet.h
    M platform/linux-generic/include/odp/api/plat/packet_inlines.h
    M platform/linux-generic/include/odp/api/plat/packet_types.h
    M platform/linux-generic/include/odp_buffer_internal.h
    M platform/linux-generic/include/odp_packet_internal.h
    M platform/linux-generic/odp_pool.c

  Log Message:
  -----------
  linux-gen: packet: optimize header layout

Pack most often used data into the first and the last cache line
of buffer header, and the first cache line of packet header.
Reduce offsets and head-/tailroom fields to 16 bits, since
those are in maximum as large as a segment, usually much
less. Pack header fields into correct alignments (when possible),
so that holes are avoided.

These changes reduce packet header size by one cache line.

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>


Compare: https://github.com/Linaro/odp/compare/f7c5f3e97381...91ef9f7e2240

Reply via email to