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 a6d9960b81c1c5d4dff0c25b43ac5f9de7e36b8a (commit)
from 645e5ccf90c00c634c29fbb4276a8875699d8893 (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 a6d9960b81c1c5d4dff0c25b43ac5f9de7e36b8a
Author: Christophe Milard <christophe.milard(a)linaro.org>
Date: Fri Aug 19 16:46:23 2016 +0200
doc: drv: fix doxyfile for drv doc generation
Restricting to the driver interface and defining general macros.
Signed-off-by: Christophe Milard <christophe.milard(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/doc/driver-api-guide/Doxyfile b/doc/driver-api-guide/Doxyfile
index 680d1d4..b5f7260 100644
--- a/doc/driver-api-guide/Doxyfile
+++ b/doc/driver-api-guide/Doxyfile
@@ -5,10 +5,13 @@ PROJECT_NUMBER = $(VERSION)
PROJECT_LOGO = $(SRCDIR)/doc/images/ODP-Logo-HQ.svg
INPUT = $(SRCDIR)/doc/driver-api-guide \
$(SRCDIR)/include/odp/drv \
+ $(SRCDIR)/platform/$(WITH_PLATFORM)/include/odp/drv \
$(SRCDIR)/include/odp_drv.h
-EXCLUDE_PATTERNS = drv* odp_drv.h
-EXAMPLE_PATH = $(SRCDIR)/example $(SRCDIR)
PREDEFINED = __GNUC__ \
- "ODP_HANDLE_T(type)=odp_handle_t type" \
- odpdrv_bool_t=int
-WARNINGS = NO
+ __attribute__(x)= \
+ ODPDRV_ALIGNED(x)= \
+ __BIG_ENDIAN_BITFIELD \
+ __LITTLE_ENDIAN_BITFIELD \
+ __x86_64__ \
+ ODPDRV_PACKED \
+ "ODPDRV_HANDLE_T(type)=odpdrv_handle_t type"
-----------------------------------------------------------------------
Summary of changes:
doc/driver-api-guide/Doxyfile | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 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 645e5ccf90c00c634c29fbb4276a8875699d8893 (commit)
via be6d2d4f3de94cc314d2367f76432306f4c88b94 (commit)
via 95b2d51738e97067f2e2423a83dd077b34c51b8f (commit)
via ffda91e73c9153d7a7b7d7948de2f902c261d36e (commit)
via 40fb071be7c22776a190d1c7fa32b100510e2b82 (commit)
via 6e95b8923cd013f9db4d7198a2add5cc4cdc9e28 (commit)
from 8cc7373f536b86ca56a080f4a4bb67edd03bded3 (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 645e5ccf90c00c634c29fbb4276a8875699d8893
Merge: 8cc7373 be6d2d4
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Fri Sep 2 11:38:37 2016 +0300
Merge branch 'master' into api-next
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
-----------------------------------------------------------------------
Summary of changes:
platform/linux-generic/include/odp_packet_dpdk.h | 2 +-
platform/linux-generic/odp_pkt_queue.c | 12 ++---
platform/linux-generic/odp_traffic_mngr.c | 26 +++++-----
platform/linux-generic/pktio/dpdk.c | 56 ++++++++++++----------
test/common_plat/performance/odp_scheduling.c | 2 +-
test/common_plat/performance/odp_scheduling_run.sh | 6 ++-
.../performance/odp_scheduling_run_proc.sh | 6 ++-
7 files changed, 60 insertions(+), 50 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 40fb071be7c22776a190d1c7fa32b100510e2b82 (commit)
from 6e95b8923cd013f9db4d7198a2add5cc4cdc9e28 (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 40fb071be7c22776a190d1c7fa32b100510e2b82
Author: Mike Holmes <mike.holmes(a)linaro.org>
Date: Mon Aug 29 12:15:50 2016 -0400
test: perf: add prime num threads to odp_scheduling
A recent bug showed the limitations of using powers of two, add a prime
number of threads as a new test case.
Signed-off-by: Mike Holmes <mike.holmes(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/test/common_plat/performance/odp_scheduling.c b/test/common_plat/performance/odp_scheduling.c
index 1de79f7..9407636 100644
--- a/test/common_plat/performance/odp_scheduling.c
+++ b/test/common_plat/performance/odp_scheduling.c
@@ -723,7 +723,7 @@ static void print_usage(void)
{
printf("\n\nUsage: ./odp_example [options]\n");
printf("Options:\n");
- printf(" -c, --count <number> CPU count\n");
+ printf(" -c, --count <number> CPU count, 0=all available, default=0\n");
printf(" -h, --help this help\n");
printf(" -f, --fair collect fairness statistics\n");
printf("\n\n");
diff --git a/test/common_plat/performance/odp_scheduling_run.sh b/test/common_plat/performance/odp_scheduling_run.sh
index 755b0c1..a22326d 100755
--- a/test/common_plat/performance/odp_scheduling_run.sh
+++ b/test/common_plat/performance/odp_scheduling_run.sh
@@ -10,16 +10,20 @@
TEST_DIR="${TEST_DIR:-$(dirname $0)}"
ret=0
+ALL=0
run()
{
- echo odp_scheduling_run starts with $1 worker threads
+ echo odp_scheduling_run starts requesting $1 worker threads
echo ===============================================
$TEST_DIR/odp_scheduling${EXEEXT} -c $1 || ret=1
}
run 1
+run 5
run 8
+run 11
+run $ALL
exit $ret
diff --git a/test/linux-generic/performance/odp_scheduling_run_proc.sh b/test/linux-generic/performance/odp_scheduling_run_proc.sh
index b3ef26f..384017a 100755
--- a/test/linux-generic/performance/odp_scheduling_run_proc.sh
+++ b/test/linux-generic/performance/odp_scheduling_run_proc.sh
@@ -11,16 +11,20 @@
TEST_DIR="${TEST_DIR:-$(dirname $0)}"
PERFORMANCE="$TEST_DIR/../../common_plat/performance"
ret=0
+ALL=0
run()
{
- echo odp_scheduling_run_proc starts with $1 worker threads
+ echo odp_scheduling_run starts requesting $1 worker threads
echo =====================================================
$PERFORMANCE/odp_scheduling${EXEEXT} --odph_proc -c $1 || ret=1
}
run 1
+run 5
run 8
+run 11
+run $ALL
exit $ret
-----------------------------------------------------------------------
Summary of changes:
test/common_plat/performance/odp_scheduling.c | 2 +-
test/common_plat/performance/odp_scheduling_run.sh | 6 +++++-
test/linux-generic/performance/odp_scheduling_run_proc.sh | 6 +++++-
3 files changed, 11 insertions(+), 3 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 6e95b8923cd013f9db4d7198a2add5cc4cdc9e28 (commit)
from 972fef8f7202cc90e14d83a217fa19999fac0489 (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 6e95b8923cd013f9db4d7198a2add5cc4cdc9e28
Author: Barry Spinney <spinney(a)mellanox.com>
Date: Tue Aug 23 17:51:45 2016 -0400
linux-generic: tm: fix off by 1 bug accessing queue_num_tbl
Both odp_pkt_queue.c and odp_traffic_mngr.c has similar bugs where
an array was malloc'd but the valid indicies run from 1 to the number
of entries malloc'd. This is because queue_num == 0 is used as a special
value indicating an invalid queue_num. The value 0 is used for this
same special purpose throughout the traffic mngr.
The fix involved using "queue_num - 1" as the array index, but only
after checking that queue_num is not 0. Also in a few cases a common
function used to get and check the queue_num was used in a few more
cases.
Signed-off-by: Barry Spinney <spinney(a)mellanox.com>
Reviewed-and-tested-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_pkt_queue.c b/platform/linux-generic/odp_pkt_queue.c
index 7734ee9..7c6cd87 100644
--- a/platform/linux-generic/odp_pkt_queue.c
+++ b/platform/linux-generic/odp_pkt_queue.c
@@ -92,7 +92,7 @@ static int pkt_queue_free_list_add(queue_pool_t *pool,
queue_blks_t *queue_blks;
queue_blk_t *queue_blk;
uint32_t which_region, blks_added, num_blks, start_idx;
- uint32_t malloc_len, blks_to_add, cnt;
+ uint32_t malloc_len, blks_to_add, cnt, i;
which_region = pool->current_region;
blks_added = 0;
@@ -102,7 +102,6 @@ static int pkt_queue_free_list_add(queue_pool_t *pool,
num_blks = region_desc->num_blks;
queue_blks = region_desc->queue_blks;
if (!queue_blks) {
- uint32_t i;
malloc_len = num_blks * sizeof(queue_blk_t);
queue_blks = malloc(malloc_len);
@@ -263,13 +262,13 @@ int _odp_pkt_queue_append(_odp_int_queue_pool_t queue_pool,
return -3;
pool->total_pkt_appends++;
- first_blk_idx = pool->queue_num_tbl[queue_num];
+ first_blk_idx = pool->queue_num_tbl[queue_num - 1];
if (first_blk_idx == 0) {
first_blk = queue_blk_alloc(pool, &first_blk_idx);
if (!first_blk)
return -1;
- pool->queue_num_tbl[queue_num] = first_blk_idx;
+ pool->queue_num_tbl[queue_num - 1] = first_blk_idx;
init_queue_blk(first_blk);
first_blk->pkts[0] = pkt;
return 0;
@@ -316,7 +315,7 @@ int _odp_pkt_queue_remove(_odp_int_queue_pool_t queue_pool,
if ((queue_num == 0) || (pool->max_queue_num < queue_num))
return -2;
- first_blk_idx = pool->queue_num_tbl[queue_num];
+ first_blk_idx = pool->queue_num_tbl[queue_num - 1];
if (first_blk_idx == 0)
return 0; /* pkt queue is empty. */
@@ -344,7 +343,8 @@ int _odp_pkt_queue_remove(_odp_int_queue_pool_t queue_pool,
first_blk->tail_queue_blk_idx;
}
- pool->queue_num_tbl[queue_num] = next_blk_idx;
+ pool->queue_num_tbl[queue_num - 1] =
+ next_blk_idx;
queue_blk_free(pool, first_blk, first_blk_idx);
}
diff --git a/platform/linux-generic/odp_traffic_mngr.c b/platform/linux-generic/odp_traffic_mngr.c
index a5271ed..4fe07ef 100644
--- a/platform/linux-generic/odp_traffic_mngr.c
+++ b/platform/linux-generic/odp_traffic_mngr.c
@@ -109,7 +109,7 @@ static tm_queue_obj_t *get_tm_queue_obj(tm_system_t *tm_system,
return NULL;
queue_num = pkt_desc->queue_num;
- tm_queue_obj = tm_system->queue_num_tbl[queue_num];
+ tm_queue_obj = tm_system->queue_num_tbl[queue_num - 1];
return tm_queue_obj;
}
@@ -1596,11 +1596,10 @@ static odp_bool_t tm_consume_sent_pkt(tm_system_t *tm_system,
tm_queue_obj_t *tm_queue_obj;
odp_packet_t pkt;
pkt_desc_t *new_pkt_desc;
- uint32_t queue_num, pkt_len;
+ uint32_t pkt_len;
int rc;
- queue_num = sent_pkt_desc->queue_num;
- tm_queue_obj = tm_system->queue_num_tbl[queue_num];
+ tm_queue_obj = get_tm_queue_obj(tm_system, sent_pkt_desc);
if (!tm_queue_obj)
return false;
@@ -2088,15 +2087,11 @@ static void tm_send_pkt(tm_system_t *tm_system, uint32_t max_sends)
tm_queue_obj_t *tm_queue_obj;
odp_packet_t odp_pkt;
pkt_desc_t *pkt_desc;
- uint32_t cnt, queue_num;
+ uint32_t cnt;
for (cnt = 1; cnt <= max_sends; cnt++) {
pkt_desc = &tm_system->egress_pkt_desc;
- queue_num = pkt_desc->queue_num;
- if (queue_num == 0)
- return;
-
- tm_queue_obj = tm_system->queue_num_tbl[queue_num];
+ tm_queue_obj = get_tm_queue_obj(tm_system, pkt_desc);
if (!tm_queue_obj)
return;
@@ -2149,7 +2144,8 @@ static int tm_process_input_work_queue(tm_system_t *tm_system,
return rc;
}
- tm_queue_obj = tm_system->queue_num_tbl[work_item.queue_num];
+ tm_queue_obj =
+ tm_system->queue_num_tbl[work_item.queue_num - 1];
pkt = work_item.pkt;
if (!tm_queue_obj) {
odp_packet_free(pkt);
@@ -2204,7 +2200,7 @@ static int tm_process_expired_timers(tm_system_t *tm_system,
queue_num = (timer_context & 0xFFFFFFFF) >> 4;
timer_seq = timer_context >> 32;
- tm_queue_obj = tm_system->queue_num_tbl[queue_num];
+ tm_queue_obj = tm_system->queue_num_tbl[queue_num - 1];
if (!tm_queue_obj)
return work_done;
@@ -3904,7 +3900,7 @@ odp_tm_queue_t odp_tm_queue_create(odp_tm_t odp_tm,
tm_queue_obj->tm_qentry.s.enqueue = queue_tm_reenq;
tm_queue_obj->tm_qentry.s.enqueue_multi = queue_tm_reenq_multi;
- tm_system->queue_num_tbl[tm_queue_obj->queue_num] = tm_queue_obj;
+ tm_system->queue_num_tbl[tm_queue_obj->queue_num - 1] = tm_queue_obj;
odp_ticketlock_lock(&tm_system->tm_system_lock);
if (params->shaper_profile != ODP_TM_INVALID)
tm_shaper_config_set(tm_system, params->shaper_profile,
@@ -3972,7 +3968,7 @@ int odp_tm_queue_destroy(odp_tm_queue_t tm_queue)
/* Now that all of the checks are done, time to so some freeing. */
odp_ticketlock_lock(&tm_system->tm_system_lock);
- tm_system->queue_num_tbl[tm_queue_obj->queue_num] = NULL;
+ tm_system->queue_num_tbl[tm_queue_obj->queue_num - 1] = NULL;
/* First delete any associated tm_wred_node and then the tm_queue_obj
* itself */
@@ -4634,7 +4630,7 @@ void odp_tm_stats_print(odp_tm_t odp_tm)
max_queue_num = tm_system->next_queue_num;
for (queue_num = 1; queue_num < max_queue_num; queue_num++) {
- tm_queue_obj = tm_system->queue_num_tbl[queue_num];
+ tm_queue_obj = tm_system->queue_num_tbl[queue_num - 1];
if (tm_queue_obj && tm_queue_obj->pkts_rcvd_cnt != 0)
ODP_DBG("queue_num=%u priority=%u rcvd=%u enqueued=%u "
"dequeued=%u consumed=%u\n",
-----------------------------------------------------------------------
Summary of changes:
platform/linux-generic/odp_pkt_queue.c | 12 ++++++------
platform/linux-generic/odp_traffic_mngr.c | 26 +++++++++++---------------
2 files changed, 17 insertions(+), 21 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, next has been updated
via 972fef8f7202cc90e14d83a217fa19999fac0489 (commit)
via 99b5da310aded4ed933c848c11e00046c8aed766 (commit)
via 7528454aaab5c21356631515faf63117dbb9a66b (commit)
via f11a255716190184f8eaeef1888fd5b82773aa66 (commit)
via 84bc9a4cdc3569f79d894f4644a4e0051155be24 (commit)
via 35af07b2469e9f41769648b2d17b7d2be52ee270 (commit)
from e5492930c13b8b17a6333050fd5078c89b305c17 (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 -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
DEPENDENCIES | 4 +--
doc/process-guide/release-guide.adoc | 52 +++++++++++++++++++++++++++
example/l2fwd_simple/l2fwd_simple_run.sh | 6 ++--
example/l2fwd_simple/odp_l2fwd_simple.c | 39 ++++++++++++++++++--
platform/linux-generic/pktio/dpdk.c | 51 +++++++++++++++++++++-----
platform/linux-generic/pktio/socket_mmap.c | 1 -
scripts/build-pktio-dpdk | 3 +-
test/common_plat/performance/odp_scheduling.c | 12 +++----
8 files changed, 142 insertions(+), 26 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 8cc7373f536b86ca56a080f4a4bb67edd03bded3 (commit)
via 972fef8f7202cc90e14d83a217fa19999fac0489 (commit)
via 99b5da310aded4ed933c848c11e00046c8aed766 (commit)
via 7528454aaab5c21356631515faf63117dbb9a66b (commit)
via f11a255716190184f8eaeef1888fd5b82773aa66 (commit)
via 84bc9a4cdc3569f79d894f4644a4e0051155be24 (commit)
via 35af07b2469e9f41769648b2d17b7d2be52ee270 (commit)
from 9fcbfb975cdc500bf18117c31f54d2c9f77079c4 (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 8cc7373f536b86ca56a080f4a4bb67edd03bded3
Merge: 9fcbfb9 972fef8
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Mon Aug 22 17:21:24 2016 +0300
Merge branch 'master' into api-next
-----------------------------------------------------------------------
Summary of changes:
DEPENDENCIES | 4 +--
doc/process-guide/release-guide.adoc | 52 +++++++++++++++++++++++++++
example/l2fwd_simple/l2fwd_simple_run.sh | 6 ++--
example/l2fwd_simple/odp_l2fwd_simple.c | 39 ++++++++++++++++++--
platform/linux-generic/pktio/dpdk.c | 51 +++++++++++++++++++++-----
platform/linux-generic/pktio/socket_mmap.c | 1 -
scripts/build-pktio-dpdk | 3 +-
test/common_plat/performance/odp_scheduling.c | 12 +++----
8 files changed, 142 insertions(+), 26 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 9fcbfb975cdc500bf18117c31f54d2c9f77079c4 (commit)
from a8d5848de4cd79122ebb2a831d465e05b77e52a3 (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 9fcbfb975cdc500bf18117c31f54d2c9f77079c4
Author: Christophe Milard <christophe.milard(a)linaro.org>
Date: Sat Aug 20 00:24:31 2016 +0200
drv: byteorder: added bitfield order
mostly to keep the symmetry with the API side
Signed-off-by: Christophe Milard <christophe.milard(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/drv/spec/byteorder.h b/include/odp/drv/spec/byteorder.h
index d3f5d7e..bf363f5 100644
--- a/include/odp/drv/spec/byteorder.h
+++ b/include/odp/drv/spec/byteorder.h
@@ -38,6 +38,9 @@ extern "C" {
*
* @def ODPDRV_BYTE_ORDER
* Selected byte order
+ *
+ * @def ODPDRV_BITFIELD_ORDER
+ * Selected bitfield order
*/
/**
diff --git a/platform/linux-generic/include/odp/drv/plat/byteorder_types.h b/platform/linux-generic/include/odp/drv/plat/byteorder_types.h
index cb7aec2..5dd182d 100644
--- a/platform/linux-generic/include/odp/drv/plat/byteorder_types.h
+++ b/platform/linux-generic/include/odp/drv/plat/byteorder_types.h
@@ -49,12 +49,16 @@ extern "C" {
#define ODPDRV_LITTLE_ENDIAN 1
#define ODPDRV_BIG_ENDIAN 0
#define ODPDRV_BYTE_ORDER ODPDRV_LITTLE_ENDIAN
- #define ODPDRV_LITTLE_ENDIAN_BITFIELD
+ #define ODPDRV_LITTLE_ENDIAN_BITFIELD 1
+ #define ODPDRV_BIG_ENDIAN_BITFIELD 0
+ #define ODPDRV_BITFIELD_ORDER ODPDRV_LITTLE_ENDIAN_BITFIELD
#else
#define ODPDRV_LITTLE_ENDIAN 0
#define ODPDRV_BIG_ENDIAN 1
- #define ODPDRV_BYTE_ORDER ODP_BIG_ENDIAN
- #define ODPDRV_BIG_ENDIAN_BITFIELD
+ #define ODPDRV_BYTE_ORDER ODPDRV_BIG_ENDIAN
+ #define ODPDRV_LITTLE_ENDIAN_BITFIELD 0
+ #define ODPDRV_BIG_ENDIAN_BITFIELD 1
+ #define ODPDRV_BITFIELD_ORDER ODPDRV_BIG_ENDIAN_BITFIELD
#endif
typedef uint16_t __odpdrv_bitwise odpdrv_u16le_t;
-----------------------------------------------------------------------
Summary of changes:
include/odp/drv/spec/byteorder.h | 3 +++
platform/linux-generic/include/odp/drv/plat/byteorder_types.h | 10 +++++++---
2 files changed, 10 insertions(+), 3 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 972fef8f7202cc90e14d83a217fa19999fac0489 (commit)
via 99b5da310aded4ed933c848c11e00046c8aed766 (commit)
from 7528454aaab5c21356631515faf63117dbb9a66b (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 972fef8f7202cc90e14d83a217fa19999fac0489
Author: Matias Elo <matias.elo(a)nokia.com>
Date: Wed Aug 17 12:59:21 2016 +0300
linux-gen: dpdk: free used mempool when closing pktio device
DPDK 16.07 finally supports freeing memory pools.
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/platform/linux-generic/pktio/dpdk.c b/platform/linux-generic/pktio/dpdk.c
index bf8b499..b45c9a8 100644
--- a/platform/linux-generic/pktio/dpdk.c
+++ b/platform/linux-generic/pktio/dpdk.c
@@ -390,6 +390,8 @@ static int dpdk_close(pktio_entry_t *pktio_entry)
if (pktio_entry->s.state != PKTIO_STATE_OPENED)
rte_eth_dev_close(pkt_dpdk->port_id);
+ rte_mempool_free(pkt_dpdk->pkt_pool);
+
return 0;
}
@@ -650,14 +652,9 @@ static int dpdk_open(odp_pktio_t id ODP_UNUSED,
else
pkt_dpdk->min_rx_burst = 0;
- /* Look for previously opened packet pool */
- pkt_pool = rte_mempool_lookup(pkt_dpdk->pool_name);
- if (pkt_pool == NULL)
- pkt_pool = rte_pktmbuf_pool_create(pkt_dpdk->pool_name,
- DPDK_NB_MBUF,
- DPDK_MEMPOOL_CACHE_SIZE, 0,
- DPDK_MBUF_BUF_SIZE,
- rte_socket_id());
+ pkt_pool = rte_pktmbuf_pool_create(pkt_dpdk->pool_name, DPDK_NB_MBUF,
+ DPDK_MEMPOOL_CACHE_SIZE, 0,
+ DPDK_MBUF_BUF_SIZE, rte_socket_id());
if (pkt_pool == NULL) {
ODP_ERR("Cannot init mbuf packet pool\n");
return -1;
commit 99b5da310aded4ed933c848c11e00046c8aed766
Author: Matias Elo <matias.elo(a)nokia.com>
Date: Wed Aug 17 12:59:20 2016 +0300
linux-gen: dpdk: bump target dpdk version to 16.07
Change target dpdk version to 16.07 and add init functions
for the new drivers. Update dpdk build script.
Signed-off-by: Matias Elo <matias.elo(a)nokia.com>
Signed-off-by: Zoltan Kiss <zoltan.kiss(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/DEPENDENCIES b/DEPENDENCIES
index a5266c9..f1f0edd 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -165,7 +165,7 @@ Prerequisites for building the OpenDataPlane (ODP) API
3.4.1 Building DPDK and ODP with DPDK pktio support
- DPDK packet I/O has been tested to work with DPDK v16.04.
+ DPDK packet I/O has been tested to work with DPDK v16.07.
Follow steps in ./scripts/build-pktio-dpdk
@@ -179,7 +179,7 @@ Prerequisites for building the OpenDataPlane (ODP) API
Reserve and mount hugepages and bind supported interfaces to DPDK modules
following the DPDK documentation. ODP DPDK packet I/O has been tested with
512 x 2MB hugepages. All this can be done with the DPDK setup script
- (<dpdk-dir>/tools/setup.sh).
+ (<dpdk-dir>/tools/dpdk-setup.sh).
3.4.3 Running ODP with DPDK pktio
diff --git a/platform/linux-generic/pktio/dpdk.c b/platform/linux-generic/pktio/dpdk.c
index 1fad8a9..bf8b499 100644
--- a/platform/linux-generic/pktio/dpdk.c
+++ b/platform/linux-generic/pktio/dpdk.c
@@ -36,12 +36,14 @@ extern void devinitfn_##drv(void)
PMD_EXT(aesni_gcm_pmd_drv);
PMD_EXT(cryptodev_aesni_mb_pmd_drv);
+PMD_EXT(cryptodev_kasumi_pmd_drv);
PMD_EXT(cryptodev_null_pmd_drv);
PMD_EXT(cryptodev_snow3g_pmd_drv);
PMD_EXT(pmd_qat_drv);
PMD_EXT(pmd_af_packet_drv);
PMD_EXT(rte_bnx2x_driver);
PMD_EXT(rte_bnx2xvf_driver);
+PMD_EXT(bnxt_pmd_drv);
PMD_EXT(bond_drv);
PMD_EXT(rte_cxgbe_driver);
PMD_EXT(em_pmd_drv);
@@ -61,17 +63,30 @@ PMD_EXT(pmd_mpipe_gbe_drv);
PMD_EXT(rte_nfp_net_driver);
PMD_EXT(pmd_null_drv);
PMD_EXT(pmd_pcap_drv);
+PMD_EXT(rte_qede_driver);
+PMD_EXT(rte_qedevf_driver);
PMD_EXT(pmd_ring_drv);
PMD_EXT(pmd_szedata2_drv);
+PMD_EXT(rte_nicvf_driver);
PMD_EXT(pmd_vhost_drv);
PMD_EXT(rte_virtio_driver);
+PMD_EXT(virtio_user_driver);
PMD_EXT(rte_vmxnet3_driver);
PMD_EXT(pmd_xenvirt_drv);
+#define MEMPOOL_OPS(hdl) \
+extern void mp_hdlr_init_##hdl(void)
+
+MEMPOOL_OPS(ops_mp_mc);
+MEMPOOL_OPS(ops_sp_sc);
+MEMPOOL_OPS(ops_mp_sc);
+MEMPOOL_OPS(ops_sp_mc);
+MEMPOOL_OPS(ops_stack);
+
/*
* This function is not called from anywhere, it's only purpose is to make sure
* that if ODP and DPDK are statically linked to an application, the GCC
- * constuctors of the PMDs are linked as well. Otherwise the linker would omit
+ * constructors of the PMDs are linked as well. Otherwise the linker would omit
* them. It's not an issue with dynamic linking. */
void refer_constructors(void);
void refer_constructors(void)
@@ -82,6 +97,9 @@ void refer_constructors(void)
#ifdef RTE_LIBRTE_PMD_AESNI_MB
devinitfn_cryptodev_aesni_mb_pmd_drv();
#endif
+#ifdef RTE_LIBRTE_PMD_KASUMI
+ devinitfn_cryptodev_kasumi_pmd_drv();
+#endif
#ifdef RTE_LIBRTE_PMD_NULL_CRYPTO
devinitfn_cryptodev_null_pmd_drv();
#endif
@@ -98,6 +116,9 @@ void refer_constructors(void)
devinitfn_rte_bnx2x_driver();
devinitfn_rte_bnx2xvf_driver();
#endif
+#ifdef RTE_LIBRTE_BNXT_PMD
+ devinitfn_bnxt_pmd_drv();
+#endif
#ifdef RTE_LIBRTE_PMD_BOND
devinitfn_bond_drv();
#endif
@@ -147,24 +168,39 @@ void refer_constructors(void)
#ifdef RTE_LIBRTE_PMD_PCAP
devinitfn_pmd_pcap_drv();
#endif
+#ifdef RTE_LIBRTE_QEDE_PMD
+ devinitfn_rte_qede_driver();
+ devinitfn_rte_qedevf_driver();
+#endif
#ifdef RTE_LIBRTE_PMD_RING
devinitfn_pmd_ring_drv();
#endif
#ifdef RTE_LIBRTE_PMD_SZEDATA2
devinitfn_pmd_szedata2_drv();
#endif
+#ifdef RTE_LIBRTE_THUNDERX_NICVF_PMD
+ devinitfn_rte_nicvf_driver();
+#endif
#ifdef RTE_LIBRTE_PMD_VHOST
devinitfn_pmd_vhost_drv();
#endif
#ifdef RTE_LIBRTE_VIRTIO_PMD
devinitfn_rte_virtio_driver();
#endif
+#ifdef RTE_VIRTIO_USER
+ devinitfn_rte_virtio_driver();
+#endif
#ifdef RTE_LIBRTE_VMXNET3_PMD
devinitfn_rte_vmxnet3_driver();
#endif
#ifdef RTE_LIBRTE_PMD_XENVIRT
devinitfn_pmd_xenvirt_drv();
#endif
+ mp_hdlr_init_ops_mp_mc();
+ mp_hdlr_init_ops_sp_sc();
+ mp_hdlr_init_ops_mp_sc();
+ mp_hdlr_init_ops_sp_mc();
+ mp_hdlr_init_ops_stack();
}
/* Test if s has only digits or not. Dpdk pktio uses only digits.*/
diff --git a/scripts/build-pktio-dpdk b/scripts/build-pktio-dpdk
index 53f703a..280f518 100755
--- a/scripts/build-pktio-dpdk
+++ b/scripts/build-pktio-dpdk
@@ -12,12 +12,11 @@ fi
git clone http://dpdk.org/git/dpdk dpdk
pushd dpdk
-git checkout -b bv16.04 v16.04
+git checkout -b bv16.07 v16.07
#Make and edit DPDK configuration
make config T=${TARGET} O=${TARGET}
pushd ${TARGET}
-sed -ri 's,(CONFIG_RTE_BUILD_COMBINE_LIBS=).*,\1y,' .config
#To use I/O without DPDK supported NIC's enable pcap pmd:
sed -ri 's,(CONFIG_RTE_LIBRTE_PMD_PCAP=).*,\1y,' .config
popd
-----------------------------------------------------------------------
Summary of changes:
DEPENDENCIES | 4 +--
platform/linux-generic/pktio/dpdk.c | 51 ++++++++++++++++++++++++++++++-------
scripts/build-pktio-dpdk | 3 +--
3 files changed, 45 insertions(+), 13 deletions(-)
hooks/post-receive
--