From: Petri Savolainen
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
Removes 152 bytes for linux-generic from odp_buffer_hdr_t.
The size of the meta data was 48 cache lines for linux-generic.
With this change the size of the meta data is 32 cache lines for
linux-generic.
Signed-off-by: Kevin Wang kevin.w...@arm.com
github
From: Petri Savolainen
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
From: Petri Savolainen
Implemented static references with a reference counter. Counter
is zero when not used (reference API not used).
Signed-off-by: Petri Savolainen
---
/** Email created from pull request 170
Petri Savolainen(psavol) replied on github web page:
include/odp/api/spec/schedule.h
line 13
@@ -347,12 +347,15 @@ int odp_schedule_group_info(odp_schedule_group_t group,
* be protected by its own ordered lock. This promotes maximum parallelism by
* allowing order to maintained on a more
From: Dmitry Eremin-Solenikov
As both native and cross-compilation now use the same script it is
possible to move cross-compilation setup back to build matrix. Proper
cross-compiler is selected based on actual compiler (gcc/clang) and
cross-target.
From: Dmitry Eremin-Solenikov
Signed-off-by: Dmitry Eremin-Solenikov
---
/** Email created from pull request 175 (lumag:build-x86)
** https://github.com/Linaro/odp/pull/175
** Patch:
Adds random early discard and back pressure feature configurable per CoS
Signed-off-by: Balasubramanian Manoharan bala.manoha...@linaro.org
github
/** Email created from pull request 172 (bala-manoharan:random_early_discard)
**
From: Balasubramanian Manoharan
Adds random early detection and Back pressure feature to CoS
Signed-off-by: Balasubramanian Manoharan
---
/** Email created from pull request 172 (bala-manoharan:random_early_discard)
**
From: Petri Savolainen
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
From: Petri Savolainen
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 created from pull request 170
Petri Savolainen(psavol) replied on github web page:
include/odp/api/spec/schedule.h
line 43
@@ -365,7 +368,28 @@ void odp_schedule_order_lock(unsigned lock_index);
* hold this lock. Must be in the range
* 0..odp_queue_lock_count() - 1
*/
-void
From: Petri Savolainen
Pack most often used buffer header fields (including seg[0])
into the first cache line.
Signed-off-by: Petri Savolainen
---
/** Email created from pull request 170 (psavol:master-packet-ref-rework)
**
From: Petri Savolainen
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
---
/**
From: Dmitry Eremin-Solenikov
Cross-pkg-config rewrites PKG_CONFIG_PATH to static value. Simulate it,
but allow further script to expand PKG_CONFIG_PATH value.
Signed-off-by: Dmitry Eremin-Solenikov
---
/** Email created
From: Dmitry Eremin-Solenikov
Signed-off-by: Dmitry Eremin-Solenikov
---
/** Email created from pull request 175 (lumag:build-x86)
** https://github.com/Linaro/odp/pull/175
** Patch:
From: Balasubramanian Manoharan
Adds minimum and maximum headroom in pool capability
Signed-off-by: Balasubramanian Manoharan
---
/** Email created from pull request 152 (bala-manoharan:pool_headroom)
**
From: Kevin Wang
Removes 152 bytes for linux-generic from odp_buffer_hdr_t.
The size of the meta data was 48 cache lines for linux-generic.
With this change the size of the meta data is 32 cache lines for
linux-generic.
Signed-off-by: Kevin Wang
---
/**
From: Dmitry Eremin-Solenikov
Merge native and cross-compilation scripts. This allows us to simplify
Travis CI configuration and to enable e.g. testing of out-of-tree
compilation.
Signed-off-by: Dmitry Eremin-Solenikov
---
Petri Savolainen(psavol) replied on github web page:
platform/linux-generic/odp_packet.c
line 1993
@@ -2458,6 +2089,184 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl)
return _odp_pri(hdl);
}
+static inline void buffer_ref_inc(odp_buffer_hdr_t *buf_hdr)
+{
+ /* First
From: Balasubramanian Manoharan
Implements Random early detection and Back pressure
Signed-off-by: Balasubramanian Manoharan
---
/** Email created from pull request 172 (bala-manoharan:random_early_discard)
**
From: Balasubramanian Manoharan
Adds pool minimum and maximum headroom in pool capability
Signed-off-by: Balasubramanian Manoharan
---
/** Email created from pull request 152 (bala-manoharan:pool_headroom)
**
From: Petri Savolainen
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
Petri Savolainen(psavol) replied on github web page:
platform/linux-generic/include/odp_schedule_if.h
line 4
@@ -95,6 +95,7 @@ typedef struct {
odp_schedule_group_info_t *);
void (*schedule_order_lock)(unsigned);
void
From: Petri Savolainen
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.
Current 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
V7: This patch is now rebased with updates in api-next.
@psavol could you review and provide feedback to the API definitions
github
/** Email created from pull request 152 (bala-manoharan:pool_headroom)
** https://github.com/Linaro/odp/pull/152
** Patch:
From: Dmitry Eremin-Solenikov
Install proper packages to enable cross-testing of linking C++ apps with
ODP.
Signed-off-by: Dmitry Eremin-Solenikov
---
/** Email created from pull request 175 (lumag:build-x86)
**
Main goal of PR is to enable build-testing of ODP for 32-bit x86 arch.
Side effects:
Enable installation and link-testing when cross-compiling
Enable c++ test when cross-compiling
Fix c typo in powerpc test name
github
/** Email created from pull request
From: Petri Savolainen
Check that reference and base packets contain the same data.
Signed-off-by: Petri Savolainen
---
/** Email created from pull request 170 (psavol:master-packet-ref-rework)
** https://github.com/Linaro/odp/pull/170
From: Petri Savolainen
Print segment addresses and reference counts in addition to
segment lengths.
Signed-off-by: Petri Savolainen
---
/** Email created from pull request 170 (psavol:master-packet-ref-rework)
**
From: Dmitry Eremin-Solenikov
Signed-off-by: Dmitry Eremin-Solenikov
---
/** Email created from pull request 175 (lumag:build-x86)
** https://github.com/Linaro/odp/pull/175
** Patch:
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page:
platform/linux-generic/odp_pool.c
line 16
@@ -853,7 +857,8 @@ int odp_pool_capability(odp_pool_capability_t *capa)
capa->pkt.max_pools= ODP_CONFIG_POOLS;
capa->pkt.max_len = CONFIG_PACKET_MAX_SEGS *
https://bugs.linaro.org/show_bug.cgi?id=3210
--- Comment #2 from Bill Fischofer ---
Need to check if PR #167 addresses this.
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugs.linaro.org/show_bug.cgi?id=3201
Bill Fischofer changed:
What|Removed |Added
Status|IN_PROGRESS |RESOLVED
https://bugs.linaro.org/show_bug.cgi?id=2411
--- Comment #7 from Bill Fischofer ---
Ping to Petri for update. Larger question is do we still need the
odp_schedule_sp?
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugs.linaro.org/show_bug.cgi?id=2254
--- Comment #5 from Bill Fischofer ---
Ping to Dmitry for update.
--
You are receiving this mail because:
You are on the CC list for the bug.
Adds odp_schedule_order_unlock_lock() api.
This API combines schedule order unlock and lock into a single api for HW
performance optimisation.
github
/** Email created from pull request 160 (bala-manoharan:api_sched_order_lock)
**
Balasubramanian Manoharan(bala-manoharan) replied on github web page:
include/odp/api/spec/schedule.h
line 43
@@ -365,7 +368,28 @@ void odp_schedule_order_lock(unsigned lock_index);
* hold this lock. Must be in the range
* 0..odp_queue_lock_count() - 1
*/
https://bugs.linaro.org/show_bug.cgi?id=2903
--- Comment #7 from Bill Fischofer ---
Ping to Bala for update. I assume this is needed for Tiger Moth final release?
--
You are receiving this mail because:
You are on the CC list for the bug.
Balasubramanian Manoharan(bala-manoharan) replied on github web page:
include/odp/api/spec/schedule.h
line 13
@@ -347,12 +347,15 @@ int odp_schedule_group_info(odp_schedule_group_t group,
* be protected by its own ordered lock. This promotes maximum parallelism by
* allowing order to
Petri Savolainen(psavol) replied on github web page:
include/odp/api/spec/pool.h
line 28
@@ -214,6 +221,17 @@ typedef struct odp_pool_param_t {
defined by pool capability pkt.max_uarea_size.
Specify as 0 if no user area is needed. */
Branch: refs/heads/master
Home: https://github.com/Linaro/odp
Commit: a820d8a84e132652b4cef295756ccf135e3bd54b
https://github.com/Linaro/odp/commit/a820d8a84e132652b4cef295756ccf135e3bd54b
Author: Petri Savolainen
Date: 2017-09-14 (Thu, 14 Sep
Petri Savolainen(psavol) replied on github web page:
include/odp/api/spec/pool.h
line 28
@@ -214,6 +221,17 @@ typedef struct odp_pool_param_t {
defined by pool capability pkt.max_uarea_size.
Specify as 0 if no user area is needed. */
Balasubramanian Manoharan(bala-manoharan) replied on github web page:
include/odp/api/spec/pool.h
line 28
@@ -214,6 +221,17 @@ typedef struct odp_pool_param_t {
defined by pool capability pkt.max_uarea_size.
Specify as 0 if no user area is
Balasubramanian Manoharan(bala-manoharan) replied on github web page:
platform/linux-generic/include/odp_schedule_if.h
line 4
@@ -95,6 +95,7 @@ typedef struct {
odp_schedule_group_info_t *);
void (*schedule_order_lock)(unsigned);
void
Petri Savolainen(psavol) replied on github web page:
platform/linux-generic/odp_pool.c
line 8
@@ -348,6 +348,10 @@ static odp_pool_t pool_create(const char *name,
odp_pool_param_t *params,
break;
case ODP_POOL_PACKET:
+ if (params->pkt.min_headroom >
Petri Savolainen(psavol) replied on github web page:
platform/linux-generic/odp_pool.c
line 8
@@ -348,6 +348,10 @@ static odp_pool_t pool_create(const char *name,
odp_pool_param_t *params,
break;
case ODP_POOL_PACKET:
+ if (params->pkt.min_headroom >
Branch: refs/heads/master
Home: https://github.com/Linaro/odp
Commit: f8c6360667380f6b3fb917ecbe5b941b23dbadf1
https://github.com/Linaro/odp/commit/f8c6360667380f6b3fb917ecbe5b941b23dbadf1
Author: Dmitry Eremin-Solenikov
Date: 2017-09-14
https://bugs.linaro.org/show_bug.cgi?id=3238
--- Comment #3 from Bill Fischofer ---
Maxim and Dmitry will figure out how to get Doxygen 1.8.13 into Travis. Bill
will post PR to fix these missing comments.
--
You are receiving this mail because:
You are on the CC list
https://bugs.linaro.org/show_bug.cgi?id=2876
Bill Fischofer changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
From: Balasubramanian Manoharan
Adds odp_schedule_order_unlock_lock() api. This api combines schedule
order unlock and lock into a single api for performance optimization in HW
Signed-off-by: Balasubramanian Manoharan
---
/** Email created
https://bugs.linaro.org/show_bug.cgi?id=2903
--- Comment #8 from Bala Manoharan ---
I am busy with the API changes. Will update this PR once API changes are
finalized
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugs.linaro.org/show_bug.cgi?id=3238
Bill Fischofer changed:
What|Removed |Added
Status|CONFIRMED |IN_PROGRESS
---
From: Balasubramanian Manoharan
change function param signature from unsigned to uint32_t
Signed-off-by: Balasubramanian Manoharan
---
/** Email created from pull request 160 (bala-manoharan:api_sched_order_lock)
**
From: Bill Fischofer
The latest version of Doxygen requires every struct and field to be
documented, so add missing documentation to helper files to avoid
superfluous warnings.
This resolves Bug https://bugs.linaro.org/show_bug.cgi?id=3238
Signed-off-by: Bill
The latest version of Doxygen requires every struct and field to be
documented, so add missing documentation to helper files to avoid
superfluous warnings.
This resolves Bug https://bugs.linaro.org/show_bug.cgi?id=3238
Signed-off-by: Bill Fischofer bill.fischo...@linaro.org
From: Dmitry Eremin-Solenikov
Repair build with --enable-helper-linux option.
https://bugs.linaro.org/show_bug.cgi?id=3216
Signed-off-by: Dmitry Eremin-Solenikov
Signed-off-by: Maxim Uvarov
---
/**
From: Dmitry Eremin-Solenikov
All examples and usecases assumed network byte order for odph_chksum()
return value. Instead of changing this convention, rather document that
odph_chksum returns value in network byte order.
Signed-off-by: Dmitry Eremin-Solenikov
From: Dmitry Eremin-Solenikov
Signed-off-by: Dmitry Eremin-Solenikov
---
/** Email created from pull request 160 (bala-manoharan:api_sched_order_lock)
** https://github.com/Linaro/odp/pull/160
** Patch:
From: Balasubramanian Manoharan
change order lock count data type from unsigned to uint32_t
Signed-off-by: Balasubramanian Manoharan
---
/** Email created from pull request 160 (bala-manoharan:api_sched_order_lock)
**
From: Balasubramanian Manoharan
removes support for nested ordered lock use-case
changes function param signature from unsigned to uint32_t
Signed-off-by: Balasubramanian Manoharan
---
/** Email created from pull request 160
From: Balasubramanian Manoharan
change order lock count data type from unsigned to uint32_t
Signed-off-by: Balasubramanian Manoharan
---
/** Email created from pull request 160 (bala-manoharan:api_sched_order_lock)
**
From: Dmitry Eremin-Solenikov
Current code for IPv4 header checksum calculation assumes that packet
data is aligned on 2-byte boundary, that there are no optional headers,
etc. Rewrite checksumming code to properly copy & process headers.
Signed-off-by: Dmitry
From: Balasubramanian Manoharan
Implements odp_schedule_order_unlock_lock() api. This api combines schedule
order unlock and lock into a single api for performance optimization in HW.
Signed-off-by: Balasubramanian Manoharan
---
/** Email
From: Balasubramanian Manoharan
change order lock function param signature from unsigned to uint32_t
Signed-off-by: Balasubramanian Manoharan
---
/** Email created from pull request 160 (bala-manoharan:api_sched_order_lock)
**
From: Balasubramanian Manoharan
change oder lock count data type from unsigned to uint32_t
Signed-off-by: Balasubramanian Manoharan
---
/** Email created from pull request 160 (bala-manoharan:api_sched_order_lock)
**
Petri Savolainen(psavol) replied on github web page:
platform/linux-generic/odp_pool.c
line 16
@@ -853,7 +857,8 @@ int odp_pool_capability(odp_pool_capability_t *capa)
capa->pkt.max_pools= ODP_CONFIG_POOLS;
capa->pkt.max_len = CONFIG_PACKET_MAX_SEGS * max_seg_len;
Specify explicitly what each timer pool parameter means. This does
not change the intended use of the parameters.
Signed-off-by: Petri Savolainen petri.savolai...@linaro.org
github
/** Email created from pull request 177 (psavol:next-timer-min-tmo)
**
Hi,
I saw that PR #139 has a commit to remove the dpdk pkt I/O from
linux-generic. It is understood very clearly that we will have only
one dpdk pkt I/O, which is from linux-dpdk. My only concern is the
timing (I understand that we had already agreed on timing as well :)).
The concern that I
Merge master branch to api-next after PR #170. Almost plain merge with one
commit on top to put function used for crypto to common place.
github
/** Email created from pull request 179 (muvarov:api-next)
** https://github.com/Linaro/odp/pull/179
**
From: Dmitry Eremin-Solenikov
Signed-off-by: Dmitry Eremin-Solenikov
Signed-off-by: Maxim Uvarov
---
/** Email created from pull request 179 (muvarov:api-next)
**
From: Dmitry Eremin-Solenikov
Install proper packages to enable cross-testing of linking C++ apps with
ODP.
Signed-off-by: Dmitry Eremin-Solenikov
Signed-off-by: Maxim Uvarov
---
/** Email created
From: Dmitry Eremin-Solenikov
Merge native and cross-compilation scripts. This allows us to simplify
Travis CI configuration and to enable e.g. testing of out-of-tree
compilation.
Signed-off-by: Dmitry Eremin-Solenikov
From: Dmitry Eremin-Solenikov
As both native and cross-compilation now use the same script it is
possible to move cross-compilation setup back to build matrix. Proper
cross-compiler is selected based on actual compiler (gcc/clang) and
cross-target.
From: Petri Savolainen
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
From: Petri Savolainen
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
From: Dmitry Eremin-Solenikov
Signed-off-by: Dmitry Eremin-Solenikov
Signed-off-by: Maxim Uvarov
---
/** Email created from pull request 179 (muvarov:api-next)
**
From: Dmitry Eremin-Solenikov
Cross-pkg-config rewrites PKG_CONFIG_PATH to static value. Simulate it,
but allow further script to expand PKG_CONFIG_PATH value.
Signed-off-by: Dmitry Eremin-Solenikov
Signed-off-by: Maxim
From: Dmitry Eremin-Solenikov
Signed-off-by: Dmitry Eremin-Solenikov
Signed-off-by: Maxim Uvarov
---
/** Email created from pull request 179 (muvarov:api-next)
**
From: Petri Savolainen
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
From: Petri Savolainen
Print segment addresses and reference counts in addition to
segment lengths.
Signed-off-by: Petri Savolainen
Reviewed-by: Bill Fischofer
Signed-off-by: Maxim Uvarov
From: Petri Savolainen
Check that reference and base packets contain the same data.
Signed-off-by: Petri Savolainen
Reviewed-by: Bill Fischofer
Signed-off-by: Maxim Uvarov
---
/**
From: Petri Savolainen
Pack most often used buffer header fields (including seg[0])
into the first cache line.
Signed-off-by: Petri Savolainen
Reviewed-by: Bill Fischofer
Signed-off-by: Maxim Uvarov
nagarahalli replied on github web page:
platform/linux-generic/include/odp_buffer_internal.h
line 25
@@ -86,9 +79,17 @@ struct odp_buffer_hdr_t {
/* Event subtype. Should be ODP_EVENT_NO_SUBTYPE except packets. */
int8_tevent_subtype;
+#ifndef ODP_SCHEDULE_SCALABLE
From: Petri Savolainen
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.
From: Petri Savolainen
Implemented static references with a reference counter. Counter
is zero when not used (reference API not used).
Signed-off-by: Petri Savolainen
Reviewed-by: Bill Fischofer
From: Petri Savolainen
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
Reviewed-by: Bill Fischofer
Signed-off-by: Maxim
From: Petri Savolainen
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
From: Petri Savolainen
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
From: Maxim Uvarov
odp_crypto.c is also uses packet_to_buffer() so move
this function to common place.
Signed-off-by: Maxim Uvarov
---
/** Email created from pull request 179 (muvarov:api-next)
** https://github.com/Linaro/odp/pull/179
**
91 matches
Mail list logo