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 165897bfd094d824e2dd83c968ad9fde28146ef9 (commit)
from 4e4ae44b527a9a0635a219eb19e1ffa425c2186a (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 165897bfd094d824e2dd83c968ad9fde28146ef9
Author: Zoltan Kiss <zoltan.kiss(a)linaro.org>
Date: Mon Jun 13 17:46:27 2016 +0100
linux-generic: classification: use proper accessor to set packet length
And repurpose packet_set_len() for this, as it is no longer used.
This was introduced by the following commit, and break compatibility with
ODP-DPDK:
bd18047a "linux-gen: pktio: don't allocate new packets in classifier"
Signed-off-by: Zoltan Kiss <zoltan.kiss(a)linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Balasubramanian Manoharan <bala.manoharan(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/platform/linux-generic/include/odp_packet_internal.h b/platform/linux-generic/include/odp_packet_internal.h
index d5ace12..a84a6f8 100644
--- a/platform/linux-generic/include/odp_packet_internal.h
+++ b/platform/linux-generic/include/odp_packet_internal.h
@@ -278,9 +278,9 @@ static inline uint32_t packet_len(odp_packet_hdr_t *pkt_hdr)
return pkt_hdr->frame_len;
}
-static inline void packet_set_len(odp_packet_t pkt, uint32_t len)
+static inline void packet_set_len(odp_packet_hdr_t *pkt_hdr, uint32_t len)
{
- odp_packet_hdr(pkt)->frame_len = len;
+ pkt_hdr->frame_len = len;
}
static inline int packet_parse_l2_not_done(odp_packet_hdr_t *pkt_hdr)
diff --git a/platform/linux-generic/odp_classification.c b/platform/linux-generic/odp_classification.c
index 7520bdc..d2cc081 100644
--- a/platform/linux-generic/odp_classification.c
+++ b/platform/linux-generic/odp_classification.c
@@ -815,7 +815,7 @@ int cls_classify_packet(pktio_entry_t *entry, const uint8_t *base, uint16_t len,
cos_t *cos;
packet_parse_reset(pkt_hdr);
- pkt_hdr->frame_len = len;
+ packet_set_len(pkt_hdr, len);
_odp_parse_common(pkt_hdr, base);
cos = cls_select_cos(entry, base, pkt_hdr);
-----------------------------------------------------------------------
Summary of changes:
platform/linux-generic/include/odp_packet_internal.h | 4 ++--
platform/linux-generic/odp_classification.c | 2 +-
2 files changed, 3 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 4e4ae44b527a9a0635a219eb19e1ffa425c2186a (commit)
via 72b2a7212b6afb2d011e537202611e5566584aea (commit)
from 5567e30f8eabcfe32497b0ed858a5f76f9d764a4 (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 4e4ae44b527a9a0635a219eb19e1ffa425c2186a
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Sat Jun 11 07:44:09 2016 -0500
changelog: update for v1.10.1.0
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/CHANGELOG b/CHANGELOG
index d9c66ed..d8230cd 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,168 @@
+== OpenDataPlane (1.10.1.0)
+
+=== New Features
+
+==== APIs
+ODP v1.10.1.0 is a maintenance release and as such introduces no new APIs or
+other changes that might result in application source incompatibility with
+v1.10.0.0.
+
+==== Modular Scheduler
+The ODP scheduler included as part of the `odp-linux` reference implementation
+has been modularized to support a "pluggable" architecture that will permit
+the easy introduction of alternate scheduler implementations that permit
+both easy experimentation as well as alternate scheduling models that are
+tuned to specific application workloads (_i.e.,_ a strict priority scheduler
+for latency-sensitive workloads). Included in this release is the just the
+foundation and alternate schedulers are expected to be added in future ODP
+releases.
+
+=== Packaging
+
+==== Rename of `linux-generic` to `odp-linux`
+While the platform name within the ODP git repository remains
+`linux-generic`, the package name of this reference implementation has been
+changed to `odp-linux` to better reflect that this is an implementation of
+ODP that is dependent only on the Linux kernel and is intended to be runnable
+on any Linux distribution. All ODP documentation has been changed to reflect
+this name change.
+
+=== Helpers
+
+==== Introduction of "agnostic" threading support
+The current helper APIs for linux pthreads (`odph_linux_pthread_create()`, etc.)
+and processes (`odph_linux_process_fork()`, etc.) have been augmented with a
+new "agnostic" set of helper routines for general ODP thread management.
+
+`odph_odpthreads_create()` and `odph_odpthreads_join()` are now the preferred
+helpers to use for creating and joining threads that may be implemented as
+_either_ pthreads or Linux processes. Although currently ODP threads in
+Monarch are assumed to share the same (single) address space, this change is
+to permit evolution towards multi-address space (_i.e.,_ process oriented)
+threading models without requiring application and/or validation test changes.
+
+The various ODP examples and validation tests that make use of threading have
+all been changed to new these new helper APIs.
+
+==== Thread affinity APIs
+As part of the new "agnostic" threading support, two additional helper APIs
+(`odph_odpthread_getaffinity()` and `odph_odpthread_setaffinity()`) have been
+added to permit easy management of thread affinity.
+
+The CUnit framework used by the ODP validation suite has been changed to set
+the affinity of the initial thread to the first available control CPU. This
+avoids inconsistencies in a number of timing tests.
+
+=== Bug Fixes
+As a maintenance release, numerous bugs have been fixed in the `odp-linux`
+reference implementation in areas such as platform support (particularly on
+32-bit systems), compiler support (clang), C++ compatibility, and other
+cleanup items. Highlights include:
+
+==== 32-bit platform support
+The `configure` utility now correctly identifies and sets variables needed for
+proper compilation on 32-bit x86 systems. In addition the Traffic Manager
+now executes properly on 32-bit systems.
+
+==== Timer improvements
+The `odp_timer_t` abstract type is now strongly typed for consistency with
+other ODP types, and the `odp_timer_to_u64()` and `odp_timer_pool_to_u64()`
+APIs are now properly implemented. In addition, an issue with compiling the
+timer routines on 32-bit systems using clang was resolved.
+
+==== Scheduler fairness
+The default scheduler has been improved to avoid starvation and increase
+fairness when running with a limited number of threads or CPUs.
+
+==== 128-bit atomics
+The `-mcx16` compiler option is now properly identified and used to support
+128-bit atomics on systems that support these operations. This leads to
+increased efficiency in the implementation of both timers as well as other
+atomic operations.
+
+==== Use of hugepages
+In systems that support multiple hugepage sizes, the default hugepage size is
+now reported properly by the `odp_sys_huge_page_size()` API.
+
+==== Coverity and Valgrind issue cleanup
+Numerous issues identified by the Coverity scan tool have been cleaned up
+and resolved, leading to improved robustness in the `odp-linux` reference
+implementation. In addition, several memory leaks identified by the valgrind
+tool have been fixed.
+
+==== Validation test resource checks
+The Traffic Manager validation test has certain sub-tests that require a
+minimum of 2 CPUs to operate properly. These tests are now skipped with a
+warning when run on uniprocessor systems.
+
+=== Performance
+Performance enhancements in the `odp-linux` reference implementation have been
+made in packet processing, classification, and pktio, leading to increased
+observed throughput and packet handling rates.
+
+=== Examples
+A new `l2fwd_simple` example has been added that does simple Layer 2 forwarding.
+
+=== Documentation
+==== Switch from AsciiDoc to AsciiDoctor
+To get better formatting capabilities and future extensibility the ODP user
+documentation system has been switched from http://asciidoc.org[AsciiDoc] to
+http://asciidoctor.org[AsciiDoctor]. There are a handful of notable changes as
+a result of this. Those submitting documentation patches should be aware of
+the following:
+
+* `monospace font` is now indicated by demarking the text with backticks (`)
+rather than plus signs (+).
+
+* Callouts are now indicated by C++-style double slash comments (// <1>)
+instead of C-style comments (/* <1> */). So, for example writing
+-----------------------------------------------
+[source,c]
+----
+...some great code deserving a callout // \<1>
+----
+<1> This is an example of a callout
+-----------------------------------------------
+yields:
+----
+...some great code deserving a callout // <1>
+----
+<1> This is an example of a callout
+
+Note that this change only affects user documentation. Code documentation
+still uses http://doxygen.org[Doxygen].
+
+==== Image Cleanup
+The images in the user guide have been trimmed to fit the page better. In
+addition, many new images have been added to better illustrate ODP API usage.
+
+==== Additional User Documentation for Monarch APIs
+The *ODP User's Guide* has been updated to include new sections documenting
+the use of the full Monarch packet APIs as well as the Timer APIs. In
+addition, the crypto, classification, and traffic manager API documentation
+has been improved to cover all of the latest Monarch features, and an
+introductory section on overall ODP packet flow architecture has been added.
+
+==== Helper Documentation
+The ODP Helper library now has its own document that describes these additional
+functions of use to ODP applications and validation tests.
+
+==== Other documentation
+The Process Guide, FAQ, CONTRIBUTING, and CHANGELOG files have been reworked
+for the new AsciiDoctor structure, leading to a more uniform method of
+presenting ODP support documentation. In addition, an option for generating
+both a "pure" ODP API document that defines the APIs in their
+implementation-independent forms as well as their implementation-dependent
+forms for the `odp-linux` reference implementation is now available.
+
+=== Known Issues
+==== https://bugs.linaro.org/show_bug.cgi?id=2301[Bug 2301]
+The scheduler does not remove PKTIN queues following `odp_pktio_close()`
+
+==== https://bugs.linaro.org/show_bug.cgi?id=2309[Bug 2309]
+The timer validation tests have seen occasional failures when run on systems
+containing a larger number of CPUs (typically 24 or more).
+
== OpenDataPlane (1.10.0.0)
=== New Features
commit 72b2a7212b6afb2d011e537202611e5566584aea
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Mon Jun 13 17:32:56 2016 -0500
validation: tm: avoid resouce/memory leaks in corner cases
Resolve Bug https://bugs.linaro.org/show_bug.cgi?id=2306 by cleaning up
TM queues and nodes in error paths.
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/test/validation/traffic_mngr/traffic_mngr.c b/test/validation/traffic_mngr/traffic_mngr.c
index a0cde43..ce9d038 100644
--- a/test/validation/traffic_mngr/traffic_mngr.c
+++ b/test/validation/traffic_mngr/traffic_mngr.c
@@ -1325,12 +1325,19 @@ static int create_tm_queue(odp_tm_t odp_tm,
rc = odp_tm_queue_connect(tm_queue, tm_node);
if (rc != 0) {
LOG_ERR("odp_tm_queue_connect() failed\n");
+ odp_tm_queue_destroy(tm_queue);
return -1;
}
return 0;
}
+static int destroy_tm_queue(odp_tm_queue_t tm_queue)
+{
+ odp_tm_queue_disconnect(tm_queue);
+ return odp_tm_queue_destroy(tm_queue);
+}
+
static tm_node_desc_t *create_tm_node(odp_tm_t odp_tm,
uint32_t level,
uint32_t num_levels,
@@ -1392,6 +1399,7 @@ static tm_node_desc_t *create_tm_node(odp_tm_t odp_tm,
if (rc != 0) {
LOG_ERR("odp_tm_node_connect() failed @ level=%u\n",
level);
+ odp_tm_node_destroy(tm_node);
return NULL;
}
@@ -1425,6 +1433,11 @@ static tm_node_desc_t *create_tm_node(odp_tm_t odp_tm,
if (rc != 0) {
LOG_ERR("create_tm_queue() failed @ level=%u\n",
level);
+ while (priority > 0)
+ (void)destroy_tm_queue
+ (queue_desc->tm_queues[--priority]);
+ free(queue_desc);
+ free(node_desc);
return NULL;
}
}
-----------------------------------------------------------------------
Summary of changes:
CHANGELOG | 165 ++++++++++++++++++++++++++++
test/validation/traffic_mngr/traffic_mngr.c | 13 +++
2 files changed, 178 insertions(+)
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 5567e30f8eabcfe32497b0ed858a5f76f9d764a4 (commit)
from 50029e34c284559b942e6b6b8c56f230eca4f01f (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 5567e30f8eabcfe32497b0ed858a5f76f9d764a4
Author: Anders Roxell <anders.roxell(a)linaro.org>
Date: Fri Jun 10 17:00:19 2016 +0200
example/timer: don't run test if configure flag not set
Signed-off-by: Anders Roxell <anders.roxell(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/example/timer/Makefile.am b/example/timer/Makefile.am
index 1c733d3..edb8b2c 100644
--- a/example/timer/Makefile.am
+++ b/example/timer/Makefile.am
@@ -10,7 +10,9 @@ odp_timer_simple_LDFLAGS = $(AM_LDFLAGS) -static
odp_timer_simple_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/example
dist_odp_timer_simple_SOURCES = odp_timer_simple.c
+if test_example
TESTS = odp_timer_simple
+endif
noinst_HEADERS = \
$(top_srcdir)/example/example_debug.h
-----------------------------------------------------------------------
Summary of changes:
example/timer/Makefile.am | 2 ++
1 file changed, 2 insertions(+)
hooks/post-receive
--