get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/41863/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 41863,
    "url": "http://patches.dpdk.org/api/patches/41863/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20180628201549.3507-4-ajit.khaparde@broadcom.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20180628201549.3507-4-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180628201549.3507-4-ajit.khaparde@broadcom.com",
    "date": "2018-06-28T20:15:29",
    "name": "[v2,03/23] net/bnxt: optimize receive processing code",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "30d0ea81bf3e280f5049456633cc211cb7f82598",
    "submitter": {
        "id": 501,
        "url": "http://patches.dpdk.org/api/people/501/?format=api",
        "name": "Ajit Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20180628201549.3507-4-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 300,
            "url": "http://patches.dpdk.org/api/series/300/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=300",
            "date": "2018-06-28T20:15:29",
            "name": "bnxt patchset",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/300/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/41863/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/41863/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 3221C1B50C;\n\tThu, 28 Jun 2018 22:16:01 +0200 (CEST)",
            "from rnd-relay.smtp.broadcom.com (rnd-relay.smtp.broadcom.com\n\t[192.19.229.170]) by dpdk.org (Postfix) with ESMTP id 7B0651B4FF\n\tfor <dev@dpdk.org>; Thu, 28 Jun 2018 22:15:57 +0200 (CEST)",
            "from nis-sj1-27.broadcom.com (nis-sj1-27.lvn.broadcom.net\n\t[10.75.144.136])\n\tby rnd-relay.smtp.broadcom.com (Postfix) with ESMTP id 8A99C30C022;\n\tThu, 28 Jun 2018 13:15:53 -0700 (PDT)",
            "from C02VPB22HTD6.dhcp.broadcom.net (c02vpb22htd6.dhcp.broadcom.net\n\t[10.136.50.120])\n\tby nis-sj1-27.broadcom.com (Postfix) with ESMTP id 12371AC0745;\n\tThu, 28 Jun 2018 13:15:53 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.10.3 rnd-relay.smtp.broadcom.com 8A99C30C022",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com;\n\ts=dkimrelay; t=1530216953;\n\tbh=aSygoc298IvDmj3XYXNBrjvr2ePxoAAHS8JaYMg5+UI=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=Wwmix7F+a9VS03OpNuk5+hANmJuieNFtdzUBYnzXbN3jKcc9tr5JGQ4IQ6fFds9Uu\n\tAYvnRQ99u/sTW8EP/HbxIeqvMbFD2uHja7qJqCJm4gRTpRPYXcPFw3RzaRB5hyd6nd\n\tl+YGKQQNGwOuqrSxcwfcqqy/wzbbl+Lgtc+LDqFI=",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "ferruh.yigit@intel.com",
        "Date": "Thu, 28 Jun 2018 13:15:29 -0700",
        "Message-Id": "<20180628201549.3507-4-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.15.2 (Apple Git-101.1)",
        "In-Reply-To": "<20180628201549.3507-1-ajit.khaparde@broadcom.com>",
        "References": "<f02289d7-4111-ab00-9ce9-00dd5c8b3c18@intel.com>\n\t<20180628201549.3507-1-ajit.khaparde@broadcom.com>",
        "Subject": "[dpdk-dev] [PATCH v2 03/23] net/bnxt: optimize receive processing\n\tcode",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "1) Use nb_rx_pkts instead of checking producer indices of Rx and\naggregator rings to decide if any Rx completions were processed.\n2) Post Rx buffers early in Rx processing instead of waiting for\nthe budgeted burst quota.\n3) Ring Rx CQ DB after Rx buffers are posted.\n\nSigned-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n--\nv1->v2: fix commit log\n---\n drivers/net/bnxt/bnxt_rxr.c | 12 ++++++++----\n drivers/net/bnxt/bnxt_rxr.h |  2 ++\n 2 files changed, 10 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c\nindex 9d8842926..b6b72c553 100644\n--- a/drivers/net/bnxt/bnxt_rxr.c\n+++ b/drivers/net/bnxt/bnxt_rxr.c\n@@ -540,8 +540,8 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\n \tint rc = 0;\n \tbool evt = false;\n \n-\t/* If Rx Q was stopped return */\n-\tif (rxq->rx_deferred_start)\n+\t/* If Rx Q was stopped return. RxQ0 cannot be stopped. */\n+\tif (rxq->rx_deferred_start && rxq->queue_id)\n \t\treturn 0;\n \n \t/* Handle RX burst request */\n@@ -572,10 +572,13 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\n \t\traw_cons = NEXT_RAW_CMP(raw_cons);\n \t\tif (nb_rx_pkts == nb_pkts || evt)\n \t\t\tbreak;\n+\t\t/* Post some Rx buf early in case of larger burst processing */\n+\t\tif (nb_rx_pkts == BNXT_RX_POST_THRESH)\n+\t\t\tB_RX_DB(rxr->rx_doorbell, rxr->rx_prod);\n \t}\n \n \tcpr->cp_raw_cons = raw_cons;\n-\tif ((prod == rxr->rx_prod && ag_prod == rxr->ag_prod) && !evt) {\n+\tif (!nb_rx_pkts && !evt) {\n \t\t/*\n \t\t * For PMD, there is no need to keep on pushing to REARM\n \t\t * the doorbell if there are no new completions\n@@ -583,7 +586,6 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\n \t\treturn nb_rx_pkts;\n \t}\n \n-\tB_CP_DIS_DB(cpr, cpr->cp_raw_cons);\n \tif (prod != rxr->rx_prod)\n \t\tB_RX_DB(rxr->rx_doorbell, rxr->rx_prod);\n \n@@ -591,6 +593,8 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\n \tif (ag_prod != rxr->ag_prod)\n \t\tB_RX_DB(rxr->ag_doorbell, rxr->ag_prod);\n \n+\tB_CP_DIS_DB(cpr, cpr->cp_raw_cons);\n+\n \t/* Attempt to alloc Rx buf in case of a previous allocation failure. */\n \tif (rc == -ENOMEM) {\n \t\tint i;\ndiff --git a/drivers/net/bnxt/bnxt_rxr.h b/drivers/net/bnxt/bnxt_rxr.h\nindex 5b28f0321..3815a2199 100644\n--- a/drivers/net/bnxt/bnxt_rxr.h\n+++ b/drivers/net/bnxt/bnxt_rxr.h\n@@ -54,6 +54,8 @@\n #define RX_CMP_IP_CS_UNKNOWN(rxcmp1)\t\t\t\t\t\\\n \t\t!((rxcmp1)->flags2 & RX_CMP_IP_CS_BITS)\n \n+#define BNXT_RX_POST_THRESH\t32\n+\n enum pkt_hash_types {\n \tPKT_HASH_TYPE_NONE,\t/* Undefined type */\n \tPKT_HASH_TYPE_L2,\t/* Input: src_MAC, dest_MAC */\n",
    "prefixes": [
        "v2",
        "03/23"
    ]
}