get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 80292,
    "url": "https://patches.dpdk.org/api/patches/80292/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20201010160508.19709-17-l.wojciechow@partner.samsung.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20201010160508.19709-17-l.wojciechow@partner.samsung.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201010160508.19709-17-l.wojciechow@partner.samsung.com",
    "date": "2020-10-10T16:05:07",
    "name": "[v7,16/16] test/distributor: ensure all packets are delivered",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "5eaf90f537dd4a6bad3e65e874c2eaff209a1bf9",
    "submitter": {
        "id": 1628,
        "url": "https://patches.dpdk.org/api/people/1628/?format=api",
        "name": "Lukasz Wojciechowski",
        "email": "l.wojciechow@partner.samsung.com"
    },
    "delegate": {
        "id": 24651,
        "url": "https://patches.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20201010160508.19709-17-l.wojciechow@partner.samsung.com/mbox/",
    "series": [
        {
            "id": 12860,
            "url": "https://patches.dpdk.org/api/series/12860/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=12860",
            "date": "2020-10-10T16:04:51",
            "name": "fix distributor synchronization issues",
            "version": 7,
            "mbox": "https://patches.dpdk.org/series/12860/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/80292/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/80292/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 0265BA04B1;\n\tSat, 10 Oct 2020 18:12:22 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 304EE1D8FD;\n\tSat, 10 Oct 2020 18:06:24 +0200 (CEST)",
            "from mailout1.w1.samsung.com (mailout1.w1.samsung.com\n [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id DBCEB1D905\n for <dev@dpdk.org>; Sat, 10 Oct 2020 18:06:22 +0200 (CEST)",
            "from eucas1p2.samsung.com (unknown [182.198.249.207])\n by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id\n 20201010160611euoutp013f30be796059d454617450623ebb633a~8rSvz2qAG0381003810euoutp01j\n for <dev@dpdk.org>; Sat, 10 Oct 2020 16:06:11 +0000 (GMT)",
            "from eusmges2new.samsung.com (unknown [203.254.199.244]) by\n eucas1p2.samsung.com (KnoxPortal) with ESMTP id\n 20201010160606eucas1p2518fa1c12ebf0b262f7362a4425ffd94~8rSqwCeQF0179501795eucas1p2w;\n Sat, 10 Oct 2020 16:06:06 +0000 (GMT)",
            "from eucas1p2.samsung.com ( [182.198.249.207]) by\n eusmges2new.samsung.com (EUCPMTA) with SMTP id EA.58.05997.EEBD18F5; Sat, 10\n Oct 2020 17:06:06 +0100 (BST)",
            "from eusmtrp1.samsung.com (unknown [182.198.249.138]) by\n eucas1p1.samsung.com (KnoxPortal) with ESMTPA id\n 20201010160605eucas1p1ff6b4cb5065e1355cb8eeafd4696abaf~8rSqDeZk92439624396eucas1p12;\n Sat, 10 Oct 2020 16:06:05 +0000 (GMT)",
            "from eusmgms1.samsung.com (unknown [182.198.249.179]) by\n eusmtrp1.samsung.com (KnoxPortal) with ESMTP id\n 20201010160605eusmtrp1818a0a39442cc34ab2b5e89daa6c49d8~8rSqC8rOh2920229202eusmtrp10;\n Sat, 10 Oct 2020 16:06:05 +0000 (GMT)",
            "from eusmtip1.samsung.com ( [203.254.199.221]) by\n eusmgms1.samsung.com (EUCPMTA) with SMTP id E7.5A.06314.DEBD18F5; Sat, 10\n Oct 2020 17:06:05 +0100 (BST)",
            "from Padamandas.fritz.box (unknown [106.210.88.70]) by\n eusmtip1.samsung.com (KnoxPortal) with ESMTPA id\n 20201010160554eusmtip17edb86a0f5afdbb94e6fc8f9b481f36c~8rSfW8EUO2972929729eusmtip1E;\n Sat, 10 Oct 2020 16:05:53 +0000 (GMT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com\n 20201010160611euoutp013f30be796059d454617450623ebb633a~8rSvz2qAG0381003810euoutp01j",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;\n s=mail20170921; t=1602345971;\n bh=QLPUD9KOQYFHJXu7SCPKNy9u0rZMb6AcEwQp21bwlhc=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=UYiBXNIid3zX86zkPmGGvzpXplnlziIMVX930yGeeQmRsXm2TeiFzP4S6Dts+fOn6\n neuhc9jChsRSrhIMPnpInLtaoRvKx5pScTtXTxY4927vKC3qYWD7YOmWIPGmD2cZvU\n oPCVKf+vOTsXdM7NoWVRg+G+twS/R45mC4nrfbJ4=",
        "X-AuditID": "cbfec7f4-65dff7000000176d-9a-5f81dbee371f",
        "From": "Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>",
        "To": "David Hunt <david.hunt@intel.com>",
        "Cc": "dev@dpdk.org, l.wojciechow@partner.samsung.com",
        "Date": "Sat, 10 Oct 2020 18:05:07 +0200",
        "Message-Id": "<20201010160508.19709-17-l.wojciechow@partner.samsung.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20201010160508.19709-1-l.wojciechow@partner.samsung.com>",
        "X-Brightmail-Tracker": [
            "\n H4sIAAAAAAAAA+NgFrrLIsWRmVeSWpSXmKPExsWy7djP87rvbjfGG7Ts5Lfom/SRyeLdp+1M\n Fs961jE6MHv8WrCU1WPxnpdMHgff7WEKYI7isklJzcksSy3St0vgyphylb+gQbGi9cwJtgbG\n W1JdjJwcEgImEo/utzJ2MXJxCAmsYJTYOfUPlPOFUWL6usnMEM5nRokjC7aydDFygLVcvi0D\n EV/OKPGgdworhPOJUWLK0RXMIHPZBGwljsz8ygpiiwioSvzb/4kJxGYWMJJ42T0RrEZYwEfi\n bGMPI4jNAlTTtvgRmM0r4CbR9vc2K8R98hKrNxwAq+cEip/tOsgGskxC4ACbxNxTvxghLnKR\n 2HSKEaJeWOLV8S3sELaMxOnJPSwQ9dsYJa7+/skI4exnlLjeuwKqylri8L/fbCCDmAU0Jdbv\n 0ocIO0qsenkL6mM+iRtvBSHu55OYtG06M0SYV6KjTQiiWk/iac9URpi1f9Y+YYGwPSSWT5gL\n DdGrjBJ//u5nnsAoPwth2QJGxlWM4qmlxbnpqcVGeanlesWJucWleel6yfm5mxiBkX763/Ev\n Oxh3/Uk6xCjAwajEwytxqjFeiDWxrLgy9xCjBAezkgiv09nTcUK8KYmVValF+fFFpTmpxYcY\n pTlYlMR5jRe9jBUSSE8sSc1OTS1ILYLJMnFwSjUwlgXbtxRNNVxiZKM04eFcrl1Vhv3vv92+\n 31Uk2JUunn/37DXlXW5LtWZoO6RyvJH72vAi9WT2rR3Xq14JV+pbbTgYkuYfaBzqOZ0nysPZ\n 4lXJQluF5LkN5+PrPCy0Z7p1pVSx3otl6d+Usl/YdM0Xf1efwpehR7h4H2rnH/z+8vfnGlO/\n 8hAlluKMREMt5qLiRAD48l0x8AIAAA==",
            "\n H4sIAAAAAAAAA+NgFtrHLMWRmVeSWpSXmKPExsVy+t/xu7pvbzfGG3x4K2XRN+kjk8W7T9uZ\n LJ71rGN0YPb4tWApq8fiPS+ZPA6+28MUwBylZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqln\n aGwea2VkqqRvZ5OSmpNZllqkb5eglzHlKn9Bg2JF65kTbA2Mt6S6GDk4JARMJC7fluli5OIQ\n EljKKLHg5kEmiLiMxIdLAl2MnECmsMSfa11sEDUfGCU6731iBkmwCdhKHJn5lRXEFhFQlfi3\n /xMTiM0MNPP2vCY2EFtYwEfibGMPI4jNAlTTtvgRmM0r4CbR9vc2K8QCeYnVGw6AzeQEip/t\n Ogi1rJFR4sTtm2wTGPkWMDKsYhRJLS3OTc8tNtQrTswtLs1L10vOz93ECAy7bcd+bt7BeGlj\n 8CFGAQ5GJR5eiVON8UKsiWXFlbmHGCU4mJVEeJ3Ono4T4k1JrKxKLcqPLyrNSS0+xGgKdNVE\n ZinR5HxgTOSVxBuaGppbWBqaG5sbm1koifN2CByMERJITyxJzU5NLUgtgulj4uCUamAUtXu/\n JiR7uvPhiKV+Uy4Y2c/k+f33DPfn3kl2xfM2f9l0avo3lVef22asbfkw84zV2Sn8Twp70tzX\n 7T33LbxwQsXVNde1nB563cwMLNZbYP7oV2tBoM/8dR+/aQieOnZc0LOncM/lfjup8PxDjpGG\n gWueii4r3tLd877kj+qDd99iOXNdfxjrK7EUZyQaajEXFScCACV3Zl1RAgAA"
        ],
        "X-CMS-MailID": "20201010160605eucas1p1ff6b4cb5065e1355cb8eeafd4696abaf",
        "X-Msg-Generator": "CA",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "X-RootMTR": "20201010160605eucas1p1ff6b4cb5065e1355cb8eeafd4696abaf",
        "X-EPHeader": "CA",
        "CMS-TYPE": "201P",
        "X-CMS-RootMailID": "20201010160605eucas1p1ff6b4cb5065e1355cb8eeafd4696abaf",
        "References": "<20201009220202.20834-1-l.wojciechow@partner.samsung.com>\n <20201010160508.19709-1-l.wojciechow@partner.samsung.com>\n <CGME20201010160605eucas1p1ff6b4cb5065e1355cb8eeafd4696abaf@eucas1p1.samsung.com>",
        "Subject": "[dpdk-dev] [PATCH v7 16/16] test/distributor: ensure all packets\n\tare delivered",
        "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 <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 <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "In all distributor tests there is a chance that tests\nwill send packets to distributor with rte_distributor_process()\nbefore workers are started and requested for packets.\n\nThis patch ensures that all packets are delivered to workers\nby calling rte_distributor_process() in loop until number\nof successfully processed packets reaches required by test.\nChange is applied to every first call in test case.\n\nSigned-off-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>\n---\n app/test/test_distributor.c | 32 +++++++++++++++++++++++++++-----\n 1 file changed, 27 insertions(+), 5 deletions(-)",
    "diff": "diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c\nindex 4fc10b3cc..3c56358d4 100644\n--- a/app/test/test_distributor.c\n+++ b/app/test/test_distributor.c\n@@ -103,6 +103,7 @@ sanity_test(struct worker_params *wp, struct rte_mempool *p)\n \tstruct rte_mbuf *returns[BURST*2];\n \tunsigned int i, count;\n \tunsigned int retries;\n+\tunsigned int processed;\n \n \tprintf(\"=== Basic distributor sanity tests ===\\n\");\n \tclear_packet_count();\n@@ -116,7 +117,11 @@ sanity_test(struct worker_params *wp, struct rte_mempool *p)\n \tfor (i = 0; i < BURST; i++)\n \t\tbufs[i]->hash.usr = 0;\n \n-\trte_distributor_process(db, bufs, BURST);\n+\tprocessed = 0;\n+\twhile (processed < BURST)\n+\t\tprocessed += rte_distributor_process(db, &bufs[processed],\n+\t\t\tBURST - processed);\n+\n \tcount = 0;\n \tdo {\n \n@@ -304,6 +309,7 @@ sanity_test_with_mbuf_alloc(struct worker_params *wp, struct rte_mempool *p)\n \tstruct rte_distributor *d = wp->dist;\n \tunsigned i;\n \tstruct rte_mbuf *bufs[BURST];\n+\tunsigned int processed;\n \n \tprintf(\"=== Sanity test with mbuf alloc/free (%s) ===\\n\", wp->name);\n \n@@ -316,7 +322,10 @@ sanity_test_with_mbuf_alloc(struct worker_params *wp, struct rte_mempool *p)\n \t\t\tbufs[j]->hash.usr = (i+j) << 1;\n \t\t}\n \n-\t\trte_distributor_process(d, bufs, BURST);\n+\t\tprocessed = 0;\n+\t\twhile (processed < BURST)\n+\t\t\tprocessed += rte_distributor_process(d,\n+\t\t\t\t&bufs[processed], BURST - processed);\n \t}\n \n \trte_distributor_flush(d);\n@@ -409,6 +418,7 @@ sanity_test_with_worker_shutdown(struct worker_params *wp,\n \tstruct rte_mbuf *bufs2[BURST];\n \tunsigned int i;\n \tunsigned int failed = 0;\n+\tunsigned int processed = 0;\n \n \tprintf(\"=== Sanity test of worker shutdown ===\\n\");\n \n@@ -426,7 +436,10 @@ sanity_test_with_worker_shutdown(struct worker_params *wp,\n \tfor (i = 0; i < BURST; i++)\n \t\tbufs[i]->hash.usr = 1;\n \n-\trte_distributor_process(d, bufs, BURST);\n+\tprocessed = 0;\n+\twhile (processed < BURST)\n+\t\tprocessed += rte_distributor_process(d, &bufs[processed],\n+\t\t\tBURST - processed);\n \trte_distributor_flush(d);\n \n \t/* at this point, we will have processed some packets and have a full\n@@ -488,6 +501,7 @@ test_flush_with_worker_shutdown(struct worker_params *wp,\n \tstruct rte_mbuf *bufs[BURST];\n \tunsigned int i;\n \tunsigned int failed = 0;\n+\tunsigned int processed;\n \n \tprintf(\"=== Test flush fn with worker shutdown (%s) ===\\n\", wp->name);\n \n@@ -502,7 +516,10 @@ test_flush_with_worker_shutdown(struct worker_params *wp,\n \tfor (i = 0; i < BURST; i++)\n \t\tbufs[i]->hash.usr = 0;\n \n-\trte_distributor_process(d, bufs, BURST);\n+\tprocessed = 0;\n+\twhile (processed < BURST)\n+\t\tprocessed += rte_distributor_process(d, &bufs[processed],\n+\t\t\tBURST - processed);\n \t/* at this point, we will have processed some packets and have a full\n \t * backlog for the other ones at worker 0.\n \t */\n@@ -584,6 +601,7 @@ sanity_mark_test(struct worker_params *wp, struct rte_mempool *p)\n \tunsigned int i, count, id;\n \tunsigned int sorted[buf_count], seq;\n \tunsigned int failed = 0;\n+\tunsigned int processed;\n \n \tprintf(\"=== Marked packets test ===\\n\");\n \tclear_packet_count();\n@@ -614,7 +632,11 @@ sanity_mark_test(struct worker_params *wp, struct rte_mempool *p)\n \n \tcount = 0;\n \tfor (i = 0; i < buf_count/burst; i++) {\n-\t\trte_distributor_process(db, &bufs[i * burst], burst);\n+\t\tprocessed = 0;\n+\t\twhile (processed < burst)\n+\t\t\tprocessed += rte_distributor_process(db,\n+\t\t\t\t&bufs[i * burst + processed],\n+\t\t\t\tburst - processed);\n \t\tcount += rte_distributor_returned_pkts(db, &returns[count],\n \t\t\tbuf_count - count);\n \t}\n",
    "prefixes": [
        "v7",
        "16/16"
    ]
}