This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via f710dd9c76b8a7683f07574afdfc5896f8e4db7a (commit)
via 3794fb4eddebf95579fa176d27ef1b82ad16dfdd (commit)
from 886e54149d3ee64e56c422a0d3dd7c536e2b4b7d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f710dd9c76b8a7683f07574afdfc5896f8e4db7a
Author: Ola Liljedahl <ola.liljedahl(a)arm.com>
Date: Tue May 30 22:35:59 2017 +0200
test: disable packet parsing in odp_pktio_perf
Disable packet parsing as it is done in the driver where it affects
scalability of the application. This especially problematic for e.g.
the loopback pktio which has only one RX queue.
Signed-off-by: Ola Liljedahl <ola.liljedahl(a)arm.com>
Reviewed-by: Brian Brooks <brian.brooks(a)arm.com>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/test/common_plat/performance/odp_pktio_perf.c b/test/common_plat/performance/odp_pktio_perf.c
index 210a833f..01c2eae1 100644
--- a/test/common_plat/performance/odp_pktio_perf.c
+++ b/test/common_plat/performance/odp_pktio_perf.c
@@ -739,6 +739,7 @@ static int test_init(void)
odp_pool_param_t params;
const char *iface;
int schedule;
+ odp_pktio_config_t cfg;
odp_pool_param_init(¶ms);
params.pkt.len = PKT_HDR_LEN + gbl_args->args.pkt_len;
@@ -788,6 +789,13 @@ static int test_init(void)
return -1;
}
+ /* Disable packet parsing as this is done in the driver where it
+ * affects scalability.
+ */
+ odp_pktio_config_init(&cfg);
+ cfg.parser.layer = ODP_PKTIO_PARSER_LAYER_NONE;
+ odp_pktio_config(gbl_args->pktio_rx, &cfg);
+
if (gbl_args->args.num_ifaces > 1) {
if (odp_pktout_queue_config(gbl_args->pktio_rx, NULL)) {
LOG_ERR("failed to configure pktio_rx queue\n");
commit 3794fb4eddebf95579fa176d27ef1b82ad16dfdd
Author: Ola Liljedahl <ola.liljedahl(a)arm.com>
Date: Tue May 30 22:15:01 2017 +0200
test: make odp_pktio_perf more scalable
Amortise overhead of atomic increment over multiple packets
so to minimise this scalability bottleneck.
Signed-off-by: Ola Liljedahl <ola.liljedahl(a)arm.com>
Reviewed-by: Brian Brooks <brian.brooks(a)arm.com>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/test/common_plat/performance/odp_pktio_perf.c b/test/common_plat/performance/odp_pktio_perf.c
index a170e128..210a833f 100644
--- a/test/common_plat/performance/odp_pktio_perf.c
+++ b/test/common_plat/performance/odp_pktio_perf.c
@@ -167,14 +167,13 @@ static test_globals_t *gbl_args;
/*
* Generate a single test packet for transmission.
*/
-static odp_packet_t pktio_create_packet(void)
+static odp_packet_t pktio_create_packet(uint32_t seq)
{
odp_packet_t pkt;
odph_ethhdr_t *eth;
odph_ipv4hdr_t *ip;
odph_udphdr_t *udp;
char *buf;
- uint16_t seq;
uint32_t offset;
pkt_head_t pkt_hdr;
size_t payload_len;
@@ -209,7 +208,6 @@ static odp_packet_t pktio_create_packet(void)
ODPH_IPV4HDR_LEN);
ip->ttl = 128;
ip->proto = ODPH_IPPROTO_UDP;
- seq = odp_atomic_fetch_inc_u32(&ip_seq);
ip->id = odp_cpu_to_be_16(seq);
ip->chksum = 0;
odph_ipv4_csum_update(pkt);
@@ -263,9 +261,11 @@ static int pktio_pkt_has_magic(odp_packet_t pkt)
static int alloc_packets(odp_packet_t *pkt_tbl, int num_pkts)
{
int n;
+ uint16_t seq;
+ seq = odp_atomic_fetch_add_u32(&ip_seq, num_pkts);
for (n = 0; n < num_pkts; ++n) {
- pkt_tbl[n] = pktio_create_packet();
+ pkt_tbl[n] = pktio_create_packet(seq + n);
if (pkt_tbl[n] == ODP_PACKET_INVALID)
break;
}
-----------------------------------------------------------------------
Summary of changes:
test/common_plat/performance/odp_pktio_perf.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
hooks/post-receive
--
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via 886e54149d3ee64e56c422a0d3dd7c536e2b4b7d (commit)
via ec7353be201b526ade8819d9668dec111a9211d7 (commit)
from c2ed3f71a8d61449c5e35ce201f020a74a8ea244 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 886e54149d3ee64e56c422a0d3dd7c536e2b4b7d
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Fri Sep 22 08:41:19 2017 -0500
linux-generic: packet: add missing doxygen from inline func
Add missing doxygen for internal function packet_to_buffer
to avoid warnings under latest doxygen.
This fixes Bug https://bugs.linaro.org/show_bug.cgi?id=3262
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/include/odp/api/plat/packet_inlines.h b/platform/linux-generic/include/odp/api/plat/packet_inlines.h
index be7e18ec..1804fa6f 100644
--- a/platform/linux-generic/include/odp/api/plat/packet_inlines.h
+++ b/platform/linux-generic/include/odp/api/plat/packet_inlines.h
@@ -157,6 +157,7 @@ static inline void _odp_packet_prefetch(odp_packet_t pkt, uint32_t offset,
(void)pkt; (void)offset; (void)len;
}
+/** @internal Inline function @param pkt @return */
static inline odp_buffer_t packet_to_buffer(odp_packet_t pkt)
{
return (odp_buffer_t)pkt;
commit ec7353be201b526ade8819d9668dec111a9211d7
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Mon Sep 25 21:18:29 2017 +0300
travis: correct doxygen warning capture
use if else bash syntax for grep warnings from
log.
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
diff --git a/.travis.yml b/.travis.yml
index a9ae219d..395feb0e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -249,11 +249,17 @@ jobs:
fi
- export PATH=$HOME/doxygen-install/bin:$PATH
- # doxygen does not trap on warnings, check for them here.
- ./bootstrap
- ./configure
+ # doxygen does not trap on warnings, check for them here.
- make doxygen-doc 2>&1 |tee doxygen.log
- - fgrep -rq warning ./doxygen.log && false
+ - |
+ fgrep -rq warning ./test.log
+ if [ $? -eq 0 ]; then
+ false
+ else
+ true
+ fi
- stage: test
env: TEST=checkpatch
compiler: gcc
-----------------------------------------------------------------------
Summary of changes:
.travis.yml | 10 ++++++++--
platform/linux-generic/include/odp/api/plat/packet_inlines.h | 1 +
2 files changed, 9 insertions(+), 2 deletions(-)
hooks/post-receive
--
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via c2ed3f71a8d61449c5e35ce201f020a74a8ea244 (commit)
from cbb7f52e28d2e1c20c8eac662aa6135242d072e8 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c2ed3f71a8d61449c5e35ce201f020a74a8ea244
Author: Brian Brooks <brian.brooks(a)arm.com>
Date: Sat Aug 26 00:40:08 2017 -0500
linux-gen: barrier: Use correct memory ordering
Memory accesses that happen-before, in program order, a call to
odp_barrier_wait() cannot be reordered to after the call. Similarly,
memory accesses that happen-after, in program order, a call to
odp_barrier_wait() cannot be reordered to before the call.
The current implementation of barriers uses sequentially consistent
fences on either side of odp_barrier_wait().
The correct memory ordering for barriers is release upon entering
odp_barrier_wait(), to prevent reordering to after the barrier, and
acquire upon exiting odp_barrier_wait(), to prevent reordering to
before the barrier.
The measurable performance difference is negligible on weakly ordered
architectures such as ARM, so the highlight of this change is correctness.
Signed-off-by: Brian Brooks <brian.brooks(a)arm.com>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/odp_barrier.c b/platform/linux-generic/odp_barrier.c
index 5eb354de..f70bdbf8 100644
--- a/platform/linux-generic/odp_barrier.c
+++ b/platform/linux-generic/odp_barrier.c
@@ -34,7 +34,7 @@ void odp_barrier_wait(odp_barrier_t *barrier)
uint32_t count;
int wasless;
- odp_mb_full();
+ odp_mb_release();
count = odp_atomic_fetch_inc_u32(&barrier->bar);
wasless = count < barrier->count;
@@ -48,5 +48,5 @@ void odp_barrier_wait(odp_barrier_t *barrier)
odp_cpu_pause();
}
- odp_mb_full();
+ odp_mb_acquire();
}
-----------------------------------------------------------------------
Summary of changes:
platform/linux-generic/odp_barrier.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
hooks/post-receive
--
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, api-next has been updated
via 13322ca632f8ffba292bec058e597719bc54142d (commit)
via cbb7f52e28d2e1c20c8eac662aa6135242d072e8 (commit)
via 49093654e6faa652387bc192c17b5006af0fc0b4 (commit)
via f6f317fc47a0314f1077af2477fc169302953e5c (commit)
via d091f2176a28b09503aef6aabbbe7d2433e3b69b (commit)
from bfbe4f50a2e8a2532fdcb4d2c16d42a477183c07 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 13322ca632f8ffba292bec058e597719bc54142d
Merge: bfbe4f50 cbb7f52e
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Thu Sep 21 15:51:06 2017 +0300
Merge branch 'master' into api-next
diff --cc .travis.yml
index 8cf6ed22,a9ae219d..c1626b1a
--- a/.travis.yml
+++ b/.travis.yml
@@@ -39,9 -39,8 +39,9 @@@ addons
packages:
- gcc
- clang-3.8
- - automake autoconf libtool libssl-dev graphviz mscgen doxygen
+ - automake autoconf libtool libssl-dev graphviz mscgen
- libpcap-dev
+ - libconfig-dev
# coverity_scan:
# project:
# name: "$TRAVIS_REPO_SLUG"
-----------------------------------------------------------------------
Summary of changes:
.travis.yml | 18 +++++++++++++++---
configure.ac | 1 -
test/common_plat/m4/validation.m4 | 24 ++++++++++++++++--------
3 files changed, 31 insertions(+), 12 deletions(-)
hooks/post-receive
--
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, api-next has been updated
via bfbe4f50a2e8a2532fdcb4d2c16d42a477183c07 (commit)
from 6e79d897e3d5010991bf6e6ebf207bfd988f1129 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit bfbe4f50a2e8a2532fdcb4d2c16d42a477183c07
Author: Ola Liljedahl <ola.liljedahl(a)arm.com>
Date: Tue Sep 19 16:09:08 2017 +0200
linux-generic: pktio: fix gcc7 build error in sched_cb_pktin_poll_one
Adding missing curly braces around if-clause.
For builds which don't flag this as an error, the resulting
build would be functional but with degraded performance.
https://bugs.linaro.org/show_bug.cgi?id=3246
Signed-off-by: Ola Liljedahl <ola.liljedahl(a)arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli(a)arm.com>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c
index bf792a34..64ec1f67 100644
--- a/platform/linux-generic/odp_packet_io.c
+++ b/platform/linux-generic/odp_packet_io.c
@@ -702,12 +702,13 @@ int sched_cb_pktin_poll_one(int pktio_index,
if (odp_unlikely(pkt_hdr->p.input_flags.dst_queue)) {
queue = pkt_hdr->dst_queue;
buf_hdr = packet_to_buf_hdr(pkt);
- if (queue_fn->enq_multi(queue, &buf_hdr, 1) < 0)
+ if (queue_fn->enq_multi(queue, &buf_hdr, 1) < 0) {
/* Queue full? */
odp_packet_free(pkt);
__atomic_fetch_add(&entry->s.stats.in_discards,
1,
__ATOMIC_RELAXED);
+ }
} else {
evt_tbl[num_rx++] = odp_packet_to_event(pkt);
}
-----------------------------------------------------------------------
Summary of changes:
platform/linux-generic/odp_packet_io.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
hooks/post-receive
--
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, api-next has been updated
via 6e79d897e3d5010991bf6e6ebf207bfd988f1129 (commit)
from c6ab55e8bc2b797af290349b56c829e38839929b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 6e79d897e3d5010991bf6e6ebf207bfd988f1129
Author: Petri Savolainen <petri.savolainen(a)linaro.org>
Date: Thu Sep 14 15:02:51 2017 +0300
api: timer: refine timer pool param documentation
Specify explicitly what each timer pool parameter means. This does
not change the intended use of the parameters.
Signed-off-by: Petri Savolainen <petri.savolainen(a)linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/include/odp/api/spec/timer.h b/include/odp/api/spec/timer.h
index b76f5654..17daafc7 100644
--- a/include/odp/api/spec/timer.h
+++ b/include/odp/api/spec/timer.h
@@ -99,12 +99,36 @@ typedef enum {
* Timer pool parameters are used when creating and querying timer pools.
*/
typedef struct {
- uint64_t res_ns; /**< Timeout resolution in nanoseconds */
- uint64_t min_tmo; /**< Minimum relative timeout in nanoseconds */
- uint64_t max_tmo; /**< Maximum relative timeout in nanoseconds */
- uint32_t num_timers; /**< (Minimum) number of supported timers */
- int priv; /**< Shared (false) or private (true) timer pool */
- odp_timer_clk_src_t clk_src; /**< Clock source for timers */
+ /** Timeout resolution in nanoseconds. Timer pool must serve timeouts
+ * with this or higher resolution. The minimum valid value (highest
+ * resolution) is defined by timer capability 'highest_res_ns'. */
+ uint64_t res_ns;
+
+ /** Minimum relative timeout in nanoseconds. All requested timeouts
+ * will be at least this many nanoseconds after the current
+ * time of the timer pool. Timer set functions return an error, if too
+ * short timeout was requested. The value may be also less than
+ * 'res_ns'. */
+ uint64_t min_tmo;
+
+ /** Maximum relative timeout in nanoseconds. All requested timeouts
+ * will be at most this many nanoseconds after the current
+ * time of the timer pool. Timer set functions return an error, if too
+ * long timeout was requested. */
+ uint64_t max_tmo;
+
+ /** Number of timers needed. Application will create in maximum this
+ * many concurrent timers from the timer pool. */
+ uint32_t num_timers;
+
+ /** Thread private timer pool. When zero, multiple thread may use the
+ * timer pool concurrently. When non-zero, only single thread uses the
+ * timer pool (concurrently). */
+ int priv;
+
+ /** Clock source for timers */
+ odp_timer_clk_src_t clk_src;
+
} odp_timer_pool_param_t;
/**
-----------------------------------------------------------------------
Summary of changes:
include/odp/api/spec/timer.h | 36 ++++++++++++++++++++++++++++++------
1 file changed, 30 insertions(+), 6 deletions(-)
hooks/post-receive
--