Branch: refs/heads/master
Home: https://github.com/Linaro/odp
Commit: a820d8a84e132652b4cef295756ccf135e3bd54b
https://github.com/Linaro/odp/commit/a820d8a84e132652b4cef295756ccf135e3bd54b
Author: Petri Savolainen <[email protected]>
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 <[email protected]>
Reviewed-by: Bill Fischofer <[email protected]>
Signed-off-by: Maxim Uvarov <[email protected]>
Commit: 88d36e6811de494708c520cb12e9e5f97628e9e4
https://github.com/Linaro/odp/commit/88d36e6811de494708c520cb12e9e5f97628e9e4
Author: Petri Savolainen <[email protected]>
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 <[email protected]>
Reviewed-by: Bill Fischofer <[email protected]>
Signed-off-by: Maxim Uvarov <[email protected]>
Commit: 04029613fbdc85221d1a20354a49ada912302fc0
https://github.com/Linaro/odp/commit/04029613fbdc85221d1a20354a49ada912302fc0
Author: Petri Savolainen <[email protected]>
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 <[email protected]>
Reviewed-by: Bill Fischofer <[email protected]>
Signed-off-by: Maxim Uvarov <[email protected]>
Commit: 20c75b764af6fd15e5e1d4df969ac33d62525405
https://github.com/Linaro/odp/commit/20c75b764af6fd15e5e1d4df969ac33d62525405
Author: Petri Savolainen <[email protected]>
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 <[email protected]>
Reviewed-by: Bill Fischofer <[email protected]>
Signed-off-by: Maxim Uvarov <[email protected]>
Commit: a787abf96b17d9714a6b892091d19c1be2bc5e6c
https://github.com/Linaro/odp/commit/a787abf96b17d9714a6b892091d19c1be2bc5e6c
Author: Petri Savolainen <[email protected]>
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 <[email protected]>
Reviewed-by: Bill Fischofer <[email protected]>
Signed-off-by: Maxim Uvarov <[email protected]>
Commit: e4289ab4f73221a9d20ecfb8eac6b79a26df06a3
https://github.com/Linaro/odp/commit/e4289ab4f73221a9d20ecfb8eac6b79a26df06a3
Author: Petri Savolainen <[email protected]>
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 <[email protected]>
Reviewed-by: Bill Fischofer <[email protected]>
Signed-off-by: Maxim Uvarov <[email protected]>
Commit: ef4e4d4c4ef1f9f569c236494cb178feb7c90343
https://github.com/Linaro/odp/commit/ef4e4d4c4ef1f9f569c236494cb178feb7c90343
Author: Petri Savolainen <[email protected]>
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 <[email protected]>
Reviewed-by: Bill Fischofer <[email protected]>
Signed-off-by: Maxim Uvarov <[email protected]>
Commit: 6efe7d971a3a4b8f7eaa42660b48eee31493924c
https://github.com/Linaro/odp/commit/6efe7d971a3a4b8f7eaa42660b48eee31493924c
Author: Petri Savolainen <[email protected]>
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 <[email protected]>
Reviewed-by: Bill Fischofer <[email protected]>
Signed-off-by: Maxim Uvarov <[email protected]>
Commit: 69a1179a05344b59961aaf997a1b406698b6840b
https://github.com/Linaro/odp/commit/69a1179a05344b59961aaf997a1b406698b6840b
Author: Petri Savolainen <[email protected]>
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 <[email protected]>
Reviewed-by: Bill Fischofer <[email protected]>
Signed-off-by: Maxim Uvarov <[email protected]>
Commit: ba97c3174d0de3e08cffaad414bf2a55de8853df
https://github.com/Linaro/odp/commit/ba97c3174d0de3e08cffaad414bf2a55de8853df
Author: Petri Savolainen <[email protected]>
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 <[email protected]>
Reviewed-by: Bill Fischofer <[email protected]>
Signed-off-by: Maxim Uvarov <[email protected]>
Commit: 91ef9f7e224056af351cbaf99ccfa98ee815460d
https://github.com/Linaro/odp/commit/91ef9f7e224056af351cbaf99ccfa98ee815460d
Author: Petri Savolainen <[email protected]>
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 <[email protected]>
Reviewed-by: Bill Fischofer <[email protected]>
Signed-off-by: Maxim Uvarov <[email protected]>
Compare: https://github.com/Linaro/odp/compare/f7c5f3e97381...91ef9f7e2240