get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 28060,
    "url": "http://patches.dpdk.org/api/patches/28060/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1504009971-11282-1-git-send-email-pbhagavatula@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": "<1504009971-11282-1-git-send-email-pbhagavatula@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1504009971-11282-1-git-send-email-pbhagavatula@caviumnetworks.com",
    "date": "2017-08-29T12:32:51",
    "name": "[dpdk-dev,v4] service: add API for service count per lcore",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "eed4917e07c7351131589a686858f07bf4cd10a9",
    "submitter": {
        "id": 768,
        "url": "http://patches.dpdk.org/api/people/768/?format=api",
        "name": "Pavan Nikhilesh",
        "email": "pbhagavatula@caviumnetworks.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1504009971-11282-1-git-send-email-pbhagavatula@caviumnetworks.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/28060/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/28060/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 3EFCE137C;\n\tTue, 29 Aug 2017 14:33:22 +0200 (CEST)",
            "from NAM01-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam01on0088.outbound.protection.outlook.com [104.47.32.88])\n\tby dpdk.org (Postfix) with ESMTP id 1A22B11F5\n\tfor <dev@dpdk.org>; Tue, 29 Aug 2017 14:33:20 +0200 (CEST)",
            "from PBHAGAVATULA-LT.caveonetworks.com (111.93.218.67) by\n\tCY4PR07MB3462.namprd07.prod.outlook.com (10.171.252.143) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id\n\t15.20.13.10; Tue, 29 Aug 2017 12:33:16 +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=yYlVkUF2wTos93pA9xA+uZddu0ow7cse2qpSt2Ry16E=;\n\tb=jSzC+uOvnHI9uz7aDoXtODMLXrJ0wvh1vXjIfqsxCmwbAOdEpkkEFmp8ueNTZkrxkhtJyC65shABl/RxrkWliuiHwJgTHXvAe9WJujM6s0jxMwTa3+FCLVCPm5jTRjYK/UbjjCUTce2c5SpaiKe0Yflg8hb2+6Cq0SDVYPNT5VA=",
        "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": "Tue, 29 Aug 2017 18:02:51 +0530",
        "Message-Id": "<1504009971-11282-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": "[111.93.218.67]",
        "X-ClientProxiedBy": "BM1PR01CA0080.INDPRD01.PROD.OUTLOOK.COM (10.174.208.148)\n\tTo\n\tCY4PR07MB3462.namprd07.prod.outlook.com (10.171.252.143)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "8b6b4a22-b928-4546-b796-08d4eeda2012",
        "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:CY4PR07MB3462; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; CY4PR07MB3462;\n\t3:JztEKwMz9IfupYU4qDch3hsntrXWRiaJnHsNTpQlBifjRSP1J716AMukaYDCcZlWkM8l1jmlVGNwhjHdiOP9yfuXeGp/P78UCyG/2FSBjMSX6P+fIYkcgkyCTvna5VlIFlyhi4RdXHXw6yp+Oswc4vzhqg90i78MU2yzkPn430DqMKk116hG6bKcclRpXmnmpLkbiPIgfjrGdrdfwsgo0OFFneOP7LGNVmnSpA31dRT39/1pmEsQJr/AbOQk8W0r;\n\t25:/MZr1OCBdhw/8m1JPagXU2+L1k82Fi+ChjepUvjs2aIL4rEvhpjdsxsM23i30Ftc0OtpKmBSZ7OoJt9ilU5Q4PWj10lMMLZbc98LL3DX7ofUik8x1ex8jY6FBu+JWZoU/I03k2XSQoT4Vfp3Kvupb62VrKjTA8H2nBcL2ibUvoXHz95fkRxI6z793NL/dTRxvphTWxBlNDSOU1b3khKAWf+gRcWBggZRe3oH8LluH7zsuv3EC20XfUkz6s3KeII9yRwNEmEys27qdCufjozL9TDDuM5Tb2JHmlZLEL5jzev5gQWIiNt9RheVExsiWiPchMlYQtmZ5YTLnMX7KSAs6w==;\n\t31:e6gBfKSiKu4pdS4+n2kux6UgMzwJjIyViccXMUemvF6FVhjbjI4smbxRrnzi0MegUzzSNyPwDmEKheYOkC/1Qq8nQ9q2X63+voiKhaoEOMUwVdleYPE6R2pCaHeoEN6Yqo4Sa0HsE4dYkzLW9x1mkBdc8fQSYkEvKfeFuAZr/tFfs3iX83lIp0b0Xa+VRQYmkwtlWoVpQeK59cALfg9UIbHloFN+ATeE4GnCL2dnChg=",
            "1; CY4PR07MB3462;\n\t20:CG5DR3qy7YQswS0SV/gQDvE36uUDVN1Xjg/xeBfSOxLZNCvAdqRM/fobCgAm033LzieqTnt0sK/ayU4y6PsGaxLa38uBgzSrtb7w5HcJ7E9srRqZsMLNRxjmZyKAoeKnL2eqILIeL/XICL/IcTBX037FqskA+kb8FnT9Io5F/A2t+D4PSSN987RaN9j6EH6HIRaGq3tRVIw63sVEbwxu6fb1IXEUalQ1UBNpY9ENHdVBzAFtQiFUpCk5Fwq6hFYH4mYyk6Onyg258ainzlGuVecMbpphoFStD2L7Q5NpiA+9muQYP5e6ni5NK5HJoK3aI/P4NaHsuwWZPKthZX5PpzcWCJRdwg9UtqiZ784z4NGJcqjFYZjRSFIr0lUOEwBHwHuSH9gCNjZkVV221uk6ncD6wSV85hhV+k7k7bbX0GqlTsZ8zjFqwMGfg7ZjcDOHbvlO5dQspL7ej9UBhxnebi+d+sq/647dNfhr3ONj6lkQHlHuak6ymTMxmbNe3dC1NVuAgQpqTYugGEqCblSolkFdJRAvaFTPrbT6vdHIEhxb2KLAFij6Hc6InymZ0UqHiAG6y4pcBgfWcrOWLS9c/wNsS3p7uL/jRayvQODwhzw=;\n\t4:TkkNcBXSs3LYkOM2U6XtUIpCdxa7F43w4R5zib/AXx9LWLjub+BEv4tRMw4C7QROoc9zw0vYgUwCb5LpQNCvoeRzdyS5w2TUhY0h9i8HoJnfyjuRttkNd53nkb18/TpzHXjeOc2k2c68DGYkDH1m19KN7gxSZ+QBMZpRiu+6OhIf6lOXxRLIF4UFydTHcOi5RErLWqrgRT/pcPmlGeo+Ztl/CAfvHvV2OxwcisJQXVyfb8Yk0UFrj1dyJo2L4amX",
            "=?us-ascii?Q?1; CY4PR07MB3462;\n\t23:LBMs0qqDQ8Ofh9LV8Xg/9uda2LlArJadNP7djX0zd?=\n\tkXyW/oCtL+pwWF5WqLshmJ3kORFFZsLw8ImScT2bvHVr2/lBXDml84C2ix9ooNCfwi78BeUUVAJmstoUNVnrJR5TKKaCdlKBTZqPn7hGT1TR/31WM+Uy5KX3TNBNb9XwhqFagpkkNcMDb7KsxnnBsdlwkaTP+xE2ZoX3eeUrruCkY3Wjh2VJtZXwFSry6R+4799Nt2zyI32JLaCgX6pyA13iMHWj7MSFrd5m1TpXMKF7QIMI7pKuUo56V7EtE1F9+EHgL6G3L1V36Fd7lQv0DZfsH8NCvOqy1fqtAIGKj3hg8t7rZE6ToLIeFZcUg7+P4zGt4Thv7nGtILAB/h8I2VawGlXX6T+9MYv/ztAznYQVoOkmgw5uGrKCE+wKpknyM8xoCyil38bbhEuayzTMKqozUBpaS1G/+9bn6SBG1fYmqJipXWG9lcqXqRWPr3uzZvQCWtboq3Z0pC4gPyq0NhItC9NqfAkb5lQRTi3oPyB6oFrjVycAHSexEbr5Gcx1EVez0mK9De1pTrcc1ghg8nQDvDEcoIRY/KEMVGM3FIOzlsDZDA2SMsNsqzFvceT9LAhM6abXQf8jEUvVRNMn7sdfzAdW0h3wCdW2cSMCLeqv1cGS2Gl2hsvyJG6Shuo276QOSOHufeQxKKhuB+NiMwvaFnUE0vrc0S95f8GBo5jfbCuiyTl7AQ3dseXM+DhSJoZ/H84eQ8za/sSU+6yei1RABBosgucUzM1Y8wI3x0dLHSfwB0Co4//rl9cL96pl64KR4dvQTmja3fHh7rChyj+qRbOrfRkxXxjS054m7ZtD955LD7DtgdRBdGP76NrgXpLDk85KjmWqA0rDFh2s6YBrJDHSExpwVzhcaciW3kOGHxvPy/XSjIAhFHsgmJgvjAGNrKn6qmLqMzD14CSNF+eDSGAkwkriBmQXQyuBfYJjIDnfB3RrQwK7db7Si0Wml8pkDcMLDY1EJCxsshlA2eTsdRW5IFx9n1qa2J75MUzkKyl/df4zZsBjJ4rh1eyp8kKy0yiPM1hRyMtvab/g1PD80j/0Le2GcfKo8YRfJZEPXeVFCv6XlSXWFg+R3rI959woc2WitZblQIZ/iNhnSnxGDuttlxqaFTUKaCjvmuX0Jqhv2GKRqwoD81xiy3YH9ynxv++0Gh8oatcpSozbsvr",
            "1; CY4PR07MB3462;\n\t6:AkH+G77XXoqOpt2Y0fVHTj1jlJHZvdFwi2O5+7uCRBxTFEmSj8YUMBwDH5/2rZgRZNx/AIadyaSCanBzM2E85m7XeBgHzIgKKGQWXYqE9J2xzwmjBwHgoUGNf/0+Ie3i3OimLzGZK8a2y1LX0hyDqOeM/WwvfK+aeGoqjGrlKioxhZ0IKhrHgoSGdwsyhYDHCU3plYSdAfml85VGwqQbTB1/7zmBmZM7HHQGr3vrbniiU0y+SXVCucnPC96QbRk+oBdbjrqdiz8UCF/D/iA2QgjxE1Sq1dM5eqZIhunByqp5IkaWGxdEdveQD+auykHw5vU3IJWZ4ErLI7uXnAg/oQ==;\n\t5:hLyX6yy8GgBS/iA8G9kWMib2RQev01XuZ/4Tbiv6PKOzxh6VRE4JFuu6QNBFM8o2K5NCAmrnbjsLaT0Z0KjnptBC+91BLP/GTyjeiIbm0PAd6gw979Udvgmxgo5Q6w0R9e/NprsrwqwmvifaGlQBtg==;\n\t24:fYAgaxu3gvopPm5iwl/SJJbq6pzB6FbHG0YEpnB3DubyLeRmwQBqjmk4iEX0YUHGr+747GJ8guVA5XjMQUnIb53hNZIIPIci6sS/6/vbp2Y=;\n\t7:0cjih3RejtSJG5dv1cLpmskDR0pgPYLJIVTt0XWyWB2pa85Y+yVPDRgXxAhCZWfPRg2gqhwwWKs1HuC0dlJHfUCJ2/t8DJ1vPj9zpc9hr6k7H6NbTZXNgLcF920cu9VTgGvMIZ9Vz+B6aGOWnBDlqWw9MrNraXuVUWCs1uFi12Dwuo3bFhoMdWHOr0yqkFnpz746TNGkgqEOeVleZV13KFLkNwLzRgemW84wDSOQqdo="
        ],
        "X-MS-TrafficTypeDiagnostic": "CY4PR07MB3462:",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Microsoft-Antispam-PRVS": "<CY4PR07MB3462CB9B682E07A296B25E32809F0@CY4PR07MB3462.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)(100000703101)(100105400095)(3002001)(93006095)(10201501046)(6041248)(20161123562025)(20161123564025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:CY4PR07MB3462; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:CY4PR07MB3462; ",
        "X-Forefront-PRVS": "0414DF926F",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(4630300001)(7370300001)(6009001)(199003)(189002)(107886003)(110136004)(36756003)(6512007)(53936002)(50986999)(5009440100003)(305945005)(4326008)(7736002)(81166006)(81156014)(8676002)(101416001)(50226002)(97736004)(7350300001)(189998001)(106356001)(105586002)(42186005)(6486002)(6506006)(53416004)(42882006)(6916009)(33646002)(2351001)(6666003)(2361001)(69596002)(25786009)(47776003)(5660300001)(66066001)(50466002)(68736007)(48376002)(478600001)(5003940100001)(3846002)(6116002)(2906002)(72206003)(42262002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3462;\n\tH:PBHAGAVATULA-LT.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords;\n\tA: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": "29 Aug 2017 12:33:16.0242\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CY4PR07MB3462",
        "Subject": "[dpdk-dev] [PATCH v4] 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---\nv4 changes:\n  - fix doxygen errors\n\nv3 changes:\n  - fix compilation issues with .map files\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   |  1 +\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 |  1 +\n 4 files changed, 28 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..79e7d31 100644\n--- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map\n+++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map\n@@ -222,6 +222,7 @@ EXPERIMENTAL {\n \trte_service_is_running;\n \trte_service_lcore_add;\n \trte_service_lcore_count;\n+\trte_service_lcore_count_services;\n \trte_service_lcore_del;\n \trte_service_lcore_list;\n \trte_service_lcore_reset_all;\ndiff --git a/lib/librte_eal/common/include/rte_service.h b/lib/librte_eal/common/include/rte_service.h\nindex 7c6f738..5ea81c4 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..468c706 100644\n--- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map\n+++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map\n@@ -227,6 +227,7 @@ EXPERIMENTAL {\n \trte_service_is_running;\n \trte_service_lcore_add;\n \trte_service_lcore_count;\n+\trte_service_lcore_count_services;\n \trte_service_lcore_del;\n \trte_service_lcore_list;\n \trte_service_lcore_reset_all;\n",
    "prefixes": [
        "dpdk-dev",
        "v4"
    ]
}