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 8e9c4fe4ec0611ddde0b027d7c45a1b92d182a0e (commit)
from 5d4f6cbd12a7f079917bc5ad18b710b3e34485b1 (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 8e9c4fe4ec0611ddde0b027d7c45a1b92d182a0e
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Tue Aug 9 18:56:42 2016 -0500
doc: release-guide: elaborate release naming scheme
Add additional detail and examples to the description of the release
naming scheme used by ODP, detailing the expected impact to ODP
applications and/or other ODP implementations for each change.
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Petri Savolainen <petri.savolainen(a)nokia.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/doc/process-guide/release-guide.adoc b/doc/process-guide/release-guide.adoc
index 8816c03..788eb6b 100644
--- a/doc/process-guide/release-guide.adoc
+++ b/doc/process-guide/release-guide.adoc
@@ -116,28 +116,82 @@ atomically as possible
* the maintainer tags the master branch
== Releases ==
-All releases are from master.
-
-They are tagged in the repository using the format
-v<Generation>.<Major>.<Minor>.<Impl>
-There are three release types with differing frequencies and impact to the
-applications.
+All releases are from a tag in the master branch of the ODP git
+repository. Recall that ODP consists of three separate components:
+
+* An API Specification
+* Multiple independently owned and maintained _implementations_ of the ODP API
+* A Validation Test Suite that tests implementation conformance to the ODP API
+
+Included with the main ODP git repository is the `odp-linux` reference
+implementation of the ODP API, and it also has an associated service stream
+that is independent of all other ODP implementations. This means that the ODP
+release naming conventions address the needs of all three of these components,
+which is accomplished via a multi-level structure using the format:
+
+*v<Generation>.<Major>.<Minor>.<Point>*
+
+This is used as the tag from which all ODP releases are published and is also
+used as the release identifier in the CHANGELOG for each release. The first
+three of these digits represent the ODP API level, and these reflect three
+types of API changes with differing frequencies and impact to applications and
+other ODP implementations. A fourth digit is used to reflect changes to other
+items included within the ODP git repository. In addition, each individual ODP
+implementation will have its own service stream identifier that is defined
+using whatever conventions meet its needs.
=== Generation releases ===
A generation release indicates a major completion of work, and a possible
-change in direction for the API. Same as for Major release plus they are
-defined by the Steering committee.
+change in direction for the API. Generation release changes are approved by the
+LNG Steering Committee, which is the governing body for ODP.
=== Major releases ===
-Major (API) releases are scheduled to be about once a
-quarter, but when there is significant progress made they may be more frequent.
+Major (API) releases are used when new APIs or capabilities are introduced or
+changes are made to existing APIs that are not backwards-compatible. Major
+release changes thus potentially affect ODP applications as well as
+implementations.
+
+=== Minor releases ===
+Minor (API) releases are used when new APIs or capabilities are introduced or
+changes are made to existing APIs in a backwards-compatible manner. Examples
+of these might be wording changes in API documentation, or introducing new
+APIs that are orthogonal to the existing set of APIs and hence have no impact
+on existing applications that do not make use of them. Minor release changes
+should therefore have no impact on existing ODP applications but will have
+impact for ODP implementations that need to support these API additions and
+changes.
+
+NOTE: The first three digits of the release name are the API version returned
+by the `odp_version_api_str()` API.
=== Point releases ===
-General bug fixes and other non API altering changes are gathered and a release
-made every month if sufficient change has accumulated.
-
-=== Implementation (Impl) ===
-Platform specific free form text relating to the version.
+General bug fixes and other non API altering changes are gathered and a
+release made every month if sufficient change has accumulated. Examples of a
+point release would be additional documentation, extensions or corrections to
+the validation test suite, additions or corrections to helpers, example
+programs, etc. No API changes are permitted in a point release, so ODP
+applications are not impacted. Other ODP implementations _may_ be impacted
+if, for example, a bug is fixed in a validation test that results in a latent
+bug in other implementations being exposed.
+
+=== Implementation Service Strings ===
+Beyond the four-digit release name, platform specific free form text is used
+to capture the service level of each ODP implementation. This field is for the
+sole use of implementations to represent their individual service streams. Its
+format may vary between implementations. For example, the `odp-linux`
+reference implementation uses a simple incrementing digit (0, 1, 2,
+etc.). Other implementations may use `Build xxxx` or something similar.
+Changes in this designator have no impact on and may be ignored by other ODP
+implementations. The only changes that ODP applications should see is
+corrected functional or performance behavior when running on that specific ODP
+implementation.
+
+NOTE: The full four-digit release name plus implementation service string as
+well as other platform-specific identification information is returned by the
+`odp_version_impl_str()` API. This may be useful, for example, in logging an
+error to include in a bug report to the vendor that owns and supports this ODP
+implementation. The release-independent name of a given implementation (for
+identification purposed) is supplied by the `odp_version_impl_name()` API.
== Deprecating part of the API
Deleting or changing the published API follows the normal <<anchor-1,process>>, with the following additional rules:
-----------------------------------------------------------------------
Summary of changes:
doc/process-guide/release-guide.adoc | 84 +++++++++++++++++++++++++++++-------
1 file changed, 69 insertions(+), 15 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 26b90314427f088c7f7e2accd41ec7db5d396265 (commit)
from e072ea084a27df729d1b94c0bec2d45fb1e4d26f (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 26b90314427f088c7f7e2accd41ec7db5d396265
Author: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Date: Mon Aug 8 11:40:29 2016 +0300
linux-gen: do not init scheduler context on termination
We should not try to redifine current odp thread id on
termination as well as set poll queues to invalid values,
which has to be cleared later in schedule_term_global().
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
Reviewed-and-tested-by: Bill Fischofer <bill.fischofer(a)linaro.org>
diff --git a/platform/linux-generic/odp_schedule.c b/platform/linux-generic/odp_schedule.c
index 8765f48..8405423 100644
--- a/platform/linux-generic/odp_schedule.c
+++ b/platform/linux-generic/odp_schedule.c
@@ -328,8 +328,6 @@ static int schedule_term_local(void)
}
schedule_release_context();
-
- sched_local_init();
return 0;
}
-----------------------------------------------------------------------
Summary of changes:
platform/linux-generic/odp_schedule.c | 2 --
1 file changed, 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 32e95a4ed19e5cd567d02125c4b74bb6e41ee197 (commit)
from b9995659aabf9a20cae2ae6905b84c94b733636c (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 32e95a4ed19e5cd567d02125c4b74bb6e41ee197
Author: Christophe Milard <christophe.milard(a)linaro.org>
Date: Thu Aug 4 07:52:32 2016 +0000
linux-gen: drv: byteorder: fixed macro typo
Signed-off-by: Christophe Milard <christophe.milard(a)linaro.org>
Reviewed-by: Mike Holmes <mike.holmes(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
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 bf461e5..cb7aec2 100644
--- a/platform/linux-generic/include/odp/drv/plat/byteorder_types.h
+++ b/platform/linux-generic/include/odp/drv/plat/byteorder_types.h
@@ -48,7 +48,7 @@ extern "C" {
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
#define ODPDRV_LITTLE_ENDIAN 1
#define ODPDRV_BIG_ENDIAN 0
- #define ODPDRV_BYTE_ORDER ODP_LITTLE_ENDIAN
+ #define ODPDRV_BYTE_ORDER ODPDRV_LITTLE_ENDIAN
#define ODPDRV_LITTLE_ENDIAN_BITFIELD
#else
#define ODPDRV_LITTLE_ENDIAN 0
-----------------------------------------------------------------------
Summary of changes:
platform/linux-generic/include/odp/drv/plat/byteorder_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 branch, master has been updated
via e072ea084a27df729d1b94c0bec2d45fb1e4d26f (commit)
from 3eb700768b6369e674e5d5a9758eb39f8fd34c3d (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 e072ea084a27df729d1b94c0bec2d45fb1e4d26f
Author: Mike Holmes <mike.holmes(a)linaro.org>
Date: Fri Aug 5 11:37:11 2016 -0400
doc: implimenters: fix spelling
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/doc/implementers-guide/implementers-guide.adoc b/doc/implementers-guide/implementers-guide.adoc
index 5c0e864..0e2edc0 100644
--- a/doc/implementers-guide/implementers-guide.adoc
+++ b/doc/implementers-guide/implementers-guide.adoc
@@ -29,7 +29,7 @@ mapping of the ODP APIs to a specific target platform. This is the focus of
this document.
- A Validation Test Suite. This is an independent set of routines that when
-run against an ODP implmenetation verifies that it correctly implements all of
+run against an ODP implementation verifies that it correctly implements all of
the defined ODP APIs at a functional level. The test suite is used by
implementers to self-certify their ODP implementation as well as by
third-parties to verify an implementation's claim to be ODP API compliant.
@@ -39,18 +39,18 @@ fully defined in the _ODP User's Guide_
=== Organization of this Document
This document is designed to serve two purposes. Its larger purpose is to
-provide guidenace and practical advice for those wishing to implement ODP on
+provide guidance and practical advice for those wishing to implement ODP on
their platform. To help with this, as well as to provide deeper insight into
how to think about ODP from an implementer's standpoint, this document also
discusses in some depth the design and organization of a specific ODP
implementation: the odp-linux reference implementation distributed as part of
the main ODP git repository. By grounding theory in practice and discussing
a particular example implementation, it is hoped this will provide insight into
-the tradeoffs implementers should consider in approaching how to best implement
+the trade-offs implementers should consider in approaching how to best implement
ODP on their platforms.
The section <<include_structure>> discusses the layout of the ODP include tree
-from an implementer's perspective. Although implementers have wide lattitude
+from an implementer's perspective. Although implementers have wide latitude
in how they organize their ODP implementations, it is recommended that this
layout be be observed by other implementations. Doing so both simplifies code
sharing with the odp-linux reference implementation and also ensure ease of
@@ -637,7 +637,7 @@ It is recommended that however a platform wishes to represent ODP abstract
types, that it do so in a strongly typed manner. Using strong types means
that an application that tries to pass a variable of type `odp_packet_t` to
an API that expects an argument of type `odp_queue_t`, for example, will result
-in a compililation error rather than some difficult to debug runtime failure.
+in a compilation error rather than some difficult to debug runtime failure.
The *odp-linux* reference implementation defines all ODP abstract types strongly
using a set of utility macros contained in
@@ -653,13 +653,13 @@ implementations choose typdefs and representations that permit the
implementation to realize ODP APIs efficiently. This typically means that the
handles defined by typedefs are either a pointer to an implementation-defined
struct or else an index into an implementation-defined resource table. The two
-LNG-provided ODP reference implemnetations illustrate both of these approaches.
+LNG-provided ODP reference implementations illustrate both of these approaches.
The *odp-dpdk* implementation follows the former approach (pointers) as this
offers the highest performance. For example, in *odp-dpdk* an
`odp_packet_t` is a pointer to an `rte_mbuf` struct, which is how DPDK
represents packets. The *odp-linux* implementation, by contrast, uses indices
as this permits more robust validation support while still being highly
-efficient. In general, software-based implemnetations will typically favor
+efficient. In general, software-based implementations will typically favor
pointers while hardware-based implementations will typically favor indices.
=== ABI Considerations
@@ -670,13 +670,13 @@ portability guarantees provided by APIs to permit binary portability as well.
It is important to note that ODP neither defines nor prohibits the specification
of ABIs. This is because ODP itself is an _Abstract API Specification_. As
-noted earlier, abstract APIs cannot be compiled in the absense of completion
+noted earlier, abstract APIs cannot be compiled in the absence of completion
by an implementation that instantiates them, so the question of ABIs is
really a question of representation agreement between multiple ODP
implementations. If two or more ODP implementations agree on things like
typedefs, endianness, alignments, etc., then they are defining an ABI which
-would permit ODP applications compiled to that common set of instantations
-to interoperate at a binary as well as source level.
+would permit ODP applications compiled to that common set of instantiations
+to inter operate at a binary as well as source level.
==== Traditional ABI
ABIs can be defined at two levels. The simplest ABI is within a specific
@@ -692,7 +692,7 @@ of typedefs, etc. so that the resulting output from compilation is directly
executable on any platform that subscribes to that ABI. Adding a new platform
in this approach simply requires that platform to accept the existing ABI
specification. Note that since the output of compilation in a traditional ABI
-is a ISA-specific binary that applications cannot offer binary compability
+is a ISA-specific binary that applications cannot offer binary compatibility
across platforms that use different ISAs.
==== Bitcode based ABI
@@ -716,9 +716,9 @@ library system selects the appropriate managed binary for that target platform
and loads and runs it.
Adding a new platform in this approach involves adding the definition for that
-platform to the libary system so that a managed binary for it can be created
+platform to the library system so that a managed binary for it can be created
and deployed as needed. This occurs without developer involvement since the
-bitcode format that is input to this backend process is indepentent of the
+bitcode format that is input to this backend process is independent of the
specific target platform. Note also that since bitcode is not tied to any ISA,
applications using bitcode ABIs are binary portable between platforms that use
different ISAs. This occurs without loss of efficiency because the process of
-----------------------------------------------------------------------
Summary of changes:
doc/implementers-guide/implementers-guide.adoc | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 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 3eb700768b6369e674e5d5a9758eb39f8fd34c3d (commit)
from c05c1c608c6dbc367ebb9a819fa4cbbbca882db3 (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 3eb700768b6369e674e5d5a9758eb39f8fd34c3d
Author: Bill Fischofer <bill.fischofer(a)linaro.org>
Date: Wed Aug 3 21:06:05 2016 +0000
validation: tm: use strncmp() to avoid potential string overrun
Resolve Bug https://bugs.linaro.org/show_bug.cgi?id=2426 by switching from
strcmp() to strncmp()
Signed-off-by: Bill Fischofer <bill.fischofer(a)linaro.org>
Reviewed-by: Mike Holmes <mike.holmes(a)linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov(a)linaro.org>
diff --git a/test/common_plat/validation/api/traffic_mngr/traffic_mngr.c b/test/common_plat/validation/api/traffic_mngr/traffic_mngr.c
index b857800..c7bde40 100644
--- a/test/common_plat/validation/api/traffic_mngr/traffic_mngr.c
+++ b/test/common_plat/validation/api/traffic_mngr/traffic_mngr.c
@@ -1507,7 +1507,7 @@ static tm_node_desc_t *find_node_desc(uint8_t tm_system_idx,
name_ptr++;
while (node_desc != NULL) {
- if (strcmp(node_desc->node_name, node_name) == 0)
+ if (strncmp(node_desc->node_name, node_name, TM_NAME_LEN) == 0)
return node_desc;
if (name_ptr == NULL)
-----------------------------------------------------------------------
Summary of changes:
test/common_plat/validation/api/traffic_mngr/traffic_mngr.c | 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 branch, master has been updated
via c05c1c608c6dbc367ebb9a819fa4cbbbca882db3 (commit)
from ca927a72b1f9ea2a583e8a628790d62eb93d430f (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 c05c1c608c6dbc367ebb9a819fa4cbbbca882db3
Author: Christophe Milard <christophe.milard(a)linaro.org>
Date: Fri Jul 22 14:51:53 2016 +0200
test: update in readme file
mostly updating paths following new test structure
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/test/README b/test/README
index 857c366..f4886d3 100644
--- a/test/README
+++ b/test/README
@@ -3,14 +3,15 @@ All rights reserved.
SPDX-License-Identifier: BSD-3-Clause
-Files in test/validation directory are intended to be terse checks that help
-ensure that the ODP API Implementations all perform identically and to
-specification. Tests inside the validation directory shall be platform
+Files in test/common_plat/validation directory are intended to be terse
+checks that help ensure that the ODP implementations all perform identically
+and to specification. Tests inside the validation directory shall be platform
independent.
To run valgrind on the executables do:
$ ./bootstrap
$ ./configure --enable-test-vald --enable-valgrind
-$ cd test/validation
+$ make
+$ cd test/<platform_name>
$ make check-valgrind
-----------------------------------------------------------------------
Summary of changes:
test/README | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
hooks/post-receive
--