From patchwork Sun Mar 5 12:21:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bill Fischofer X-Patchwork-Id: 94896 Delivered-To: patch@linaro.org Received: by 10.140.82.71 with SMTP id g65csp988091qgd; Sun, 5 Mar 2017 04:21:37 -0800 (PST) X-Received: by 10.200.45.137 with SMTP id p9mr11207371qta.201.1488716497894; Sun, 05 Mar 2017 04:21:37 -0800 (PST) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id 54si13379762qtt.223.2017.03.05.04.21.37; Sun, 05 Mar 2017 04:21:37 -0800 (PST) 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 sp=NONE dis=NONE) header.from=linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 03A0C60F36; Sun, 5 Mar 2017 12:21:36 +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=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2 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 DDC1260A4D; Sun, 5 Mar 2017 12:21:31 +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 10B7960A16; Sun, 5 Mar 2017 12:21:30 +0000 (UTC) Received: from mail-wr0-f182.google.com (mail-wr0-f182.google.com [209.85.128.182]) by lists.linaro.org (Postfix) with ESMTPS id 1C5BD60A16 for ; Sun, 5 Mar 2017 12:21:29 +0000 (UTC) Received: by mail-wr0-f182.google.com with SMTP id l37so99743651wrc.1 for ; Sun, 05 Mar 2017 04:21:29 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Ud+sLCmsXoQTSSaaJ3Hv+NaYFd0EX+bS8Q6kclvLXBU=; b=jCoJm/UrOx/qB2cxzQ5y3vTreIK+vXs25uit09MUbdPB+RtEA+m/b8t066s372eZN7 ExmDNeGbWVyCZz851rrb3oWHvf3T+vmLNVOvWvhVWbalhq6uHMBgf5CXoxjv0az/9dmS J3bvgqJ5wOf3tpbidP3vYSjM3YTaz5G2MR+TOnfXXRpAuqPAPDdS4rEFbpiyj6E4FGTn 2wojw2rN5zTrxcZlTilfk/wSRLSi45cWHCEeRG+RfdRSJstGIUy9bskqUxYarAe/uToG /bIc7kxFDdoGOkiylU/DyZ81Cb6oNv+N5WG2zemU37hPzehdAWW6lXxLTy/FNS/CBNLM 6DBA== X-Gm-Message-State: AMke39mCuC4ORMJGW0sHZEbQTu3G+GOF/cf/U53wJGDpW5aC1GScDTX8xksQIJm49xA/6WaQibB1fw== X-Received: by 10.223.150.110 with SMTP id c43mr10118657wra.85.1488716487640; Sun, 05 Mar 2017 04:21:27 -0800 (PST) Received: from Ubuntu15.localdomain ([109.74.56.122]) by smtp.gmail.com with ESMTPSA id 127sm10686971wmt.20.2017.03.05.04.21.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 05 Mar 2017 04:21:26 -0800 (PST) From: Bill Fischofer To: lng-odp@lists.linaro.org Date: Sun, 5 Mar 2017 13:21:14 +0100 Message-Id: <1488716485-15002-1-git-send-email-bill.fischofer@linaro.org> X-Mailer: git-send-email 2.5.0 Subject: [lng-odp] [PATCH 00/11] Optimized Packet References 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: , Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" This series adds support for zero-copy packet references in a staged manner that should be easier to review and test. The first three parts do some restructuring needed to support more general packet manipulation. Part 4 adds the new packet hdr fields needed to support zero-copy references while Parts 5 and 6 add the maintenance of these fields to existing packet manipulation routines, and Part 7 adds reference support to the odp_packet_unshared_len() implementation. Part 8 updates the various segment manipulation routines to support this new packet structure, while Part 9 provides the general support for the packet free routines to decrement reference counts and only free segments when their reference counts decrement to zero. Part 10 adds reference support for the various head/tail extension and trunction routines. Finally, Part 11 enables the creation of zero-copy references that utilize the machinery found in the previous parts. Bill Fischofer (11): linux-generic: pool: restructure pool routines linux-generic: packet: move pull_tail to packet mainline for consistency linux-generic: packet: restructure inline routines to use macros linux-generic: packet: add packet fields needed for references linux-generic: packet: add routines for manipulating reference counts linux-generic: packet: add initializations for new hdr fields linux-generic: packet: unshared_len maintenance linux-generic: packet: segment manipulation with references linux-generic: packet: restructure free routines for references linux-generic: packet: add reference support for head/tail manipulation linux-generic: packet: enable zero-copy reference creation .../include/odp/api/plat/packet_flag_inlines.h | 7 +- .../include/odp/api/plat/packet_inlines.h | 77 +-- .../include/odp/api/plat/packet_inlines_api.h | 16 - .../include/odp/api/plat/packet_types.h | 8 + .../linux-generic/include/odp_packet_internal.h | 90 ++- platform/linux-generic/include/odp_pool_internal.h | 33 +- platform/linux-generic/odp_packet.c | 650 ++++++++++++++++----- platform/linux-generic/odp_pool.c | 47 +- 8 files changed, 652 insertions(+), 276 deletions(-) -- 2.5.0