get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 16719,
    "url": "http://patches.dpdk.org/api/patches/16719/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1476886037-4586-2-git-send-email-i.maximets@samsung.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": "<1476886037-4586-2-git-send-email-i.maximets@samsung.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1476886037-4586-2-git-send-email-i.maximets@samsung.com",
    "date": "2016-10-19T14:07:16",
    "name": "[dpdk-dev,RFC,1/2] net/i40e: allow bulk alloc for the max size desc ring",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "e0daf23c258cf103fa23e4acffb8455ab00a6546",
    "submitter": {
        "id": 323,
        "url": "http://patches.dpdk.org/api/people/323/?format=api",
        "name": "Ilya Maximets",
        "email": "i.maximets@samsung.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/1476886037-4586-2-git-send-email-i.maximets@samsung.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/16719/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/16719/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 [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 7A5D27F14;\n\tWed, 19 Oct 2016 16:07:34 +0200 (CEST)",
            "from mailout1.w1.samsung.com (mailout1.w1.samsung.com\n\t[210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 78F6D7F00\n\tfor <dev@dpdk.org>; Wed, 19 Oct 2016 16:07:33 +0200 (CEST)",
            "from eucas1p2.samsung.com (unknown [182.198.249.207])\n\tby mailout1.w1.samsung.com\n\t(Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5\n\t2014)) with ESMTP id <0OFA007RISKJO530@mailout1.w1.samsung.com> for\n\tdev@dpdk.org; Wed, 19 Oct 2016 15:07:31 +0100 (BST)",
            "from eusmges2.samsung.com (unknown [203.254.199.241])\n\tby\teucas1p2.samsung.com (KnoxPortal) with ESMTP\n\tid\t20161019140731eucas1p27b14eef7962e2edf84a0953fb7601bfe~_9An1i23T1980919809eucas1p24;\n\tWed, 19 Oct 2016 14:07:31 +0000 (GMT)",
            "from eucas1p1.samsung.com ( [182.198.249.206])\n\tby\teusmges2.samsung.com (EUCPMTA) with SMTP id 82.0A.02283.32E77085;\n\tWed, 19\tOct 2016 15:07:31 +0100 (BST)",
            "from eusmgms1.samsung.com (unknown [182.198.249.179])\n\tby\teucas1p2.samsung.com (KnoxPortal) with ESMTP\n\tid\t20161019140730eucas1p2b1cf9daba45bdbf915bb69b24a0a850f~_9AnJlylv1983519835eucas1p28;\n\tWed, 19 Oct 2016 14:07:30 +0000 (GMT)",
            "from eusync2.samsung.com ( [203.254.199.212])\n\tby\teusmgms1.samsung.com (EUCPMTA) with SMTP id 07.53.07726.11E77085;\n\tWed, 19\tOct 2016 15:07:13 +0100 (BST)",
            "from imaximets.rnd.samsung.ru ([106.109.129.180])\n\tby\teusync2.samsung.com\n\t(Oracle Communications Messaging Server 7.0.5.31.0 64bit\t(built May 5\n\t2014)) with ESMTPA id <0OFA00CONSK71Q80@eusync2.samsung.com>;\tWed,\n\t19 Oct 2016 15:07:30 +0100 (BST)"
        ],
        "X-AuditID": "cbfec7f1-f79f46d0000008eb-16-58077e23138c",
        "From": "Ilya Maximets <i.maximets@samsung.com>",
        "To": "dev@dpdk.org, Helin Zhang <helin.zhang@intel.com>,\n\tKonstantin Ananyev <konstantin.ananyev@intel.com>,\n\tJingjing Wu <jingjing.wu@intel.com>",
        "Cc": "Dyasly Sergey <s.dyasly@samsung.com>,\n\tHeetae Ahn <heetae82.ahn@samsung.com>,\n\tBruce Richardson <bruce.richardson@intel.com>,\n\tIlya Maximets <i.maximets@samsung.com>",
        "Date": "Wed, 19 Oct 2016 17:07:16 +0300",
        "Message-id": "<1476886037-4586-2-git-send-email-i.maximets@samsung.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-reply-to": "<1476886037-4586-1-git-send-email-i.maximets@samsung.com>",
        "X-Brightmail-Tracker": [
            "H4sIAAAAAAAAA+NgFjrMIsWRmVeSWpSXmKPExsWy7djPc7rKdewRBj/auC1urLK3ePdpO5PF\n\ttM+32S2mXNvOaHGl/Se7xcwFnxkt3v9ZxGIxebaUA4fHrwVLWT0W73nJ5NG3ZRVjAHMUl01K\n\tak5mWWqRvl0CV8b6zrVsBWeFKn61NLE3MC7g72Lk5JAQMJE4caCfDcIWk7hwbz2YLSSwlFHi\n\t+OFiCPszo0T7N0GY+revbwDVcAHFlzFKdEyeAOU0M0l8ffGfFaSKTUBH4tTqI4wgCRGBfkaJ\n\t2QsOM4M4zAKrGCV2HFnJDlIlLBAg8fTnLLB9LAKqEpOaF7GA2LwCrhLHbm9ihdgnJ3HzXCdQ\n\tMwcHp4CbxKp7mSBzJARes0nM7n/HChKXEJCV2HSAGaLcReLdjdtQrcISr45vYYewZSQ6Ow4y\n\tQdjVEhO3trFDzGlhlFg48QdUg73EqZtXwYqYBfgkJm2bzgwxn1eio00IosRDon3pDUYI21Fi\n\tz5YNLBDfz2SUeNh8lXUCo8wCRoZVjCKppcW56anFRnrFibnFpXnpesn5uZsYgVF7+t/xjzsY\n\t35+wOsQowMGoxMPLUcUeIcSaWFZcmXuIUYKDWUmEl7MCKMSbklhZlVqUH19UmpNafIhRmoNF\n\tSZx3z4Ir4UIC6YklqdmpqQWpRTBZJg5OqQZGgfX7bgn5CXQ1Zj/s4WZ+e+I8w27edW8bm1/9\n\tylgyvSRbscWfReKopdCtNNtOpsWiwZzd045cfJC4vMNGTvGDPeeiC39K5iR4aaR/9daZnJT4\n\tfZaRmoSE5fanhy719e6Zk3joyFG95La7U51SuTQvNApveiLx6cztzH1pQdNtt+zMu9DXUGen\n\txFKckWioxVxUnAgAMWcNWNYCAAA=",
            "H4sIAAAAAAAAA+NgFnrCLMWRmVeSWpSXmKPExsVy+t/xK7qCdewRBveXWFncWGVv8e7TdiaL\n\taZ9vs1tMubad0eJK+092i5kLPjNavP+ziMVi8mwpBw6PXwuWsnos3vOSyaNvyyrGAOYoN5uM\n\t1MSU1CKF1Lzk/JTMvHRbpdAQN10LJYW8xNxUW6UIXd+QICWFssScUiDPyAANODgHuAcr6dsl\n\tuGWs71zLVnBWqOJXSxN7A+MC/i5GTg4JAROJt69vsEHYYhIX7q0Hsrk4hASWMEo8//GYBcJp\n\tZZLY1n+bFaSKTUBH4tTqI4wgCRGBiYwS028sZwdxmAXWMEocafoMViUs4CexdeVvFhCbRUBV\n\tYlLzIjCbV8BV4tjtTawQ++Qkbp7rZO5i5ODgFHCTWHUvEyQsBFTS0b6OdQIj7wJGhlWMIqml\n\txbnpucWGesWJucWleel6yfm5mxiBIbzt2M/NOxgvbQw+xCjAwajEw8tRxR4hxJpYVlyZe4hR\n\tgoNZSYSXswIoxJuSWFmVWpQfX1Sak1p8iNEU6KaJzFKiyfnA+MoriTc0MTS3NDQytrAwNzJS\n\tEuct+XAlXEggPbEkNTs1tSC1CKaPiYNTqoGRf0rAqu6u4L/ySd49IufOaC203i4jrqd3Im3x\n\tNqPru6debn2v0Sq794JtsE6FOl/jG6O6aS97p53r3288QajC4O7ed6mK5TXzJpy4HOJ13nV/\n\tp+DnP2sXNUzJK1LzEH68vUuHk9e/UiwoaVZ1656gug6ZsA8xFyvPHi9jNxWoZt1mId5bw6bE\n\tUpyRaKjFXFScCABF5sI7dwIAAA=="
        ],
        "X-MTR": "20000000000000000@CPGS",
        "X-CMS-MailID": "20161019140730eucas1p2b1cf9daba45bdbf915bb69b24a0a850f",
        "X-Msg-Generator": "CA",
        "X-Sender-IP": "182.198.249.179",
        "X-Local-Sender": "=?UTF-8?B?SWx5YSBNYXhpbWV0cxtTUlItVmlydHVhbGl6YXRpb24gTGFi?=\n\t=?UTF-8?B?G+yCvOyEseyghOyekBtFbmdpbmVlcg==?=",
        "X-Global-Sender": "=?UTF-8?B?SWx5YSBNYXhpbWV0cxtTUlItVmlydHVhbGl6YXRpb24gTGFi?=\n\t=?UTF-8?B?G1NhbXN1bmcgRWxlY3Ryb25pY3MbRW5naW5lZXI=?=",
        "X-Sender-Code": "=?UTF-8?B?QzEwG0NJU0hRG0MxMEdEMDFHRDAxMDE1NA==?=",
        "CMS-TYPE": "201P",
        "X-HopCount": "7",
        "X-CMS-RootMailID": "20161019140730eucas1p2b1cf9daba45bdbf915bb69b24a0a850f",
        "X-RootMTR": "20161019140730eucas1p2b1cf9daba45bdbf915bb69b24a0a850f",
        "References": "<1476886037-4586-1-git-send-email-i.maximets@samsung.com>\n\t<CGME20161019140730eucas1p2b1cf9daba45bdbf915bb69b24a0a850f@eucas1p2.samsung.com>",
        "Subject": "[dpdk-dev] [PATCH RFC 1/2] net/i40e: allow bulk alloc for the max\n\tsize desc ring",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "The only reason why bulk alloc disabled for the rings with\nmore than (I40E_MAX_RING_DESC - RTE_PMD_I40E_RX_MAX_BURST)\ndescriptors is the possible out-of-bound access to the dma\nmemory. But it's the artificial limit and can be easily\navoided by allocating of RTE_PMD_I40E_RX_MAX_BURST more\ndescriptors in memory. This will not interfere the HW and,\nas soon as all rings' memory zeroized, Rx functions will\nwork correctly.\n\nThis change allows to use vectorized Rx functions with\n4096 descriptors in Rx ring which is important to achieve\nzero packet drop rate in high-load installations.\n\nSigned-off-by: Ilya Maximets <i.maximets@samsung.com>\n---\n drivers/net/i40e/i40e_rxtx.c | 24 +++++++++++++-----------\n 1 file changed, 13 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c\nindex 7ae7d9f..1f76691 100644\n--- a/drivers/net/i40e/i40e_rxtx.c\n+++ b/drivers/net/i40e/i40e_rxtx.c\n@@ -409,15 +409,6 @@ check_rx_burst_bulk_alloc_preconditions(__rte_unused struct i40e_rx_queue *rxq)\n \t\t\t     \"rxq->rx_free_thresh=%d\",\n \t\t\t     rxq->nb_rx_desc, rxq->rx_free_thresh);\n \t\tret = -EINVAL;\n-\t} else if (!(rxq->nb_rx_desc < (I40E_MAX_RING_DESC -\n-\t\t\t\tRTE_PMD_I40E_RX_MAX_BURST))) {\n-\t\tPMD_INIT_LOG(DEBUG, \"Rx Burst Bulk Alloc Preconditions: \"\n-\t\t\t     \"rxq->nb_rx_desc=%d, \"\n-\t\t\t     \"I40E_MAX_RING_DESC=%d, \"\n-\t\t\t     \"RTE_PMD_I40E_RX_MAX_BURST=%d\",\n-\t\t\t     rxq->nb_rx_desc, I40E_MAX_RING_DESC,\n-\t\t\t     RTE_PMD_I40E_RX_MAX_BURST);\n-\t\tret = -EINVAL;\n \t}\n #else\n \tret = -EINVAL;\n@@ -1698,8 +1689,19 @@ i40e_dev_rx_queue_setup(struct rte_eth_dev *dev,\n \trxq->rx_deferred_start = rx_conf->rx_deferred_start;\n \n \t/* Allocate the maximun number of RX ring hardware descriptor. */\n-\tring_size = sizeof(union i40e_rx_desc) * I40E_MAX_RING_DESC;\n-\tring_size = RTE_ALIGN(ring_size, I40E_DMA_MEM_ALIGN);\n+\tlen = I40E_MAX_RING_DESC;\n+\n+#ifdef RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC\n+\t/**\n+\t * Allocating a little more memory because vectorized/bulk_alloc Rx\n+\t * functions doesn't check boundaries each time.\n+\t */\n+\tlen += RTE_PMD_I40E_RX_MAX_BURST;\n+#endif\n+\n+\tring_size = RTE_ALIGN(len * sizeof(union i40e_rx_desc),\n+\t\t\t      I40E_DMA_MEM_ALIGN);\n+\n \trz = rte_eth_dma_zone_reserve(dev, \"rx_ring\", queue_idx,\n \t\t\t      ring_size, I40E_RING_BASE_ALIGN, socket_id);\n \tif (!rz) {\n",
    "prefixes": [
        "dpdk-dev",
        "RFC",
        "1/2"
    ]
}