get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 28035,
    "url": "https://patches.dpdk.org/api/patches/28035/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1503936405-23839-1-git-send-email-pbhagavatula@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": "<1503936405-23839-1-git-send-email-pbhagavatula@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1503936405-23839-1-git-send-email-pbhagavatula@caviumnetworks.com",
    "date": "2017-08-28T16:06:45",
    "name": "[dpdk-dev,v2] service: add API for service count per lcore",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "d5f0674cee6b529e5793bb50425b1aac768ef894",
    "submitter": {
        "id": 768,
        "url": "https://patches.dpdk.org/api/people/768/?format=api",
        "name": "Pavan Nikhilesh",
        "email": "pbhagavatula@caviumnetworks.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1503936405-23839-1-git-send-email-pbhagavatula@caviumnetworks.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/28035/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/28035/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 E16731E2F;\n\tMon, 28 Aug 2017 18:07:15 +0200 (CEST)",
            "from NAM01-BY2-obe.outbound.protection.outlook.com\n\t(mail-by2nam01on0078.outbound.protection.outlook.com [104.47.34.78])\n\tby dpdk.org (Postfix) with ESMTP id AB3851E2B\n\tfor <dev@dpdk.org>; Mon, 28 Aug 2017 18:07:13 +0200 (CEST)",
            "from localhost.localdomain (103.16.71.100) by\n\tCY4PR07MB3464.namprd07.prod.outlook.com (10.171.252.145) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.1.1385.9; Mon, 28 Aug 2017 16:07:11 +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=6U8KCdmjZAymf7co9J8bvAybbTYbmWfOi4H4lIM/HNk=;\n\tb=frPDVPJ70lH5Fu4n/QWtqorQj/0d25V+V403YhhJkP4dMENQG6Bd+uWJB3X74Ewo6WrBT/usVx9A/SEwaWV2bi9ZpSWNazd9S10/2J4be9im02l0MGLJ4zooxFBOlfBnxgoofES+h44kOrZ50zJgJa/o7vDXM5TjROMftZzAGAw=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Pavan.Bhagavatula@cavium.com; ",
        "From": "Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>",
        "To": "harry.van.haaren@intel.com",
        "Cc": "dev@dpdk.org,\n\tPavan Nikhilesh <pbhagavatula@caviumnetworks.com>",
        "Date": "Mon, 28 Aug 2017 21:36:45 +0530",
        "Message-Id": "<1503936405-23839-1-git-send-email-pbhagavatula@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[103.16.71.100]",
        "X-ClientProxiedBy": "SG2PR0302CA0011.apcprd03.prod.outlook.com (10.170.129.21)\n\tTo CY4PR07MB3464.namprd07.prod.outlook.com\n\t(10.171.252.145)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "4c105717-0c44-4595-db13-08d4ee2ed7fd",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:CY4PR07MB3464; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; CY4PR07MB3464;\n\t3:qNmcX72OmoF03MWxrMru8LSJJTFtAE/I30Z9+pQ2d0eXNbNadnyT2mgOyD0IjMz8ekiLyIqhYhTKv2+os5ZNFcmjE9WNk7SZKOmgF6IYzzTMXnAPa2WC270POtHK0EsdFdYme3LMGwV4QmN4FkdF7OK48yy48bfX9AvwXWWgZdobnb0NGA154ocgymVhTjvZ+Hhf/RFL/LGqcC5TeQW8GSKF/iWVMN5jQZmoL5MaLPeR/+wSq2Hr88UoFEtrqETU;\n\t25:s2Ledg7P8o83RJAR5kmBo9CD43lGtyEUz1NUhV9nrnfj9L/K9qKioIS0qqgJRyFu0quCkIO4STudnOjhlPq/IL9j9NQXAZ7KJ0y41JEd2/VvEgH22mFuVhQq+qThvs7FD1gkNhvMWxIaeTb8/Y/l2bTP7DwnYMsB1OdIM8im4Swbyz/ysaphxsuoyY40ouFF1lb0t6LGazxtnpo71wBtvIPhdwehKdaJExaLZWKE6kVqB+xudQGIaVnd6Zntj5M5BfmbaPZuliJ+KcleGL0dQQ8LYLofhZm6jGrAwAWFCCuBdKnOFITGfXkE2Gy9YJiV6XSD7hqD340ljiO08cRT/w==;\n\t31:TwQonN8HxnvIUtuRq00oaHpM7QgMMRNlvDFfkwK36ILoNbROL+AgLFvsqQxMxmGMxn7r9hNSnleE03eonFSUiWymS+aexu7zg+LQJvoanpCkHZwXVoNG4e3LrBWHVO/yVi9hNgtGX+LBDyxeNiTffJ/yhmuWomoYD0sCvMU3az6TO/dTRPe0OGdti3kHXjnrzMHBjZi79ggPXS6Vx+moMRlNhKdYdQEiNA92gDC4y04=",
            "1; CY4PR07MB3464;\n\t20:gftUTDkUvU9KbbU/Jmz+xVq2YRjAYbIodRuHkfbABjmcR3LDyn2cY/mP/YkhFGery/m7/pY73aXJ8Mi6IJfjCudfjGOM+aVxgr98r4te+2sH7Cr1yCzUoioWtip3WY6dGXOQoA9LxiCPuQmcEv+GNdsjBgM5ECqz93lsuigrQeqXNYikqPXwMzhGoSppCN6FAydS/feOk4z/g7JLJ8hA9x+dwFJ/VNccZAP1MjRryqFkTPxeRURw7GXvvOewoLJHaL/4uhzuQBrgCdpjxxX7mozgkmpGNPNawD+Notndm4I3E5RmHrNyokOO88n+ToZdME0Vs9X4a6Rt5BKlbTAiXYvymwiG1+WsFetBbn1QldF0J743DPlr3tUVsL3a7j6sPq6apmTUmRowrLBFx1VP8oycFVdc3kf9XpZA8tPoitrcvN53lJt0xVnVXdBJRR7ZbT5bu9ioi+W0rw4dG9sACSqzbEf4+R09ZDECEch3ZnvfQpVMIlwFWFdPUEC5KZ7GaNlZtjIruAmJzHvOd46ZEiYjlct+xBw3BHTct6j5NQB3/pAPFT0V35m6T0Or3W7iYqWFz7OQco21tnL4k/AeR+v9I+I4nc4FogppGGD3x9I=;\n\t4:nyghR9IOA7mIyMrvcF0oC6xG4LBI8RHm4nrR5SU1y+AvvWCRbeUwwPVzg+G5/seB1wMVJllvm7+qF4vHKFqHp7jNqkJJ0h9ffPrz+mvO09hJH4tCP5uK7Go5ITq6wXMwQ8um9/SkcWOIHevuzLM1E6rFn76L5ChqjTlLQrBTBiEuU28nSjaNo8lcEW7wQEgteRJLUpMUiQ8bqvTYOBe0qMnFsSfoxuMbqz9m0+Qy/FvGGOCsSSq9Gm3d3fg5Wh+J",
            "=?us-ascii?Q?1; CY4PR07MB3464;\n\t23:8J11dy21qlb6v9JQmun2ZSEohd3vsakwRUBLrnjAB?=\n\tP2Vkwi7Y8JatIxVwwJ03QKM64/AVP2adxx6CLoWhY5mpAlncpJqnhKBlurV64njqHzEtB/oJ7OrQ+W2L1FWkAZoRWSEYcirDETBbeDmTaKEb1R03Dkb4FsKvUOqOg43vIK+xBlOnQisZr2mrTXDg05uVza7utszoG/9emJWWkTjeKskLPct+EUcH2/JjHAJY7Wi8zhnZwBtBZgCf9zaC2FZ5mNZsy5oaQK1AdCovviIMJmkC4WWFVZUpvGPOJojCFLp9IdDRQeXnlOw+j/7msXfDcD9KtjT26yx7YPp4ywh+g5QE/oStcDnNNmFoo1UWiQdzrhyPuOMhaXzerRl9NsZiSrOan8TsPqEVy5UlWriZbWQ922mo9mDEKJBXnw9cru1tHRpVY4XFM3SfwcBeWSjR0KqE1svMeKOwwz+lV/4vlV8jixiwMqclTrIAo4A4qoe8iU1RHXB2fP4UxOvxw8Z0Lj9WAJTiidvCBRRacrtRyWtkJyhP9tP1QWm9UU5A1RlCTwnkLSSDEGPX784ZKN/PmdGYWLXHvoJwgYTlQC2UZzUPv4eC5MYp0KPZLi26ynNUVSlUJGZu1n4DfSoFDlZZBDiWF6AjtQkcSMkuhL6gz+L6s0hETKy52jm8iglqXhYhoKq7drfRqeFqV2wCTJoK7NlfoquQzcaqlPMpwMbPk8vClr2JHVQx/g1zDjA/V5aKqVpwNZdj/e9QXY5oZt5L5CHkvUtJ/XCR337zmsMByR7hIvMKJkz6BeZLA4oU1zBVEegE7gF0y9aGLOM5uhQs5iX82OG4WExd+gGP/T/D0k6wZ0fRAYMRqBGYJFo1cgN0CSdBfqizHU3Yl96S2He4ACBiFvNlEz393ttSpEuPAAgUr4fNQWcJBqB7dE26A1ljkaWbi8Xetyhl9BZznbgZ/YFWYSpQMV3K/TCF6EMgcgCKH080vl9Ij8gTNRJFwWT3KUSAiTZiYyK9wCyINnFJVOSlTugrQC0fdPwZtaLVVPxNVSi5D/DJDDRvm6POjggABnRh6P2MFpGT/wOQeaN4lnok67v62DENAJcl9iRYHBX6EX1suUGS4pvIB0s8jgdoJ99+EcF+554YiwFh6AX1vIAsAQQ6U6td1AuH6X15Q==",
            "1; CY4PR07MB3464;\n\t6:t4vXDRyE3V+aU/rVEKKvBZUNovLsil0OigBjnFLoTnflIKAIFM08//vK4KwnWfS/wqFrOmgJjX/UiH4k1f4vV1wrvixoRjFLjE39GHUKGv6vKh4eeX6YOfiHXiFK4xBkjcitFdX+gE660FCZHmdZavqska7lYZLbM7pMUtWC+820D0g9f/C1I8n0jw61Cz4mpVOvyLCWIb2/SdL5DIhPOXfqCbFW/V1QANF4Bzc+4Ls2X2Nz/gpUBDmE8PTN5lH1AybMsvuDFt75pZDwq5uRl2sjxtXkN8s0+Pb3q966KPZKQ/TlPI408fydo2W47DlsvBZYteBJjD5qwyaCjxTUYA==;\n\t5:FjcmEs3yKAP654yB8wfZHbzry7AWsenOfuHNGDxxIvDFLN6JJ3XIlTZSXOQrrcLkjo9oa+y5WUUtxDTX6kNFg4QkzYWhf5pB1KVSuzoTXPdpaUX3Lu8rPlX7DbeJ1npohMI3kI1+Q+G/WMFtRQQUUQ==;\n\t24:7ZvkWOckywtRRelmBr7InXoiPIntUrblg9Ab82f3NbXgFFgbkQeI9wlsXK2FEOP11/XDZhkCWn+cSoTSCtarmxo1evZjV5r7jDNG6qxZj6c=;\n\t7:n68eeytgX0Sotc+7np+ZFqj5SqqLe+sYEFz++DL53GjrUyqCDup4Ge6Gs/3U7GntbP0oBFukvqCjCTMUU9fbisCxZbsXxEERrPae0BacWpeK/3FoRQtkNMqt3sdIuB3ZRToDZeUUj/Vuqu986+eLur86o6Ozq4rX4JvfJIGozqb0KfykAOvIUBV0rupszVUlPoax0gVNMwYshiiKuYFaUX9s4p477yKtLyUtIUmSyoI="
        ],
        "X-MS-TrafficTypeDiagnostic": "CY4PR07MB3464:",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Microsoft-Antispam-PRVS": "<CY4PR07MB346427DDB9DF34B377479741809E0@CY4PR07MB3464.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)(8121501046)(5005006)(93006095)(3002001)(100000703101)(100105400095)(10201501046)(6041248)(20161123558100)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:CY4PR07MB3464; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:CY4PR07MB3464; ",
        "X-Forefront-PRVS": "0413C9F1ED",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(4630300001)(7370300001)(6069001)(6009001)(199003)(189002)(8676002)(50986999)(105586002)(106356001)(101416001)(4326008)(305945005)(50466002)(33646002)(68736007)(189998001)(48376002)(5660300001)(50226002)(2351001)(72206003)(7350300001)(3846002)(6116002)(2361001)(110136004)(42186005)(47776003)(66066001)(5003940100001)(6486002)(6666003)(6506006)(478600001)(42882006)(6916009)(36756003)(25786009)(107886003)(6512007)(97736004)(81156014)(81166006)(7736002)(53936002)(2906002)(42262002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3464; H:localhost.localdomain;\n\tFPR:; \n\tSPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; ",
        "Received-SPF": "None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "28 Aug 2017 16:07:11.3688\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CY4PR07MB3464",
        "Subject": "[dpdk-dev] [PATCH v2] service: add API for service count per lcore",
        "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": "This new API returns the number of services that are running on a specific\nservice core. It allows an application to decide which service core to run\na new service on.\n\nSigned-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>\n---\n\nv2 changes:\n  - reword the commit title according to the check-git-log.sh\n  - modify return types\n  - add function to .map file\n\n lib/librte_eal/bsdapp/eal/rte_eal_version.map   |  7 +++++++\n lib/librte_eal/common/include/rte_service.h     | 13 +++++++++++++\n lib/librte_eal/common/rte_service.c             | 13 +++++++++++++\n lib/librte_eal/linuxapp/eal/rte_eal_version.map |  7 +++++++\n 4 files changed, 40 insertions(+)\n\n--\n2.7.4",
    "diff": "diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map\nindex aac6fd7..5fe8d79 100644\n--- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map\n+++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map\n@@ -237,3 +237,10 @@ EXPERIMENTAL {\n \trte_service_unregister;\n\n } DPDK_17.08;\n+\n+EXPERIMENTAL {\n+\tglobal:\n+\n+\trte_service_lcore_count_services;\n+\n+} DPDK_17.11;\ndiff --git a/lib/librte_eal/common/include/rte_service.h b/lib/librte_eal/common/include/rte_service.h\nindex 7c6f738..9537ae5 100644\n--- a/lib/librte_eal/common/include/rte_service.h\n+++ b/lib/librte_eal/common/include/rte_service.h\n@@ -374,6 +374,19 @@ int32_t rte_service_lcore_list(uint32_t array[], uint32_t n);\n  * @warning\n  * @b EXPERIMENTAL: this API may change without prior notice\n  *\n+ * Get the numer of services running on the supplied lcore.\n+ *\n+ * @param Lcore Id of the service core.\n+ * @retval >=0 Number of services registered to this core.\n+ * @retval -EINVAL Invalid lcore provided\n+ * @retval -ENOTSUP The provided lcore is not a service core.\n+ */\n+int32_t rte_service_lcore_count_services(uint32_t lcore);\n+\n+/**\n+ * @warning\n+ * @b EXPERIMENTAL: this API may change without prior notice\n+ *\n  * Dumps any information available about the service. If service is NULL,\n  * dumps info for all services.\n  */\ndiff --git a/lib/librte_eal/common/rte_service.c b/lib/librte_eal/common/rte_service.c\nindex 7efb76d..616bad3 100644\n--- a/lib/librte_eal/common/rte_service.c\n+++ b/lib/librte_eal/common/rte_service.c\n@@ -397,6 +397,19 @@ rte_service_lcore_list(uint32_t array[], uint32_t n)\n }\n\n int32_t\n+rte_service_lcore_count_services(uint32_t lcore)\n+{\n+\tif (lcore >= RTE_MAX_LCORE)\n+\t\treturn -EINVAL;\n+\n+\tstruct core_state *cs = &lcore_states[lcore];\n+\tif (!cs->is_service_core)\n+\t\treturn -ENOTSUP;\n+\n+\treturn __builtin_popcountll(cs->service_mask);\n+}\n+\n+int32_t\n rte_service_start_with_defaults(void)\n {\n \t/* create a default mapping from cores to services, then start the\ndiff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map\nindex 3a8f154..e848c45 100644\n--- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map\n+++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map\n@@ -242,3 +242,10 @@ EXPERIMENTAL {\n \trte_service_unregister;\n\n } DPDK_17.08;\n+\n+EXPERIMENTAL {\n+\tglobal:\n+\n+\trte_service_lcore_count_services;\n+\n+} DPDK_17.11;\n",
    "prefixes": [
        "dpdk-dev",
        "v2"
    ]
}