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 b529f843814f70068de2090e02df632113afa800 (commit)
via fa78c11ad2de706ce07a7691168bdb5b58d060d4 (commit)
from 5a2376365df984e160b92463be37740786a10bd6 (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 b529f843814f70068de2090e02df632113afa800
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>
Reviewed-by: Honnappa Nagarahalli <onnappa.nagarahalli(a)arm.com>
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 3ed49cd4..a4599de6 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);
@@ -261,9 +259,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;
}
commit fa78c11ad2de706ce07a7691168bdb5b58d060d4
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.
Together with the improved sequence number allocation change,
performance improves >2x on Hisilicon D02 (6 and 8 threads) and more of
the scalability of the scheduler itself is exposed.
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>
Reviewed-by: Honnappa Nagarahalli <onnappa.nagarahalli(a)arm.com>
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 80ff6684..3ed49cd4 100644
--- a/test/common_plat/performance/odp_pktio_perf.c
+++ b/test/common_plat/performance/odp_pktio_perf.c
@@ -241,18 +241,16 @@ static int pktio_pkt_has_magic(odp_packet_t pkt)
size_t l4_off;
pkt_head_t pkt_hdr;
- l4_off = odp_packet_l4_offset(pkt);
- if (l4_off) {
- int ret = odp_packet_copy_to_mem(pkt,
- l4_off + ODPH_UDPHDR_LEN,
- sizeof(pkt_hdr), &pkt_hdr);
+ l4_off = ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN;
+ int ret = odp_packet_copy_to_mem(pkt,
+ l4_off + ODPH_UDPHDR_LEN,
+ sizeof(pkt_hdr), &pkt_hdr);
- if (ret != 0)
- return 0;
+ if (ret != 0)
+ return 0;
- if (pkt_hdr.magic == TEST_HDR_MAGIC)
- return 1;
- }
+ if (pkt_hdr.magic == TEST_HDR_MAGIC)
+ return 1;
return 0;
}
@@ -745,6 +743,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;
@@ -794,6 +793,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");
-----------------------------------------------------------------------
Summary of changes:
test/common_plat/performance/odp_pktio_perf.c | 34 ++++++++++++++++-----------
1 file changed, 20 insertions(+), 14 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 fa281989523b82177f974abe7b4adfec47705dfa (commit)
from 3bacbfd55edf76b897a4b2e5c62b59ca6fa95331 (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 fa281989523b82177f974abe7b4adfec47705dfa
Author: Matias Elo <matias.elo(a)nokia.com>
Date: Fri Oct 6 14:39:26 2017 +0300
test: pktio_perf: increase maximum number of workers threads
Increase maximum number of workers to 128. Also, fixes a buffer overflow
which happened when system's maximum thread count was larger than the
value of MAX_WORKERS.
Signed-off-by: Matias Elo <matias.elo(a)nokia.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..80ff6684 100644
--- a/test/common_plat/performance/odp_pktio_perf.c
+++ b/test/common_plat/performance/odp_pktio_perf.c
@@ -39,7 +39,7 @@
#define PKT_BUF_NUM (32 * 1024)
#define MAX_NUM_IFACES 2
#define TEST_HDR_MAGIC 0x92749451
-#define MAX_WORKERS 32
+#define MAX_WORKERS 128
#define BATCH_LEN_MAX 32
/* Packet rate at which to start when using binary search */
@@ -563,6 +563,12 @@ static int setup_txrx_masks(odp_cpumask_t *thd_mask_tx,
return TEST_SKIP;
}
+ if (num_workers > MAX_WORKERS) {
+ LOG_DBG("Worker count limited to MAX_WORKERS define (=%d)\n",
+ MAX_WORKERS);
+ num_workers = MAX_WORKERS;
+ }
+
if (gbl_args->args.num_tx_workers) {
if (gbl_args->args.num_tx_workers > (num_workers - 1)) {
LOG_ERR("Invalid TX worker count\n");
-----------------------------------------------------------------------
Summary of changes:
test/common_plat/performance/odp_pktio_perf.c | 8 +++++++-
1 file changed, 7 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, 2.0 has been created
at 3d3c8f71f39ff139695d6f4b8e5ea17502c5f7cf (commit)
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
hooks/post-receive
--