From patchwork Sat Jun 11 12:44:09 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bill Fischofer X-Patchwork-Id: 69830 Delivered-To: patch@linaro.org Received: by 10.140.106.246 with SMTP id e109csp741723qgf; Sat, 11 Jun 2016 05:44:24 -0700 (PDT) X-Received: by 10.55.100.75 with SMTP id y72mr6662842qkb.106.1465649064811; Sat, 11 Jun 2016 05:44:24 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id 194si9221132qhz.11.2016.06.11.05.44.24; Sat, 11 Jun 2016 05:44:24 -0700 (PDT) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 090B568014; Sat, 11 Jun 2016 12:44:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id 5F56C635C8; Sat, 11 Jun 2016 12:44:17 +0000 (UTC) X-Original-To: lng-odp@lists.linaro.org Delivered-To: lng-odp@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id DFF1C6679D; Sat, 11 Jun 2016 12:44:14 +0000 (UTC) Received: from mail-oi0-f51.google.com (mail-oi0-f51.google.com [209.85.218.51]) by lists.linaro.org (Postfix) with ESMTPS id 95A0D635BF for ; Sat, 11 Jun 2016 12:44:13 +0000 (UTC) Received: by mail-oi0-f51.google.com with SMTP id u201so22450594oie.0 for ; Sat, 11 Jun 2016 05:44:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=1pbFNRyOVy25E1qYitThcL2JZSQAEp1iTN5kZwkdSiA=; b=RiXCVbvXH40wBWOBhTtS4yxCiTHa6xpJl/D/U/TDojRW3akO2HJ/HPXksS6xbxK7+2 +3Ia9aoFmkh2dbjQtfUyXfs2/pNtq88wV8QqY7DGTqJRNPhYbyMO3+x93WVf66/ml4hy fC/n7Sl9zO1T4RrJJXMraDM0YvzEzK3AVbq1s5J/u838Z0o1c1ZzewH2IzGS0MpuPPVP 9VT3q0gCXMQUqd9IcKy0G3OXUzXB2hCR4W0MSx5BEgSpDYiYWzyUWd5g1hMtYodhejvB 5Q1TTtJ04VV8uqP/3Eoul2AWR/YfmrqQskc1Pab/Nb3LWyDq06CRZiUR96cnf4EzZsIK Cxrw== X-Gm-Message-State: ALyK8tIGTpVBep3pzfnyO2EN6y4shqZAML1PamTxATu3fQUR2/zI7hZqQdeYtZ32EfSrNFTRP0E= X-Received: by 10.202.253.194 with SMTP id b185mr3090607oii.6.1465649052826; Sat, 11 Jun 2016 05:44:12 -0700 (PDT) Received: from localhost.localdomain (cpe-66-68-129-43.austin.res.rr.com. [66.68.129.43]) by smtp.gmail.com with ESMTPSA id 92sm7357738otg.29.2016.06.11.05.44.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 11 Jun 2016 05:44:11 -0700 (PDT) From: Bill Fischofer To: lng-odp@lists.linaro.org Date: Sat, 11 Jun 2016 07:44:09 -0500 Message-Id: <1465649049-23782-1-git-send-email-bill.fischofer@linaro.org> X-Mailer: git-send-email 2.7.4 X-Topics: patch Subject: [lng-odp] [PATCH] changelog: update for v1.10.1.0 X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "The OpenDataPlane \(ODP\) List" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" Signed-off-by: Bill Fischofer Reviewed-by: Maxim Uvarov --- CHANGELOG | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) 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