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 4cf18bb4f799e6601c20e54fafbdb58da538de89 (commit)
from 793c4b15275fd7e6c30bf348f236e778b9bfee02 (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 4cf18bb4f799e6601c20e54fafbdb58da538de89
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Thu Jun 9 19:09:28 2016 -0500
linux-generic: timer: correct definition of ODP_TIMEOUT_INVALID
Resolve bug https://bugs.linaro.org/show_bug.cgi?id=2316 by changing the
typedef of ODP_TIMEOUT_INVALID to be 0xffffffff to be consistent with other
buffer types. This enables pool 0 to be used as a timeout pool.
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/timer_types.h b/platform/linux-generic/include/odp/api/plat/timer_types.h
index 93ea162..68d6f6f 100644
--- a/platform/linux-generic/include/odp/api/plat/timer_types.h
+++ b/platform/linux-generic/include/odp/api/plat/timer_types.h
@@ -36,7 +36,7 @@ typedef ODP_HANDLE_T(odp_timer_t);
typedef ODP_HANDLE_T(odp_timeout_t);
-#define ODP_TIMEOUT_INVALID _odp_cast_scalar(odp_timeout_t, 0)
+#define ODP_TIMEOUT_INVALID _odp_cast_scalar(odp_timeout_t, 0xffffffff)
/**
* @}
-----------------------------------------------------------------------
Summary of changes:
platform/linux-generic/include/odp/api/plat/timer_types.h | 2 +-
1 file changed, 1 insertion(+), 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 annotated tag, v1.10.1.0 has been created
at c76a3e82d2fa7585314680e24f2756831bdabac0 (tag)
tagging b78d235b8fe23b423bf6e7a3c65abbfb7efa4af8 (commit)
replaces v1.10.0.0
tagged by Maxim Uvarov
on Tue Jun 14 19:35:59 2016 +0300
- Log -----------------------------------------------------------------
== 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).
Anders Roxell (3):
helper/test: add missing scripts to EXTRA_DIST
linux-generic: include: drv: std_types.h: fix cyclic include
example/timer: don't run test if configure flag not set
Balakrishna Garapati (1):
test: performance: return when pkt alloc fails
Balasubramanian Manoharan (3):
linux-generic: classification:fix uninitialized pmr param value
doc: users-guide: add packet marking documentation
doc: users-guide: add packet drop and error CoS documentation
Barry Spinney (8):
linux-generic: traffic-mngr: fix printing on 32-bit platforms
linux-generic: traffic-mngr: 32-bit platform fixes
validation: traffic-mngr: fixes to support 32-bit platforms
linux-generic: tm: fix compile error on 32-bit platforms
linux-generic: tm: completed implementing _odp_timer_wheel_destroy
linux-generic: tm: fix an off by one error
linux-generic: tm: fix memory leaks
linux-generic: tm: fix more memory leaks
Bill Fischofer (33):
linux-generic: init: comment out last local stage to avoid scan issues
doc: userguide: change plus to backtick for asciidoctor
doc: userguide: add sub-documents and images to list of source files
doc: userguide: split packet section into its own sub document
doc: userguide: revise packet segment image to account for extend/trunc
doc: userguide: add extend/trunc doc
doc: userguide: add additional images for packet processing
doc: userguide: add descriptions of new packet manipulation APIs
linux-generic: arch: add missing cache line size definition for linux
doc: userguide: trim images for better fit
linux-generic: queue: avoid leakage on queue create
linux-generic: includes: typo correction
doc: guides: remove extraneous non-ascii characters from doc files
validation: timer: verify timer successfully allocated
doc: userguide: add timer/timeout state diagrams
doc: userguide: add timer and timeout event section to user guide
test: packet: remove unused values
configure: whitespace cleanup
configure: add check for gcc version
example: tm: remove unused code
example: tm: check rc from odp init calls
validation: tm: add debug check to avoid unreachable code
validation: tm: handle pktio open/config failures properly
validation: tm: avoid potential null pointer dereference
linux-generic: tm: avoid underflow on log2 of 0
linux-generic: tm: check for proper init of tm_system_thread
linux-generic: tm: discard rc values properly when not needed
linux-generic: tm: avoid potential null pointer dereference
linux-generic: tm: replace printf with odp_dbg calls
example: l2fwd: use parameterized array to avoid memory corruption
linux-generic: tm: parameterize use of secondary_hash_dump() routine
validation: tm: avoid resouce/memory leaks in corner cases
changelog: update for v1.10.1.0
Christophe Milard (37):
validation: lock: tuning the iteration number
helpers: adding command line argument parsing
validation: common: adding command line argument parsing
validation: shmem: adding command line argument parsing
helpers: linux: creating functions to handle odpthreads
helper: test: adding odpthread functions tests
validation: using implementation agnostic function for ODP threads
validation: most tests: adding command line argument parsing
validation: init: adding command line argument parsing
validation: pktio: adding command line argument parsing
performance: odp_scheduling: proc mode done by helper
performance: odp_pktio_perf: using agnostic function for ODP threads
performance: odp_pktio_perf: adding helper cmd line parsing
performance: odp_l2fwd: using agnostic function for ODP threads
performance: odp_l2fwd: adding helper cmd line parsing
performance: crypto: using agnostic function for ODP threads
performance: crypto: adding helper cmd line parsing
example: classifier: using agnostic function for ODP threads
example: classifier: adding helper cmd line parsing
example: generator: using agnostic function for ODP threads
example: generator: adding helper cmd line parsing
example: ipsec: using agnostic function for ODP threads
example: ipsec: adding helper cmd line parsing
example: l2fwd_simple: using agnostic function for ODP threads
example: l2fwd_simple: adding helper cmd line parsing
example: pktio: using agnostic function for ODP threads
example: pktio: adding helper cmd line parsing
example: time: using agnostic function for ODP threads
example: time: adding helper cmd line parsing
example: timer: using agnostic function for ODP threads
example: timer: adding helper cmd line parsing
example: switch: using agnostic function for ODP threads
example: switch: adding helper cmd line parsing
linux-generic: test: ringtest: using agnostic function for ODP threads
linux-generic: test: ringtest: adding helper cmd line parsing
doc: implementers-guide: adding helper recommendations
helper: fix doxygen comments for odpthread creation parameters
Matias Elo (18):
configure: detect ARCH correctly for 32-bit x86 hosts
time: fix invalid casting on a 32-bit host
linux-generic: timer: add missing odp_timeX_to_u64() functions
linux-generic: timer: use strong typing
linux-generic: dpdk: use memset() to initialize dev_info
linux-generic: packet: remove l3_protocol and l4_protocol members from odp_packet_hdr_t
linux-generic: packet: remove vlan_s_tag and vlan_c_tag members from odp_packet_hdr_t
linux-generic: packet: remove payload_offset member from odp_packet_hdr_t
linux-generic: buffer: ifdef ipc_addr_offset member from odp_buffer_hdr_t
linux-generic: packet: initialize only selected odp_packet_hdr_t members
linux-generic: pktio: add pktio type specific print function
linux-generic: pktio: print maximum input/output queue counts in odp_pktio_print()
linux-gen: netmap: handle modified _odp_packet_cls_enq() return values correctly
linux-gen: packet: increase input flags bit field size to 64 bits
linux-gen: pktio: remove old single queue recv and send functions
linux-gen: pktio: don't allocate new packets in classifier
linux-generic: dpdk: remove unnecessary rte_pktmbuf_reset call
linux-gen: pktio: fix variable overwrite in pktin_recv_buf
Maxim Uvarov (23):
linux-generic: pktio: ipc: remove not needed assignment
validation: timer: fix handle unused tmo
validation: time: remove print and add verbose faults
validation: pktio: fix assert for odp_pktin_queue ret code
linux-generic:pktio mmap: fix nb_rx overflow
validation: pktio: initialize pkt_seq
linux-generic: use default huge page size
linux-generic: drop odp_ prefix for internal cpuinfo
autotools: define test extensions to skip on valgrind test
linux-generic: timer: disable 128 bit timer optimization for clang
Revert "doc: process: add FAQ document"
Revert "doc: images: add new images for the FAQ"
Revert "example: use one copy of pcap file"
Revert "doc: generate a pure application-api-guide"
linux-generic: remove not used queue_handle function
linux-generic: test: fix ring resource leaks
validation: sched: fix out of array reference
linux-generic: timer fix odp_timer_pool_create return code
linux-generic: sched: do not allocate sheduler info in shm area
linux-generic: tm: init pthread attrs
example: timer simple
example: timer: add cunit artifacts to gitignore
update version number from v1.10.0.0 to v1.10.1.0
Mike Holmes (24):
doc: support asciidoctor
linux-generic: correctly set arch as undefined
doc: api guide: remove incorrect include
doc: api guide: use default cfg file name Doxyfile
doc: api guide: look directly in api guide dir for src
doc: images: add helper lib to overview
doc: helper guide: add initial version
helper: add linux documentation section
helper: add strong types documentation section
helper: add chksum documentation section
doc: images: add packet flow overview image
doc: users-guide: depend on the images
doc: users-guide: add packet flow overview
doc: process-guide: convert CONTRIBUTING to asciidoc
example: fix pcap location assumption
example: use one copy of pcap file
doc: images: add new images for the FAQ
doc: process: add FAQ document
doc: images: add new images for the FAQ
doc: process: add FAQ document
doc: generate a pure application-api-guide
doc: doxygen: fix distribution build
doc: process: fix distribution build
doc: process: generate html change log
Nikhil Agarwal (1):
doc: user-guide: Improve crypto section.
Ola Liljedahl (3):
linux-generic: odp_atomic_internal.h: add 128-bit atomics
linux-generic: timer: fix failed static assert
linux-generic: timer: generalize arch-specific code path selection
Oriol Arcas (1):
helper: chksum: fix type casting for C++ include
Petri Savolainen (23):
test: scheduling: simplify code structure
test: scheduling: add scheduler fairness check
linux-generic: scheduler: avoid starvation
linux-generic: schedule: remove static function prototype from header
linux-generic: schedule: introduce scheduler interfaces
linux-generic: pktio: use handle on api functions
linux-generic: schedule: clean interface towards pktio
linux-generic: schedule: move schedule group mask into scheduler
linux-generic: schedule: clean up dependency to config interface
linux-generic: schedule: start decouple from queue internals
linux-generic: schedule: move ordered queue code to a new file
linux-generic: schedule: rename schedule interface header
linux-generic: schedule: move local struct into internal header
linux-generic: schedule: remove queue internal depencies
linux-generic: config: remove duplicate defines
linux-generic: implementation name is odp-linux
linux-gen: ring: volatile head and tail types
test: ring: simplify ring stress test
linux-generic: sched: add init functions to interface
linux-generic: sched: add api interface struct
linux-generic: sched: add sched params to queue init
linux-generic: sched: add skeleton for strict priority
linux-generic: sched: bind default scheduler api calls
Yi He (6):
linux-generic: test: ring: convert to cunit and improve coverage
linux-generic: test: ring: .gitignore ring_main
helper: linux: odp thread cpu affinity APIs
linux-generic: shared memory: fix the name composition in odp_shm_free
linux-generic: pktio: ipc: _ring_tailq_init() at global init
linux-generic: pktio: ring: add _ring_destroy()
Zoltan Kiss (4):
linux-generic: classification: release the packet as soon as an error happens
linux-generic: pktio: classification error handling fixes for loop
linux-generic: pktio: don't return packet after failed enqueue
linux-generic: classification: use proper accessor to set packet length
-----------------------------------------------------------------------
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 b78d235b8fe23b423bf6e7a3c65abbfb7efa4af8 (commit)
from 193bbc8eafa14932f342476a44687237be512148 (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 b78d235b8fe23b423bf6e7a3c65abbfb7efa4af8
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Tue Jun 14 15:22:24 2016 +0300
update version number from v1.10.0.0 to v1.10.1.0
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Reviewed-by: Anders Roxell <anders.roxell(a)linaro.org>
diff --git a/configure.ac b/configure.ac
index a12f984..3851ebd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,7 +12,7 @@ AM_SILENT_RULES([yes])
##########################################################################
# Set correct platform library version
##########################################################################
-ODP_LIBSO_VERSION=110:0:0
+ODP_LIBSO_VERSION=110:0:1
AC_SUBST(ODP_LIBSO_VERSION)
# Checks for programs.
diff --git a/include/odp/api/spec/version.h b/include/odp/api/spec/version.h
index 6220f37..aa3f3ab 100644
--- a/include/odp/api/spec/version.h
+++ b/include/odp/api/spec/version.h
@@ -54,7 +54,7 @@ extern "C" {
* to the API. For an API with common generation and major version, but with
* different minor numbers the two versions are backward compatible.
*/
-#define ODP_VERSION_API_MINOR 0
+#define ODP_VERSION_API_MINOR 1
/**
* ODP API version string
-----------------------------------------------------------------------
Summary of changes:
configure.ac | 2 +-
include/odp/api/spec/version.h | 2 +-
2 files 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, master has been updated
via 193bbc8eafa14932f342476a44687237be512148 (commit)
from 165897bfd094d824e2dd83c968ad9fde28146ef9 (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 193bbc8eafa14932f342476a44687237be512148
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Tue Jun 14 15:24:35 2016 +0300
example: timer: add cunit artifacts to gitignore
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Reviewed-by Mike Holmes <mike.holmes(a)linaro.org>
diff --git a/example/timer/.gitignore b/example/timer/.gitignore
index f53a0df..eaa9a36 100644
--- a/example/timer/.gitignore
+++ b/example/timer/.gitignore
@@ -1,2 +1,4 @@
+*.log
+*.trs
odp_timer_test
odp_timer_simple
-----------------------------------------------------------------------
Summary of changes:
example/timer/.gitignore | 2 ++
1 file changed, 2 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 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
--