get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 27073,
    "url": "http://patches.dpdk.org/api/patches/27073/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20170720070613.18211-2-santosh.shukla@caviumnetworks.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": "<20170720070613.18211-2-santosh.shukla@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20170720070613.18211-2-santosh.shukla@caviumnetworks.com",
    "date": "2017-07-20T07:06:12",
    "name": "[dpdk-dev,v2,1/2] eal: allow user to override default pool handle",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "f142277e122164a25e490ff3891ef1835957cf6d",
    "submitter": {
        "id": 480,
        "url": "http://patches.dpdk.org/api/people/480/?format=api",
        "name": "Santosh Shukla",
        "email": "santosh.shukla@caviumnetworks.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20170720070613.18211-2-santosh.shukla@caviumnetworks.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/27073/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/27073/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 9BCA858EC;\n\tThu, 20 Jul 2017 09:07:02 +0200 (CEST)",
            "from NAM03-BY2-obe.outbound.protection.outlook.com\n\t(mail-by2nam03on0069.outbound.protection.outlook.com [104.47.42.69])\n\tby dpdk.org (Postfix) with ESMTP id D9FD6324B\n\tfor <dev@dpdk.org>; Thu, 20 Jul 2017 09:07:00 +0200 (CEST)",
            "from localhost.localdomain (14.140.2.178) by\n\tBN6PR07MB3090.namprd07.prod.outlook.com (10.172.105.8) with Microsoft\n\tSMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id\n\t15.1.1261.13; Thu, 20 Jul 2017 07:06:55 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=ImcxQJfc27SttH0bFwuh8GVciah9as1scjydnRmlgw0=;\n\tb=KfykHHx4WDsDw4NpQdXN/qZJ4Z3cSMe+Px0uzFgAVSYVB+GMzJBzkT4mefOpV00qUWSavLhR7eqIezJCFecKIUd2qtQptN4npBTpVEYxe9m+L1Y8ht+uQe5aYhkYRR+lWqPAwPTw9b+v7w9H4KlUOqFmniySY0PtTPZY5akXx/A=",
        "Authentication-Results": "monjalon.net; dkim=none (message not signed)\n\theader.d=none;monjalon.net; dmarc=none action=none\n\theader.from=caviumnetworks.com;",
        "From": "Santosh Shukla <santosh.shukla@caviumnetworks.com>",
        "To": "thomas@monjalon.net,\n\tdev@dpdk.org,\n\tolivier.matz@6wind.com",
        "Cc": "jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com,\n\tSantosh Shukla <santosh.shukla@caviumnetworks.com>",
        "Date": "Thu, 20 Jul 2017 12:36:12 +0530",
        "Message-Id": "<20170720070613.18211-2-santosh.shukla@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.11.0",
        "In-Reply-To": "<20170720070613.18211-1-santosh.shukla@caviumnetworks.com>",
        "References": "<20170601080559.10684-1-santosh.shukla@caviumnetworks.com>\n\t<20170720070613.18211-1-santosh.shukla@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[14.140.2.178]",
        "X-ClientProxiedBy": "SG2PR03CA0052.apcprd03.prod.outlook.com (10.169.50.20) To\n\tBN6PR07MB3090.namprd07.prod.outlook.com (10.172.105.8)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "b9aa15bf-8ae9-4f5c-e76a-08d4cf3de9a1",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:BN6PR07MB3090; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BN6PR07MB3090;\n\t3:kfUfA2XuyUrbSBcUjbNWXUq715wNTiuJR4uxH/fP68/tuR2ZmfXUdLAwhT0GKxeMowlbX+2Nosvg9xpXfl0h79YNel4urQbRgm/cUmYSwkMo3/8z0ldkL9IdJAH7kkDJU6tiEqgoiY6EA4afwnx4/hHz8imKgPGFyzsJMp7SYHMSVM4EGPefv0UrkjW69+MsWPSUees4PZAffve6sTf4IBe5znP+c4dNv++j6Iq/h8JvPSRgg6G/lF/Niq/7Y0Dc8TneMnWcYp0HK+nUPjom3+YOgIhuppued0YLzAdWgfCEFNGRKZ1ub5VJ4V2HKb3Oi6122Aqa61UpB9XxTpkqJfavPF9nHr+Ud5JQUQWkydrIJ3UfoVWN2+UZ3pH9rY74FIbzlJvMpL/1PKC/OEBL993+KRRG1cGP9V5HEFL7cB8GCdBlW1BSfK04/Irmu1MhRB5kWJzudjFkOV0AeW35QO2ALZT+h/VHjR/VyrnqNQ2KMy23+O7urzW56Hbb8ZKPpjZVewH6f8LqBPyduJP1UkKv2HtSveoTiCyKCv8Gx2+LRzBLX6wlk+1VpL9++DK2vS5V85CzImeRkuWikRP1Bf8p7D6ZH7dS/Yg/8aDTQb9KWQLShroCmSXLGuFlxwOVgEF2WF1MJmn0QPI36A5vxtNbmT2O6gu0YueWRgd88tT9hjGMZ97NNxLsCt6N0lA1UPKZ59mUP7rgkUBbD6LlHKtf52hdiV5C74A54jFXOY8=",
            "1; BN6PR07MB3090;\n\t25:FabQusfBTi+U0RVLH6Q+PrqJ3D6BcL6DEEe4zxfG2Vtk4vxgGBu6Guxv/emWeDuJTxOZIR5s2zV3K8d9XDS6D/6E89iyle8tXZPlksveneSnr0cK/sUrVgCUDE5Mc+piTGBmupoYEk7PyGZoufaC+8fEqHkVBYf0bB1esQTCwTz2JT+NnH416DcryrP6ts+uIr12msS2dcTK6JLWhWdzu7OfmwxjP+2j0cOK4nplKy5lGtcpkZ92LHFHOMJsug0orfY2AiLJshLLEIE3gM/5kk/7AL460QVI5o0eFeQZ9IADX58sVLLEviTX8V62LID1SQcof6RE/W5w3CZQRms2BFp4qVpFA1KvDCV0p/hP1hxPrT4RWO15kF9YDkHVhlyunCOOQEsYmKuNcJRw0AV+r82HEUdUKVw9uYa1narmaWLVD+DM4BA4sJVwZGZV0CwAGV3MwN+YpUO07q9Op80y28CBRamc4X57SoYvoHWuxRz4gaOVMRJnjKL0O+O444XxcrkpRKFibGKLC8qNsobAMDLPqdi2xdwRtDY4whdc1tyliM+nCrdBIkP9d/gE3g23pft5drKS2rO4txpEvBepOm1p3/BiTCXDoU/XT8lKvdKcHvpyfzIbDV+YLh8Xk2rr4F/i7sdT/SAhEL2zjASIofqorUUTIb7854YE00IKoG9I7M5JEhE7zPIEhO/iohWTHaENFNpHryKL0nsyJO75d+OwyW0CGpVK0DHL+/0TI9PVjXpI9/rdl1ItXOKzb/nVWaDkeo+RU684re76p/ctiQ9R2/eFaE43Fl8nRDcj+wsaJZIZpFdP7rwUWiDpJegCphyv/hZfPZeX1/EjxRjZ1Cc24BU0kfLrDuXUxqf5d5dXM2IGRhVNk9PMbZBSx8HjndnWS4OFviGzHzSG0zpy81O/Np+kg2zu929V+v3fw8w=",
            "1; BN6PR07MB3090;\n\t31:VOTP7krtd3y41a970NjTZz2mPuh47Ol9AXfIGphQnM8iHGpuOe/9V/vd//tG+g/yCdXZRqalVqIGt8DqVhmcfyAKwyfu4gdE2A6G91rOTwPrJyddnuW7CFiXKo1Es6fW1NUAN5hDQgcK0VMQdMpOgv1m8ZcFTt61HT9diMObmxgB5l0FmWGN1PTg95ZuF5WQtwwV0mq8ZJzUMMqpoGI58Ak0kUlSFAPKcYoPZPt29YnOAmyxS1RPWzZYxIXwzSbDtucgjWY4ykBQ1GDFt62EP88zC6fkkZsQK1NPt+i79UAOTdZ8riqYQjVZZTdNCgct3qaGhGgDsFaxh/n+oOGI1zXZl83p7R0uYYfQqFS3yKufCit1xUbdi+p6ufKpkBe5yx84YgcvvQezjNwC6wEohnFfPsYr9encdHo2u8ZcwtwpEDSQfQ/bgH9mWd/pTxER0FsKrPuKtjYthNNNrpSqiwhhKYeq5GIJmTNhrcwpYtEu943ZrZK2WXh0i6rCAGaAQxlSJS1ugk2Hv24BEB+Dp5gbUFasITuRPHh03tbGNawZr+c7fu2rb5EReSo4lmvy3cDAEEn9ui6B5YKBC7ms1KBcVyCXCuNdt4tfLVI7K935O/v+7oNqPrp676sBTATAmMloCVN7IX5FHjWQDnqZi/jNZJh9O/LKqHAQVhUFYzo=",
            "1; BN6PR07MB3090;\n\t20:yji0XTlkxCbRPCPHn7emC5oQs5wyEeAwGcHLqLvDp3mMrnfK/AcsWHuuEEiC+2PVADrr+7gIODkFzKyyHc6Iwh/VEVCZnWjHBxnjqSfIVWyb8aNO6amjiR2muwg9gPWAwRjOCiszKeK2ifH8amTDLSsWsDFM5hTNQ+hIrDYsRWr2vsfOqCO4dQ7hyxZvCiVdAHVxTBaAeS81gophMaDdKRHAjlDn9fKUHpU5Zg4JPO0caI2MCfqnwDHyEvjL7tALWT/kNE01qn5sRngX7QVl+agKOo844XEU5odPL3KfpJjgfFAEtz/KsrLbtbIA3as5Sg5NeCUhBuBpJ9ny4rY8bY4qGk7y3aWkQ8N3l3shFFzspqzrkBEWEQUGx6U/k+7Jp1bAgPvaWblRu6YpqGsSpRJ62pKwyGpkOafZTJaDidvnTRMvvqNUkLVavhypNfTdexvrAFPIgQ23TV1eLkJDswGfysHscK7BhAhfDaHrVu4RnaMlh38E+ZINytc2oeMI5kGmJ8dZFKpMfIlhIM36+o6rcrfad7oAmfvgawQO1GSloppsgWiGAkbN1a/ZJ+/AI9C9SSKVJQH+f91bVOQzm8sOYWu4yXInmO3ZrlbWnac=",
            "=?us-ascii?Q?1; BN6PR07MB3090;\n\t4:NkKjXJ5sqtywwNWYNrcjiCGH+6zdt4/WNpFgA/GYCH?=\n\tGC3gyLknM5/rxVcCNL8US84EK/l7CoWsif232EtqJBkXfh1Vs/36uNLvx60n9e9mRokhpHPwsVSTpWVL+SPqMnzCIklYa7Ck9V2n/ZTK1i37a+U+ktPK/S1Y8WnBoKLmmQCCfcTw5X1LtEZUXIqUENO6d71XifF+dqxUYv+rCV5aKQF3wzUAjMkvHGDC3lISPnQjTC7xxQQ9EekFt9tvyLz/qukSx7eDnfb9ddlBgfnFwbyRCVQZBbLops3dXraYe2KiPt2tBWQ9xyYDmF1FaAUc0ytbgdOOG603ZnVDLhUBVXyJfZUjqMU5JNY+4p9Ijhhr9lAWo5o+2KSU8gbjQPvfwfcl3VOZ/2YT8IcC2PWVGQCM/2OcOaYrH/6NUhuMA1Zkj87QdVUzzNF+jgcVu1SrHIvz2fcRl1EB9CKTgQe33t4u/l7ZcPyGUmldLxo5YhBkznloYU4Zt3vzJRUf1Pel7qBACWDoXq1DGZU4LO6+7P4r/ZDhPc9U3C5q3Sy5ix3O97yldVx+YLWv7g7BI4r21oKs63oMrj7Y9tdxNuvBKsmUKsokatIFsNb345YYfCjQy2oiTWB+GMe5qQUH0cyRM7Ztf4LU+esClHobPa4M0tOG43H+Ft4jRycalthFZcRXz6k8vHs51SbB4JdSMTbGtq3cEOKi0cRfSV2fi+ICw17bGRVAXxPohGaUNTYpCdJ6clspv+BrK51PYgepSefhoxMmAB4Bg20eWxXW0mkd76/2VhoDWDbfOvKBP433mXh94Qk7JmHQs8ngxwiNsCRTxEsn4G3rKJGCvL/NuTeaXYgAh+aiuZzaLIPBr0KQRQBHIuwhKX9k5vrFDc0iKGlc+ZJ+aNTGxjePw4u25Ag+B1TnkWuEx2krKI36k4fUWDtWYqIJJo14UH0mU0ORl2vopdMcwrBzz4tdZtXeS7H+0L3ipwX/+DLq7A/+3xbsBJKdgLhnzdDyvTc9MinEqOYzHeT1M6WI312cvDZcvIQZ4v7q2np1tkJYUzQDDUy5NJ5GXFRBuufmYRV92pBIOngMgFERN6FJduK3CrIl97nZwT6obMdQkop85C5mCMFRL+eSo9+hKkeiH9gxIE7DNHy+utns3WrHzwZ4jKroL6yUY41Hlfvt2QzzBH4mhbtU0AH8558ud/4jSNz0P5Y1AghCaN4t3MPxfGG3lubMcnvo97TcrWBDZg/NSnDjv/CBFgc4JzLYNquG2gsziTDr3qTMveQXpZ1Yw+BPfziUCJTSqlDMhxRWHPTowKplRnqrQ=",
            "=?us-ascii?Q?1; BN6PR07MB3090;\n\t23:npqXLHRWn4lxGo7NRjR8zyqdgSFWCwVn6rCljBLmC?=\n\t16bYaH0I6uPRrr3uyLKoRVoek590uJ5IyKVpW6W+APLHe9QfZfXp31TtgnyMQK/aW9EWztvCzUFa7WibETXiwk4IcKRxEODktyqbh4nMCRTIu51FHwZ87vUAhnEXYhE3U6DQF9eLHsnrq1IeYzARQ33jNn+ocxcdn0cPSn/eDTqQ//vaxHf02LbGqNz1hk236Xe0bLvteA+3vQXSNtSNUXs6Eu4vasRCuUUJxIonYFKM0jnFZC9Wd+U/fboQUERo/H+kzTbB6xDx3XvPDQPQoRrmx9Ds89p28N9QRwnzkJ8Uo0yzZR+ZcoTaI+QRYJWhMM45uiY/mw36UMNfTIUA7A6mWSmiYyogKK/O2E8nEz0g8AAeE9g4YsBkPG2eZB/mV07mL4aPfcOjg8lhdWWUyxbf0t0hpZufSKPfHFAMewrjhhDwIzz/arJWgLxFHyKkpVcFd6ywy6PVGbJH+s1NbIhz7phobMLRjlEx+MfG57e78yFw6J3H91gk3rnYNlVbP5XU8YbdkqKU5LI17NZ8G5r9HycYZ3SPssOVkekplpuwONJrpl3FJAQk9HHFgqAzc+ttN/hpHV/ZwHdT/VNhNMmUz3RHbRLT000DWmwX4Hj1Iz7V7h7D/YLklU9HfZZ8B1ZH6ccIXokAEWlKL1RP5OLuEjSSVQcg9G/HWsUtuXQ7LepOXhoQqHyQdtReEsRVeGc/eMJDUu9mLACdY/7qkSXLOFFSPpMHsjfx8ih5ktP9RgHfg+McW+YuNcCGZYph2/0miNfjlsofQ4Aq6dZYGdVS0WovEwvvh7qzfE4iCDAKdKRZJ0oWWaYmWDvykvLT9MyH6S7dPDsEVZoMjk/Cdvncd3xCxOV1NviDhSy1eJfJpTQvYusnCJNXek812abA0wlKup45x6tz5331wyAc5eokihArvIoHZh4E5G2Zy9dCQHl88NAWdS4J1+lRfKZtsFNHhD8Sy9tkryAPEaUARWEby33B52o6InZUczRozmru4cTP7KvGXuKX5dl0hOjaH/Uo/L77oQeTOOp0HXnM5S09c/Oa8jdIjJh9Dz1pdAv7/dBjfHgPMMk/YBHt0yxtrL254dTYXxt8WmO5A1SX6Qk4RXLjYO+6FC5VdQqt+kmUveQ6LGjUI1AQRD7nYzwPo2AjSIXtn/Y+Nhuhjf/D5LkXucMv5p9XhgLp+OuGfgc8uP/8HkqRY7ujTWW0IlmOmBDbJ32jGxZ3GQ+TkvGNXjz",
            "=?us-ascii?Q?1; BN6PR07MB3090;\n\t6:kiPJXhxaw9Oo5/cKrViGMH+JPrzSPFRPa415MtOZIH?=\n\tFSmsl69fBE+5k3WRl5/fBzxZUS9DCMF1pyTks0reB7ombJN22wf5apvQ5A2TswKmVN+2y7Fi1iQjsazUU9Y76zNiJCtKqwhUs90FaaZO/F6X2J94fNsHaoe3pZE3S3QfXgvTBhoObkQMO2EORI6WhhypKpsXrvOwlu3Pw2Urmef5uHfb6sN8fok4Oorn2OXMfdfwyjw+EdQPsHIvrQgb9plYpfQV+XqIiSSfjaPZF7359m0vlboJo++ZzsArM8uHRYEZnWR5sjc6740othVdZzwhI2bSUYa3QT+Hz2GU+tHyahDwmEV3Gq0K9GrUaZiYxy9trEet8L2NWNTIOlORaJP/OK8VjsfcT0fvr54p+m0wzwwWaYcOEYdghoR1mOZf+pZVWw6X/NBY5/SO6u6kzNdhWm2PxhD+lfS7HG8qeRdrxx9kjIcru1WiX7Eea83seyaX6EzQeoMXkFLS7rJzv1y3g4aW21kLLGLFk6dpv1ueueo+mZu/dDCvaeAbAsKI9fBpjkNaJSgvIKoTkpkMPflbKYmRXkgC9ZbVkdY3fbQHdw9qY8bUyBRCmoIMKx7gaFd6PokROXa9YamAedi2cbXGZjFqK+FY5yzoOI8+oj4Vp4BK/OggkVXzWVYAaiqFgTpk0Y7zxBXhWn9KMI89w3LAY/VtAXl6RAX07WKdebV3FPmG0auQaMfWUsWflxDoSWmsdwCVM4n9q1E4oKY+ap7OWOgXeMwMRogLt0FZgQzrHSfpJPrt/JAgIf+18Xn7mZnivo9xrv/tRZHRJKhgS9wLPH4EgKPHNITDQcEIzRBCTarLRbW+8X3tofwiQfjZ40tRk1ME1TDubrbAi04DqLC5sviB66DvE6FCLkeBLP9t9PmPGIajBNxltZ/aAzldcRLGFmrgwUYdQKYEZR0qRUJwa3tqgQ6JTIThAK/w6YLe640niZkAzX5CtK6PEj81E=",
            "1; BN6PR07MB3090;\n\t5:LHJA3FDhAMK0ooZrOlqWwstOCj7eUlpFDt2Lhiaia5UTBboLN0gCCRtHiC85NscynkXuLTx/Y1+frmsYEHVOZhpaFjK3Tx29aQoYKQe1kcrnVRCNEGUZNsADdxU11QMSGlh7S4W0yKmiCLjBy8HBhEdPwsFioUAEjIoabOpmrJc/CVlvH0ShrqnLlCy4DzZKEaZxg7KljjeyPzbHoItaJqXLbf2w4AQfCuM0KBN/Bu72pE0Qcj1PMVreF0wE4rkX44GZ0fstNMLo2yMaWT9uT0qDbvnxwjil8kdtJDsGqnfgEpiwz+Un/9adfK0hILlvDCATBDTcsQlXNHVwpuV2Cgz2Unj0HjHa7caDqafGTT7VNy4FJzIT3u3DS26nZBKz3ku7HImcrqWJftlPMGXMUXTizgsMZZ7sNoGiE6bjONn0+9s395CnNur7indEbxuJ1xgiFU+/p+1+FIx7vl4YOMA79v00fiU4ZL0GjsKAY3F7NWxN56B9E/X1lqy+BM+o;\n\t24:CWe2Txr0mHV3nDL4mlJ825fcqvwuL8ev4Is7DK09y5PPu5gXwhVluPw4+UwYLPjW3Z6t0yO7+PWxqTxg7AXMq3Mxp+G5YXjTadnvavSrZQY=",
            "1; BN6PR07MB3090;\n\t7:bYMO5MmwudIoZRZ6uKvmMX8VGC5//mBxXCRqwk5J3IXMV+/EVov6S83f9tkshrSlEbq1L/5zT/epNPtG6977V/1xvnCa5k/2DxH+RmZUOcQPk8l/NKTnXH9bMMhP8lzObXJiwHBI6+1ijhwPlab/8Bd5WkTUOR1/7wuSFubfbq7QxtbhkJM4JJj70fF7ohonw+QFo4WLOcEhWpZicxrH49CdiC5NAnQbrca4v4mpqp9OwLjM3pIO1dxx6mgJpwjJYbnq3Z1+j2TMSZgr6NgksmZk3Agr1jMkA1yEJIsQ1gmlT2F9+Qh546XexXTl0g1ybVWyWTHTZi2a5k3+qmWQ/88oqz5+STcjgBcUp69yzbrLxU9BibLZs3Z6Ec4rETQ60BUKm+JsTMRIv3H8+s9B3CYRkH0wbWSRrmCwxHJinabeAclHx7rFC59dtahuMat762scqyUFHwca8Fyupmvlo82VhsfaPz3oNDXICgMUgw3blEDYA9Zv0vC6lmtFmZJZhO75XrrhQycwoJWINtKh00C3iWSZLiKs0c3aj5jx52OoLDqdNZUDhhkpH8RI3kG5y1fK5p1CWJvqFn9xInW/lznfHKL0Nrp+uQ5tSuXGjOY8T8jZPYwht0St3WCagcPVczfRBEhf73/pXqrWyVyVG7CRR9YXRUx9npZjNkPxyiTWglO7uyprNKMoDQCpN81Zvf1OfF0GBbC5CnRDfX+djSnRRUaLYyq6Baj4X9jPmSe3eP08H8dR+badQT9YVLSYdqig/aHR2021gXBPaDiQX3oLOIBOjQQtUobD7b4kr+0="
        ],
        "X-MS-TrafficTypeDiagnostic": "BN6PR07MB3090:",
        "X-Exchange-Antispam-Report-Test": "UriScan:(133145235818549)(236129657087228)(148574349560750)(167848164394848);",
        "X-Microsoft-Antispam-PRVS": "<BN6PR07MB30900BED85E41B84F4FBF24BEAA70@BN6PR07MB3090.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(8121501046)(5005006)(93006095)(100000703101)(100105400095)(3002001)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123555025)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:BN6PR07MB3090; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:BN6PR07MB3090; ",
        "X-Forefront-PRVS": "0374433C81",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(4630300001)(7370300001)(6009001)(6069001)(39450400003)(39840400002)(39860400002)(39850400002)(39400400002)(39410400002)(5660300001)(7736002)(25786009)(50466002)(42186005)(6512007)(6666003)(2906002)(8676002)(81166006)(478600001)(2950100002)(53936002)(50226002)(42882006)(47776003)(36756003)(72206003)(5003940100001)(1076002)(8656003)(4326008)(110136004)(7350300001)(107886003)(38730400002)(6506006)(6486002)(5009440100003)(189998001)(575784001)(66066001)(305945005)(33646002)(48376002)(6116002)(3846002)(76176999)(50986999)(110426004);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR07MB3090; H:localhost.localdomain;\n\tFPR:; \n\tSPF:None; MLV:nov; PTR:InfoNoRecords; LANG:en; ",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "20 Jul 2017 07:06:55.5994\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BN6PR07MB3090",
        "Subject": "[dpdk-dev] [PATCH v2 1/2] eal: allow user to override default pool\n\thandle",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <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": "DPDK has support for both sw and hw mempool and\ncurrently user is limited to use ring_mp_mc pool.\nIn case user want to use other pool handle,\nneed to update config RTE_MEMPOOL_OPS_DEFAULT, then\nbuild and run with desired pool handle.\n\nIntroducing eal option to override default pool handle.\n\nNow user can override the RTE_MEMPOOL_OPS_DEFAULT by passing\npool handle to eal `--mbuf-pool-ops=\"\"`.\n\nSigned-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>\n---\nv1 --> v2:\n(Changes per review feedback from Olivier)\n- Renamed rte_eal_get_mempool_name to rte_eal_mbuf_default_mempool_ops().\n- Added support in bsdapp too. \n\nFew changes considered while working on v2 like:\n- Choosing eal arg name 'mbuf-pool-ops' out of 3 proposed names by Olivier.\n  Initialy thought to use eal arg 'mbuf-default-mempool-ops' But\n  since its way too long and user may find difficult to use it. That's why\n  chose 'mbuf-pool-ops', As that name very close to api name and #define.\n- Adding new RTE_ for NAMESIZE in rte_eal.h called \n  'RTE_MBUF_DEFAULT_MEMPOOL_OPS'.\n\n\n lib/librte_eal/bsdapp/eal/eal.c                 | 17 +++++++++++++++++\n lib/librte_eal/bsdapp/eal/rte_eal_version.map   |  1 +\n lib/librte_eal/common/eal_common_options.c      |  5 +++++\n lib/librte_eal/common/eal_internal_cfg.h        |  1 +\n lib/librte_eal/common/eal_options.h             |  2 ++\n lib/librte_eal/common/include/rte_eal.h         | 11 +++++++++++\n lib/librte_eal/linuxapp/eal/eal.c               | 18 ++++++++++++++++++\n lib/librte_eal/linuxapp/eal/rte_eal_version.map |  1 +\n lib/librte_mbuf/rte_mbuf.c                      |  5 +++--\n 9 files changed, 59 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c\nindex 80fe21de3..461d81bde 100644\n--- a/lib/librte_eal/bsdapp/eal/eal.c\n+++ b/lib/librte_eal/bsdapp/eal/eal.c\n@@ -112,6 +112,13 @@ struct internal_config internal_config;\n /* used by rte_rdtsc() */\n int rte_cycles_vmware_tsc_map;\n \n+/* Return mbuf pool name */\n+const char *\n+rte_eal_mbuf_default_mempool_ops(void)\n+{\n+\treturn internal_config.mbuf_pool_name;\n+}\n+\n /* Return a pointer to the configuration structure */\n struct rte_config *\n rte_eal_get_configuration(void)\n@@ -385,6 +392,16 @@ eal_parse_args(int argc, char **argv)\n \t\t\tcontinue;\n \n \t\tswitch (opt) {\n+\t\tcase OPT_MBUF_POOL_OPS_NUM:\n+\t\t\tret = snprintf(internal_config.mbuf_pool_name,\n+\t\t\t\t\tsizeof(internal_config.mbuf_pool_name),\n+\t\t\t\t\t\"%s\", optarg);\n+\t\t\tif (ret < 0 || (uint32_t)ret >=\n+\t\t\t    sizeof(internal_config.mbuf_pool_name)) {\n+\t\t\t\tret = -1;\n+\t\t\t\tgoto out;\n+\t\t\t}\n+\t\t\tbreak;\n \t\tcase 'h':\n \t\t\teal_usage(prgname);\n \t\t\texit(EXIT_SUCCESS);\ndiff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map\nindex f689f0c8f..ed5f329cd 100644\n--- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map\n+++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map\n@@ -200,6 +200,7 @@ DPDK_17.08 {\n \trte_bus_find;\n \trte_bus_find_by_device;\n \trte_bus_find_by_name;\n+\trte_eal_mbuf_default_mempool_ops;\n \n } DPDK_17.05;\n \ndiff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c\nindex 56c368cde..9b0e73504 100644\n--- a/lib/librte_eal/common/eal_common_options.c\n+++ b/lib/librte_eal/common/eal_common_options.c\n@@ -97,6 +97,7 @@ eal_long_options[] = {\n \t{OPT_VFIO_INTR,         1, NULL, OPT_VFIO_INTR_NUM        },\n \t{OPT_VMWARE_TSC_MAP,    0, NULL, OPT_VMWARE_TSC_MAP_NUM   },\n \t{OPT_XEN_DOM0,          0, NULL, OPT_XEN_DOM0_NUM         },\n+\t{OPT_MBUF_POOL_OPS,     1, NULL, OPT_MBUF_POOL_OPS_NUM},\n \t{0,                     0, NULL, 0                        }\n };\n \n@@ -163,6 +164,9 @@ eal_reset_internal_config(struct internal_config *internal_cfg)\n #endif\n \tinternal_cfg->vmware_tsc_map = 0;\n \tinternal_cfg->create_uio_dev = 0;\n+\tsnprintf(internal_cfg->mbuf_pool_name,\n+\t\t sizeof(internal_cfg->mbuf_pool_name), \"%s\",\n+\t\t RTE_MBUF_DEFAULT_MEMPOOL_OPS);\n }\n \n static int\n@@ -1246,5 +1250,6 @@ eal_common_usage(void)\n \t       \"  --\"OPT_NO_PCI\"            Disable PCI\\n\"\n \t       \"  --\"OPT_NO_HPET\"           Disable HPET\\n\"\n \t       \"  --\"OPT_NO_SHCONF\"         No shared config (mmap'd files)\\n\"\n+\t       \"  --\"OPT_MBUF_POOL_OPS\"     Pool ops name for mbuf to use\\n\"\n \t       \"\\n\", RTE_MAX_LCORE);\n }\ndiff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h\nindex 7b7e8c887..e8a770a42 100644\n--- a/lib/librte_eal/common/eal_internal_cfg.h\n+++ b/lib/librte_eal/common/eal_internal_cfg.h\n@@ -83,6 +83,7 @@ struct internal_config {\n \tconst char *hugefile_prefix;      /**< the base filename of hugetlbfs files */\n \tconst char *hugepage_dir;         /**< specific hugetlbfs directory to use */\n \n+\tchar mbuf_pool_name[RTE_MBUF_POOL_OPS_NAMESIZE]; /**< mbuf pool name */\n \tunsigned num_hugepage_sizes;      /**< how many sizes on this system */\n \tstruct hugepage_info hugepage_info[MAX_HUGEPAGE_SIZES];\n };\ndiff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h\nindex a881c62e2..34e6417e4 100644\n--- a/lib/librte_eal/common/eal_options.h\n+++ b/lib/librte_eal/common/eal_options.h\n@@ -83,6 +83,8 @@ enum {\n \tOPT_VMWARE_TSC_MAP_NUM,\n #define OPT_XEN_DOM0          \"xen-dom0\"\n \tOPT_XEN_DOM0_NUM,\n+#define OPT_MBUF_POOL_OPS       \"mbuf-pool-ops\"\n+\tOPT_MBUF_POOL_OPS_NUM,\n \tOPT_LONG_MAX_NUM\n };\n \ndiff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h\nindex 0e7363d77..fcd212843 100644\n--- a/lib/librte_eal/common/include/rte_eal.h\n+++ b/lib/librte_eal/common/include/rte_eal.h\n@@ -54,6 +54,8 @@ extern \"C\" {\n \n /* Maximum thread_name length. */\n #define RTE_MAX_THREAD_NAME_LEN 16\n+/* Maximum length of mbuf pool ops name. */\n+#define RTE_MBUF_POOL_OPS_NAMESIZE 32\n \n /**\n  * The lcore role (used in RTE or not).\n@@ -287,6 +289,15 @@ static inline int rte_gettid(void)\n \treturn RTE_PER_LCORE(_thread_id);\n }\n \n+/**\n+ * Ops to get default pool name for mbuf\n+ *\n+ * @return\n+ *   returns default pool name.\n+ */\n+const char *\n+rte_eal_mbuf_default_mempool_ops(void);\n+\n #define RTE_INIT(func) \\\n static void __attribute__((constructor, used)) func(void)\n \ndiff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c\nindex b28bbab54..1bf4e882f 100644\n--- a/lib/librte_eal/linuxapp/eal/eal.c\n+++ b/lib/librte_eal/linuxapp/eal/eal.c\n@@ -121,6 +121,13 @@ struct internal_config internal_config;\n /* used by rte_rdtsc() */\n int rte_cycles_vmware_tsc_map;\n \n+/* Return mbuf pool name */\n+const char *\n+rte_eal_mbuf_default_mempool_ops(void)\n+{\n+\treturn internal_config.mbuf_pool_name;\n+}\n+\n /* Return a pointer to the configuration structure */\n struct rte_config *\n rte_eal_get_configuration(void)\n@@ -610,6 +617,17 @@ eal_parse_args(int argc, char **argv)\n \t\t\tinternal_config.create_uio_dev = 1;\n \t\t\tbreak;\n \n+\t\tcase OPT_MBUF_POOL_OPS_NUM:\n+\t\t\tret = snprintf(internal_config.mbuf_pool_name,\n+\t\t\t\t\tsizeof(internal_config.mbuf_pool_name),\n+\t\t\t\t\t\"%s\", optarg);\n+\t\t\tif (ret < 0 || (uint32_t)ret >=\n+\t\t\t    sizeof(internal_config.mbuf_pool_name)) {\n+\t\t\t\tret = -1;\n+\t\t\t\tgoto out;\n+\t\t\t}\n+\t\t\tbreak;\n+\n \t\tdefault:\n \t\t\tif (opt < OPT_LONG_MIN_NUM && isprint(opt)) {\n \t\t\t\tRTE_LOG(ERR, EAL, \"Option %c is not supported \"\ndiff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map\nindex 202072189..e90e0e062 100644\n--- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map\n+++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map\n@@ -205,6 +205,7 @@ DPDK_17.08 {\n \trte_bus_find;\n \trte_bus_find_by_device;\n \trte_bus_find_by_name;\n+\trte_eal_mbuf_default_mempool_ops;\n \n } DPDK_17.05;\n \ndiff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c\nindex 26a62b8e1..e1fc90ef3 100644\n--- a/lib/librte_mbuf/rte_mbuf.c\n+++ b/lib/librte_mbuf/rte_mbuf.c\n@@ -157,6 +157,7 @@ rte_pktmbuf_pool_create(const char *name, unsigned n,\n {\n \tstruct rte_mempool *mp;\n \tstruct rte_pktmbuf_pool_private mbp_priv;\n+\tconst char *mp_name;\n \tunsigned elt_size;\n \tint ret;\n \n@@ -176,8 +177,8 @@ rte_pktmbuf_pool_create(const char *name, unsigned n,\n \tif (mp == NULL)\n \t\treturn NULL;\n \n-\tret = rte_mempool_set_ops_byname(mp,\n-\t\tRTE_MBUF_DEFAULT_MEMPOOL_OPS, NULL);\n+\tmp_name = rte_eal_mbuf_default_mempool_ops();\n+\tret = rte_mempool_set_ops_byname(mp, mp_name, NULL);\n \tif (ret != 0) {\n \t\tRTE_LOG(ERR, MBUF, \"error setting mempool handler\\n\");\n \t\trte_mempool_free(mp);\n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "1/2"
    ]
}