get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 26265,
    "url": "https://patches.dpdk.org/api/patches/26265/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20170703191402.3638-22-jerin.jacob@caviumnetworks.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": "<20170703191402.3638-22-jerin.jacob@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20170703191402.3638-22-jerin.jacob@caviumnetworks.com",
    "date": "2017-07-03T19:13:49",
    "name": "[dpdk-dev,v2,21/34] app/testeventdev: perf: add opt dump and check functions",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "11b13119ffc1fd377e87388c831e46e024c27277",
    "submitter": {
        "id": 305,
        "url": "https://patches.dpdk.org/api/people/305/?format=api",
        "name": "Jerin Jacob",
        "email": "jerin.jacob@caviumnetworks.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20170703191402.3638-22-jerin.jacob@caviumnetworks.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/26265/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/26265/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 AC7577D27;\n\tMon,  3 Jul 2017 21:16:09 +0200 (CEST)",
            "from NAM03-DM3-obe.outbound.protection.outlook.com\n\t(mail-dm3nam03on0069.outbound.protection.outlook.com [104.47.41.69])\n\tby dpdk.org (Postfix) with ESMTP id D62277CDB\n\tfor <dev@dpdk.org>; Mon,  3 Jul 2017 21:16:03 +0200 (CEST)",
            "from jerin.domain.name (111.93.218.67) by\n\tBLUPR0701MB1716.namprd07.prod.outlook.com (10.163.85.142) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id\n\t15.1.1220.11; Mon, 3 Jul 2017 19:15:59 +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=xbE7MKxCBtZF9mjp+bJyPj8BCMen9iV4A8G8uB0Bus4=;\n\tb=lnlvikdhBmE+8ZCwiBO11bjBggonuRfLmZazRVER5qpkevBBKhbN8AojFN0gfsFpruY/5yYrNLG9sxczYUwP+XInbsskqzWzS2MhI/5fsuE9PcAZja/97VdKZTgt/PpdeViJBlHaAgUiRZuxhbRCkxDCKyuIn0O0/9TTpU/1tdg=",
        "Authentication-Results": "dpdk.org; dkim=none (message not signed)\n\theader.d=none;dpdk.org; dmarc=none action=none\n\theader.from=caviumnetworks.com;",
        "From": "Jerin Jacob <jerin.jacob@caviumnetworks.com>",
        "To": "dev@dpdk.org",
        "Cc": "harry.van.haaren@intel.com, bruce.richardson@intel.com,\n\themant.agrawal@nxp.com, gage.eads@intel.com, nipun.gupta@nxp.com,\n\tnarender.vangati@intel.com, nikhil.rao@intel.com,\n\tgprathyusha@caviumnetworks.com,\n\tJerin Jacob <jerin.jacob@caviumnetworks.com>",
        "Date": "Tue,  4 Jul 2017 00:43:49 +0530",
        "Message-Id": "<20170703191402.3638-22-jerin.jacob@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.13.2",
        "In-Reply-To": "<20170703191402.3638-1-jerin.jacob@caviumnetworks.com>",
        "References": "<20170528195854.6064-1-jerin.jacob@caviumnetworks.com>\n\t<20170703191402.3638-1-jerin.jacob@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[111.93.218.67]",
        "X-ClientProxiedBy": "PN1PR01CA0103.INDPRD01.PROD.OUTLOOK.COM (10.174.144.19) To\n\tBLUPR0701MB1716.namprd07.prod.outlook.com (10.163.85.142)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "b3d61d42-80b5-4201-70e7-08d4c247f22b",
        "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:BLUPR0701MB1716; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BLUPR0701MB1716;\n\t3:j0LjLA4edECRmMvsaas4km1ewAYHTYZjsQDxiSFVnVtxZjBX8FOLmqGuZe8dsrFId8vRLfGQUzMe1efOgb8WPFJq9zVf61DJewW00icjonUjztmf6gFirU2tg1HRDIRRsgwLa6Gnae1QYq7Z8bmY2J8qaEQkJdloRT552Q5vzPuyz+2b1Dj1XXbBjoYnX9AxK/fFTpalUy8h+mZtx39k0W7nC9niL4ItmJLcVbeAISn2y/JQc9GMQrR+W7KynR/KUx7jArUGHiCA7Mnd6EpSwL/MNEtHQWSQnjmZPu9lwE8otJF0DDBBczWVIm9jCzfVK3p6pUkzI3HKdoZ96XbG5PGrK76mGmmI3YC9807B+7EZXh7aF5sxQ8mlBqbwIO5N6fSXmxnrt7QABaa/eQNvE99CqT25xeZJJ2jX9qiHDHkUtSZG8pVT9T/G6yAAA0mVKk/XEfmtTg3YnrBpn1PODCMjO9zI0aOkUYNgHL3czeFVVvU3ZkFfni5NnCgk8LFLTTZJ34+K3xlovalUdoyioOvUT+0zmYOOaYD1zcoCHT5++rwEerb2t+IZa4dDZZtrfA4oGyPa8iW3Wp+iC5BkBRJSxTuvLBdq0uoUlAN4HosFcFzhqplCrjxeW74zq2ckyB9Somyt4LVSPUwbGjVCFjQmu6Jp0Vm6dVr+o06ZvIj/uiN83FOGQbpCC2/l6qvgHCxDr0pS+5xU0D7oIExvG52B9IWOO3SPFFkb+3gUEzHWD7YAulcW/kjiMiOf6p/c",
            "1; BLUPR0701MB1716;\n\t25:JFcn2TXWk6c+NdS/IqVvehefpa73YN5Rsgwa+IUsBWFY1fq0ojZ/4JSO8T410i4tE6UBHjiyerZi2iCR5ZjN3VzdEycmJqhaO+FSf79iyaPojAM31PI42I48cDaokgSt+2OmVh9aiyoyHcI5aw9128r+egBbjiNkpBkZdFmj1vw0nv/BZ/59jvPhtr4oxrVK+qtwbYvnYvxFUVMf7I2uo/mq+/Ev+80oG2mfFOW2X/7pINUay9LKnuh6SmyH/Uv0z8ReDBBeai70J8996OlhU7dCeQxJ9KYxx9szDKU4mV5EbJSBgawfXZmYyQCHt2IeDfUp1BQykB06WEnfz3zvzE8D7rui2xeaqQ3MUi0S2SmP/492pt4wz7alhuBmw0IJE8QEtRcTF9vVTS318xpLAbCIookCEApdC2gdSN/Ub6/nvd0p3Ng7voi5Bk1rt+J9jde5dx6rnUMkuj8MZXXZHF5oAb1lAsk3ygsLP9vLRaCDsQf8wAsA81cX/9EyyReK8DBevwCyUooiHuLSnBFMZ2+O0Sib6exOS9ZFX74i9OEU58/rtIevUWeDDBJVKBJfDnh+Rn4HcESz0P4Y037/uWo8Yk+rEwxEgjZhjw6lHR4QpYr0vWqsnb0GiZiacp8P4JjRa9YnjPU4DbZfnmhXYREsapfHqSVrC+Nbdi56MZKcNWEtF8thNUUEDf9948iF1WDUp/RRsu5B0hwBUAnpjhsS6/lN3e1Pc7Z3/xyh5tU3ahaV58j5fuCq1nyNEt5eIIqRCL/U+imdYhsim3CP4lPIHB8MbByYrYVeYeGQVevp8Ffr8HpAGelpXKJfaLOHGQt5FI6oE+f+8asWS5nV6LCRxBYN/OZpMaTP0fasXD5YsKS+N84r5BQUI5VhL2yxMinxfjoiege66exIlxz9WYRDJ1ch04J4AHb/oyHmU6k=",
            "1; BLUPR0701MB1716;\n\t31:WhihVFNEnJkyRqU6LYdEpXfpM61tGai0SqHrKjOq9xUvydlFsnC4oO33snoo/sfvVk+SyDf9Mng5Ifa2J0kW16v7jo4q/2pweFvpLHNlbhrN8R+vtB76gyk/bQOWIUmPnx2js3mhGP2ZFilAEfvXSzIAR374xogApxzJp41P999glMGeiY56uhrwReLKTEnK0PMccnIEczhPLfFM0e6KRu4uBIl+Kzi3pdpQFjrxeDkyXJBygrcr65vcaYU4OKbu/GRUzAgVNWTAqQ/PKEP6Cd5r875GA72b5CvXzJt676U2zXHT9/eRJRhk9j8xVDc4HDxH/h3g2E2hjdjcxNtjHG7yy5SW0owjPaRr930aOt80ElGXqd147ss2BqedhZRjrzF/7oWHj+1lUeB3nZoNx4E0pt7FtCh5QdAzY1pIMa4ky71KifOX9mB1ZpVNVqxIHtkZMbOuaNBErYKKlbS1jyFBkv3mfROnRrhAEGmqa+rixdDUY5wg0mia4MlrNt/yY88EdK3yIHrTgxgDrHwKopTSP/Odlnti1rX5tXpnSktPzyRgEFv69p8HMrWCwc75sN6gJWg3DIPUhzO2ersryr1vnAgY3qHWDOiDRzZPvsXhi07vur9sR3h3XmqUl+xIr/bixZJMaq4KauiYZPdVpP9gSOSBYNko5MMFqLscCUA=",
            "1; BLUPR0701MB1716;\n\t20:vdguJgVzzOPAyPJoLgAMaDU78W48gVjCGTzsrjScuYUl8+MyZlYdl1vKwOZDkZN87n9kwDZwj+cJ/6HQiJTI1im/lT3BWxnM7aUElWDoYWn823m/iuY3xCkMRKM4sIp7Kk0C1e8Dq+ctmBulKqUNXMAUHv1b5EMmYvXX7KlGaW0tIV/xjcvqUh37pPFp6RgH/6mIGEMOv3aJQd/7osCAUTihHCnActaINzY0odo8eRJz10DcTCZcv287lNs/tIzRSas9g2JPGV/dU/03BSj5eaY6hLsGfOSD4DET3bfYx4i09IrcblrO/NdyCLgpv4bPxq2uU8bsLyNYi5f4AOzrAN9+ItDMUn4fmuUYKQ6vjeAN7ZdC/TUN6rQCFCaLV2PDNNyhMsgMGZ7PjxxlhDuHpyXx6kivbO3p3nkAqJPNkPUisJREQgRu536kXL8c1rLbELwrF1k2UxPEULjcD75JOp7kFNXrfQyL5EnEbIbSqZfE5KRDDxtDTKGrDoqCXiqmpFwUg0EKlRHRDlkmR2alXd7eMwaP9vgqLQ96JPSgpZoug6ZAR/V7Kc9Wjd7ys828DGtkwQffIEcJhimxzXFAum4sm0zeESrp6IiX/lQrRnY=",
            "=?us-ascii?Q?1; BLUPR0701MB1716;\n\t4:QtrXYavF0yZzyslP+ZWpzuhGNDRPt7KGEKNRjKxE?=\n\tf+i7dn/54dPy6UJkGMTTNMgkjJPRESQpmKZO2QrxIldIazfnH/qJHP9Ynfm5cd+37EZKVefYJEFEFyNoz38RQ5XTM/Ec3W3u4M3w3SFJK8/8VnXua9gL7sNLVzcpjFrNyheoeI7W1XSK2MLeRjQL7mslRoMfE1Ueg1ZxjlSSA2IBG+DUsL9oioxogaKKcDStBRhvFApr2MROhiXqaNt2RmVjZ8sPFzypQV+56mxBvzXi58O9Crie2JYp82jyzV8BjC63iCcYQf8Z8G+EkI0t6O+PIDr2dyfQShpGUcCED26LPB5b6reCqz1FFg+Ghbzcd8qyYW/TNmKE5Ki36/+gfA35FgdKRURCs9UdhNJndPRZH3MNELa4mHl3XdkFfBGAWQ//kUxph1i6tB2fSf128L6A3qTRWVudg4ZZxlVGAfPjGr7Maf0/qBM+UpJPuyhtALZH4yfgZDbn4oc0DHhW5DsgRcsZdVMd0pCQNyqfxZzyGItSOHG9O3ktuM9ea+NJTjaeAZdgLl+iidE7OtK6fiQeaLncu1n7U1ii4LBQBnEi9b22uBOYaisybDk4XIEVpP4uxAJkftOSxr8lphL2Gi3HXufbHBJp2RO3LS0Ig4ho4M9E4ylcu3pq/bI/sDHJM3Qa+mfDok44rLDGTN4caqaZwQ+qv4P4Nh1V3aDvj6+1gXbrBFg8bC6tTeUm/SZy5NoEN9QNsyZyzKbslwpUciVXk2GGOt/yyxW+l9URejl66mZWKUFYq2VpJCyCe7W4G/z1dNjN7OUe8O6jzTl70swfb/WU0sQ7PTcrus4Q0zORzM7Rxsou22JW+1Pl9nwnEOz+Ut1hsV1VrFO0N6CMU95E3/h6WG64T+IVvZ9prxgPxSPQ20uU7qhfHLnPonoN++aRJ7qin3b3CDFh29Dqehi2GlUZ5EXbBWivUvkP4Ev4yn+R3/ffUkUxGOyH+K7Al2mE6nH/mivZ+ZuiQUOjgqwAihVD2rxFCFrYjHdG9dTsf2bheNmzMGtV5mWTXZl7i4MEzqY5wKrDT9QzJx/FFT6qj8du0l9ecSZCdbIrrhakdrkb53afPWKnkHvHIA4Bd+M2adW/Qo3MlGt/RXXmbaSwj3L37wKDJi1K4Fs4hyBG5rBeWAdd2/G++cS7pN8F06mud2uZjXljE975YERkmTBr",
            "=?us-ascii?Q?1; BLUPR0701MB1716;\n\t23:rs6AN5R2i9ktI3ETaElh/vYOdcmGimgZhq0Ok7j?=\n\tgEgxAfUo3VSkzqH85iysSLXNazcYG5S+XAs0SkWEUy41RQPhuxxyyopy6oQMfUneD/wQ9y4nEHWvwbINA26UqBji6tRit/SCAkmA9NBZF4bBzM3KVnXLeDmDVEIFTk8U5mH+MiOyDq11oqJV7qPuBYrVxd63QI+kSYSMOZPTfHWmrO4sIGDEosdrzzDxto0PVCFIBRmtivN5MNJx9u9bCqA24WGJye66AlNTtmPeSTAAyQN7slalqj6A5v8kmMUEgMjmvAi14JKmPdL8NLN7H3LOMfmv8hRrRL62BuQctaSMoh6Y/rEgmnpU1MiG5jhlmnsrS4xfe0h9lyzu3WU0a2lZwtPIcMWpnsczgXFfBnT3fqUVtY5L3o9+gz4SNt6ryLcyGHIy82SjIhjFIOtlflpYjr+E+oHBkN0yYGMxMhwCkiCGiwTqJlu0Gfb1PtzmfXhztOpL1KUyuyqMGO+J2/j7ExC1h2U8/hbxmmey6slF+44fKEhmUNlcTSw2CjdmGc52wuU8HDtLNRaCNaZCL5mVcYEwUkS/8hO/rOxjJCNDTfNuizJfIfRtaWkNAEuprcoofR4Jum+K2VBCl4BPAvvVYBUHL1R4qKsOGPf//WgMnktWar4bvRDnFyjM8BYKAEUtuDViHWtoCDMYjH0wdSZGcLfUbUbldW8CMWawmTT7YFghKj5ZYPbW442NlvRKI39cRFR5HTLcWkhcAS9oED26n9nROtbCQTkS7eBSPJCxyzPIzfPjpGpdKGN24WMVaINNOFGXJhQabTvZLPe5UScHMuOA0wbGFgBpAn5bE/WUQrrlCl3ykDkW8ixW/XBTcUOZ3n2Cx/VB6FrjUPdz6UgtutZldlQzlf/UJFlBl8/+fTEEf27n7tEMFxJ6kNBpfug53qyK7IyFrrJBMBTkgk1dC/mpESrcXLd4TOY5xufyZtpaq3FhyM5eo3fvFGRaSsHXWFnfl1k9Y6DFoGWDFIWI9Vkz4Glt7FCrvLl9P+aFbgV1p1oTt2ApP8OV5Wbng1ksTkbD9dgGLmKmztWN8KLyU/+x8HSfJACWA351MyHZELX3eNon7isJaKOL+m9U9ozOhL02EobHXfWAwFG8k1T7moB+EI9vpfUHSHFKB08LYlw==",
            "=?us-ascii?Q?1; BLUPR0701MB1716;\n\t6:7fEVUJScyESC5lCZe00xOkKputM7MMUTJDHL33iA?=\n\t4owLAwsNiVRZ7S2lB3Z2XDMeGD7I8yhcZduzbhqZmNcoFwVf/ChoapytFJ0op/kxqMLEL3M1TbF4IKPHCALMoaU20F5RIBwh6ixXD5YhtpiP2iYrlS/kYfZfTAvNqGcjQt19O1b+tHnWY3pm1RmgLo38oeBt+YspacZxlSnfCufgmh0Bm+yA0zegRVL76xfYkZjJi1X/7L3OLKoZH7kJOHC36JIeL9fKC2nMvWFgL5CYxQvc0pDn8Yuwt5aFwYsy0O6hY6D2Tdtp0zaKm36VdgA6/EejthvaFJtZzijy16U7SWHVmAtcmrt8xF5mRdw6obKEGWg9C4ltwReqLOOOr1PBH05mxCnORSWnlfSfDWyh3i3R+LI+KwbWE5Mv5mWsonVbsfbBNdhixGSQMIuHImviLdE+3MElp36FPfhLgj1UHSfLmiTLbYRdsly4tqiyco9UFpdWiG1XNrpDhGNfhVx42o2lktczCm1eLmFlaL+kLeVJ9MthXPnGQ1ZZOVQ4zCFB9tpd7yJrN1bv4/29ZXI688o1fI75zh5kGLzApbtwTdDxeAYtpEhRq4VLQcMQxKLmlXGvxe60eJd6Y2wANCuAhZ1J64/t6YZPu7EcmCX28zGOxO2bI0aHMZMStci8f2ytQzXdZ1mT0pIGxCfhDeXbMhdx8ZI6D5wHSIbDC0oBEzAkwBYRW7/+FDBf96gctxoNMIX/cSTsS9zpJW5MC/EuzSWV6HRYxOT7pgCsjDZS1HaYS55OM1ZhGMPcJLDu20AGwtQJn4NfNJ//c0jfBDSwBDB6AQX6Tn1UZ8t0R7aWjn6YOIFBcYkTg+MN93D00nu5NFmq00du/CN+Tjivjbbu5Uhb0tu8iTsJ9Sy9xkkwkTO+G/DCCABa1CAeFMBjas+VagJsXUzEz4zvNTGSZAJp73gBsd+NoOHIWtmQ8QDx1esGNnYEetWp7d3uk3HJXkE=",
            "1; BLUPR0701MB1716;\n\t5:wzehl3fSGUThrKaygtOptLmcThQ6OcH7DpIMeF5SHQ0QfLNxwngch+rayIAr6DAAqIP/WnYbnsviAcJ61KSXKxJlf0u0Z3ERfSqBBB1hj2tNK84BR5ysIWhB+eszBXAhkgzdVXW2xoT7qw0REqvAs08uqAcFWHVilQljSemE8jCZ4O5xkas3xwyFRVD0SozYsAaHutDhlC2FOZXkieU1s1QNLwSp0Ad5dAV3AGaHirB8YKcWB5j3oWQKjsbSOUXDec0pn/E50E1pIGDmeFhj01yNgoLsiA2Ju8ifvYa2Y7H/DXaDzuScheWoV7U1IVFnrqr4c7ST745BiV7ZG0jZWhvyoLOFoFfJtwvjyoVxaIQffqqnKHX5Xod+VP6kQxphzpuDkKh3rhKJV5ydU+mTJbpt9xbBbb+aPGSVxJDHDGCa2q4V9VbHYIJq9rUkjN4uIWWjWtT4hyk6+APgePQ7UZCTSIz8DUF5ViFSgP0ihE4JPdg2yrMAtk/qY9Ib4igh;\n\t24:HJRpR793oereHWO4sHvWOj8cTcZtZiQrJ4Iz/p6YRKVR4Be3lzuCAalUEGpGMYssEy0qW3Lw9Bee0LqOwQWxic6ENNIGuuQLGppxA2PttcY=",
            "1; BLUPR0701MB1716;\n\t7:58yapm7kyZJGuJdZ9LVRuYAosCp4jAq29sGtxzlqdqTUQEygUxLkaSley1l44O/d+1VFPmd3CSm0ih67XygD0xKztNY7kX6HwL5k1VNeBEHwIZcxhIBJMum2zrcu4ANTIamTyq8kylplyNGqQWTJ50HjCAP8ElGaAjx2HPc+IQfxxZqd0hzH2ZpV7xdNwzcKjEE/KFikIokUvyRxngD3F4SwOjptV7SlCBPWdjDG7MKTBCwD42c3cC+OAcmtCXGqfN4NL9HcrLD6Gs2CwN/qwxLwdjYALAEO3bCpndTN9cpipBOfubijxLsKSC9DS0gDnWs2P/SRxXJJ+1S1xlHcw5/yhH1A3ht9JfNFtegENX39cs0C0c1vAiluZR+IBB2AQ7yizpbJ4Zw3ILG1i/sFUIQgpNddl+GxLGnF3KuRZeYQdK+3AoiiNIP20cCoGD7geSYP+I8onCzkmiICYidCgG+jk8w7zl+6FAH63GdXRGskkne0UvVbe3djjFX4zhE3L+ofyEG/of2Zz90n1SO98sSPi1MP/3oInV7C/3yxAzi8xB+9xpgUYxIvTrCw+wR31jfowN5or5Qv40P5V+eTYv1LJC7i8DOsOYf1HkZ6+7rBeIXgPjXfaJ0gqOqMyEK3jHhq+2tEtvL+KtsOCfm+xDM3SbpnNgxHFw70HISgYX0guv14v0gWhsKdYYkMzEda9j8wZLWmI2H6Fy7NrghWpNjI8nACFp07OJ8yrpkQCqW5rDW1Ouknbs7LadgDy2m3sSg4IOiAApun8/oV/YX3aTLMD7DXuV3YYvRl837EHEg="
        ],
        "X-MS-TrafficTypeDiagnostic": "BLUPR0701MB1716:",
        "X-Microsoft-Antispam-PRVS": "<BLUPR0701MB1716E6C98046BE0CD458168FE3D60@BLUPR0701MB1716.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(228905959029699)(247924648384137); ",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(3002001)(10201501046)(100000703101)(100105400095)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:BLUPR0701MB1716; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:BLUPR0701MB1716; ",
        "X-Forefront-PRVS": "035748864E",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(4630300001)(6009001)(39850400002)(39840400002)(39400400002)(39410400002)(39450400003)(7736002)(478600001)(53416004)(72206003)(38730400002)(110136004)(107886003)(42186005)(8656002)(50986999)(76176999)(36756003)(6512007)(53936002)(4326008)(25786009)(5003940100001)(6916009)(42882006)(2950100002)(66066001)(5009440100003)(6666003)(2351001)(2361001)(6486002)(6116002)(189998001)(305945005)(33646002)(5660300001)(81166006)(8676002)(3846002)(47776003)(1076002)(2906002)(50466002)(48376002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1716; H:jerin.domain.name;\n\tFPR:; SPF:None; MLV:sfv; LANG:en; ",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "03 Jul 2017 19:15:59.2480\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BLUPR0701MB1716",
        "Subject": "[dpdk-dev] [PATCH v2 21/34] app/testeventdev: perf: add opt dump\n\tand check functions",
        "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": "Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>\nAcked-by: Harry van Haaren <harry.van.haaren@intel.com>\n---\n app/test-eventdev/test_perf_common.c | 109 +++++++++++++++++++++++++++++++++++\n app/test-eventdev/test_perf_common.h |   9 +++\n 2 files changed, 118 insertions(+)",
    "diff": "diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c\nindex a44f2df5c..f889b1a59 100644\n--- a/app/test-eventdev/test_perf_common.c\n+++ b/app/test-eventdev/test_perf_common.c\n@@ -41,6 +41,115 @@ perf_test_result(struct evt_test *test, struct evt_options *opt)\n \treturn t->result;\n }\n \n+int\n+perf_opt_check(struct evt_options *opt, uint64_t nb_queues)\n+{\n+\tunsigned int lcores;\n+\tbool need_slcore = !evt_has_distributed_sched(opt->dev_id);\n+\n+\t/* N producer + N worker + 1 scheduler(based on dev capa) + 1 master */\n+\tlcores = need_slcore ? 4 : 3;\n+\n+\tif (rte_lcore_count() < lcores) {\n+\t\tevt_err(\"test need minimum %d lcores\", lcores);\n+\t\treturn -1;\n+\t}\n+\n+\t/* Validate worker lcores */\n+\tif (evt_lcores_has_overlap(opt->wlcores, rte_get_master_lcore())) {\n+\t\tevt_err(\"worker lcores overlaps with master lcore\");\n+\t\treturn -1;\n+\t}\n+\tif (need_slcore && evt_lcores_has_overlap(opt->wlcores, opt->slcore)) {\n+\t\tevt_err(\"worker lcores overlaps with scheduler lcore\");\n+\t\treturn -1;\n+\t}\n+\tif (evt_lcores_has_overlap_multi(opt->wlcores, opt->plcores)) {\n+\t\tevt_err(\"worker lcores overlaps producer lcores\");\n+\t\treturn -1;\n+\t}\n+\tif (evt_has_disabled_lcore(opt->wlcores)) {\n+\t\tevt_err(\"one or more workers lcores are not enabled\");\n+\t\treturn -1;\n+\t}\n+\tif (!evt_has_active_lcore(opt->wlcores)) {\n+\t\tevt_err(\"minimum one worker is required\");\n+\t\treturn -1;\n+\t}\n+\n+\t/* Validate producer lcores */\n+\tif (evt_lcores_has_overlap(opt->plcores, rte_get_master_lcore())) {\n+\t\tevt_err(\"producer lcores overlaps with master lcore\");\n+\t\treturn -1;\n+\t}\n+\tif (need_slcore && evt_lcores_has_overlap(opt->plcores, opt->slcore)) {\n+\t\tevt_err(\"producer lcores overlaps with scheduler lcore\");\n+\t\treturn -1;\n+\t}\n+\tif (evt_has_disabled_lcore(opt->plcores)) {\n+\t\tevt_err(\"one or more producer lcores are not enabled\");\n+\t\treturn -1;\n+\t}\n+\tif (!evt_has_active_lcore(opt->plcores)) {\n+\t\tevt_err(\"minimum one producer is required\");\n+\t\treturn -1;\n+\t}\n+\n+\t/* Validate scheduler lcore */\n+\tif (!evt_has_distributed_sched(opt->dev_id) &&\n+\t\t\topt->slcore == (int)rte_get_master_lcore()) {\n+\t\tevt_err(\"scheduler lcore and master lcore should be different\");\n+\t\treturn -1;\n+\t}\n+\tif (need_slcore && !rte_lcore_is_enabled(opt->slcore)) {\n+\t\tevt_err(\"scheduler lcore is not enabled\");\n+\t\treturn -1;\n+\t}\n+\n+\tif (evt_has_invalid_stage(opt))\n+\t\treturn -1;\n+\n+\tif (evt_has_invalid_sched_type(opt))\n+\t\treturn -1;\n+\n+\tif (nb_queues > EVT_MAX_QUEUES) {\n+\t\tevt_err(\"number of queues exceeds %d\", EVT_MAX_QUEUES);\n+\t\treturn -1;\n+\t}\n+\tif (perf_nb_event_ports(opt) > EVT_MAX_PORTS) {\n+\t\tevt_err(\"number of ports exceeds %d\", EVT_MAX_PORTS);\n+\t\treturn -1;\n+\t}\n+\n+\t/* Fixups */\n+\tif (opt->nb_stages == 1 && opt->fwd_latency) {\n+\t\tevt_info(\"fwd_latency is valid when nb_stages > 1, disabling\");\n+\t\topt->fwd_latency = 0;\n+\t}\n+\tif (opt->fwd_latency && !opt->q_priority) {\n+\t\tevt_info(\"enabled queue priority for latency measurement\");\n+\t\topt->q_priority = 1;\n+\t}\n+\n+\treturn 0;\n+}\n+\n+void\n+perf_opt_dump(struct evt_options *opt, uint8_t nb_queues)\n+{\n+\tevt_dump(\"nb_prod_lcores\", \"%d\", evt_nr_active_lcores(opt->plcores));\n+\tevt_dump_producer_lcores(opt);\n+\tevt_dump(\"nb_worker_lcores\", \"%d\", evt_nr_active_lcores(opt->wlcores));\n+\tevt_dump_worker_lcores(opt);\n+\tif (!evt_has_distributed_sched(opt->dev_id))\n+\t\tevt_dump_scheduler_lcore(opt);\n+\tevt_dump_nb_stages(opt);\n+\tevt_dump(\"nb_evdev_ports\", \"%d\", perf_nb_event_ports(opt));\n+\tevt_dump(\"nb_evdev_queues\", \"%d\", nb_queues);\n+\tevt_dump_queue_priority(opt);\n+\tevt_dump_sched_type_list(opt);\n+}\n+\n void\n perf_eventdev_destroy(struct evt_test *test, struct evt_options *opt)\n {\ndiff --git a/app/test-eventdev/test_perf_common.h b/app/test-eventdev/test_perf_common.h\nindex 442ec99b8..5c56766e5 100644\n--- a/app/test-eventdev/test_perf_common.h\n+++ b/app/test-eventdev/test_perf_common.h\n@@ -86,9 +86,18 @@ struct perf_elt {\n \tuint64_t timestamp;\n } __rte_cache_aligned;\n \n+static inline int\n+perf_nb_event_ports(struct evt_options *opt)\n+{\n+\treturn evt_nr_active_lcores(opt->wlcores) +\n+\t\t\tevt_nr_active_lcores(opt->plcores);\n+}\n+\n int perf_test_result(struct evt_test *test, struct evt_options *opt);\n+int perf_opt_check(struct evt_options *opt, uint64_t nb_queues);\n int perf_test_setup(struct evt_test *test, struct evt_options *opt);\n int perf_mempool_setup(struct evt_test *test, struct evt_options *opt);\n+void perf_opt_dump(struct evt_options *opt, uint8_t nb_queues);\n void perf_test_destroy(struct evt_test *test, struct evt_options *opt);\n void perf_eventdev_destroy(struct evt_test *test, struct evt_options *opt);\n void perf_mempool_destroy(struct evt_test *test, struct evt_options *opt);\n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "21/34"
    ]
}