get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 27857,
    "url": "https://patches.dpdk.org/api/patches/27857/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20170824132903.32057-4-santosh.shukla@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": "<20170824132903.32057-4-santosh.shukla@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20170824132903.32057-4-santosh.shukla@caviumnetworks.com",
    "date": "2017-08-24T13:28:55",
    "name": "[dpdk-dev,v1,03/11] mempool/octeontx: probe fpavf pcie devices",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "3f63b92b988cb21be550677a426322cc5ddddaeb",
    "submitter": {
        "id": 480,
        "url": "https://patches.dpdk.org/api/people/480/?format=api",
        "name": "Santosh Shukla",
        "email": "santosh.shukla@caviumnetworks.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20170824132903.32057-4-santosh.shukla@caviumnetworks.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/27857/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/27857/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 EE8E97D83;\n\tThu, 24 Aug 2017 15:30:01 +0200 (CEST)",
            "from NAM01-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam01on0041.outbound.protection.outlook.com [104.47.32.41])\n\tby dpdk.org (Postfix) with ESMTP id C473F7CE5\n\tfor <dev@dpdk.org>; Thu, 24 Aug 2017 15:29:59 +0200 (CEST)",
            "from localhost.localdomain (14.140.2.178) by\n\tCY4PR07MB3093.namprd07.prod.outlook.com (10.172.115.7) with Microsoft\n\tSMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.1.1362.18; Thu, 24 Aug 2017 13:29:56 +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=qYfnw6t+Hbp4XRMKHIPOPWbXFJb2Z58GOMiUVmtKtHs=;\n\tb=JEFAkJMyfTSwhI30I4VDL6FUEroBhfukW2Y4AXFpqnsIt8MNVt1a3PS1pHplpnmtVzKwJvfHPQ1OvUhPBHVyJn8bQTi38XbvD9SCfnZJag5Ghf3+IbNp9xt8Wcy7XILTYs4WzEndPNFPOUTs6FFlJIcS5gsKYUvI56Yy4TkNAg0=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Santosh.Shukla@cavium.com; ",
        "From": "Santosh Shukla <santosh.shukla@caviumnetworks.com>",
        "To": "olivier.matz@6wind.com,\n\tdev@dpdk.org",
        "Cc": "thomas@monjalon.net, jerin.jacob@caviumnetworks.com,\n\themant.agrawal@nxp.com,\n\tSantosh Shukla <santosh.shukla@caviumnetworks.com>",
        "Date": "Thu, 24 Aug 2017 18:58:55 +0530",
        "Message-Id": "<20170824132903.32057-4-santosh.shukla@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.11.0",
        "In-Reply-To": "<20170824132903.32057-1-santosh.shukla@caviumnetworks.com>",
        "References": "<20170824132903.32057-1-santosh.shukla@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[14.140.2.178]",
        "X-ClientProxiedBy": "BM1PR01CA0071.INDPRD01.PROD.OUTLOOK.COM (10.174.208.139)\n\tTo CY4PR07MB3093.namprd07.prod.outlook.com (10.172.115.7)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "d81ea582-957b-4325-1152-08d4eaf43746",
        "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:CY4PR07MB3093; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; CY4PR07MB3093;\n\t3:3IcAlwPIq/moVTyONZ0p44BkMqanhi/NHOipxj37DulxUSvUKOnRyR0LRMM9DuFFb8aft5COspOzYqp3d+vUe+4VflKW+71SX5wKnR6apUhGgWowR7HFrfNIc8QKkbV8khl68LXeK0l7s5HMWAb7PPk0BR+zLJpwDWtQgzNyDSt2OWi4bnKk4op+0m73EyojM1UTyyYIvz+b64Ne+W5MAWpMm7VyBDTksg3meFtYDJ0wJK0NegDhetx9kS8fRAR4;\n\t25:cxz/L7XDXl+jXJBYi/wJ1W/T8rqeQZrDiESwVxMI2x4IKqGqSq70/2QZSyu0ShBlaPRgfzYA3nwLmJbsQ8BZakfibu0CEMSZnZ/dr3jhPCfC8s9Aqsh5rbei6WY+rnzbCc2CXPtVv9OJpg1tGhSjVZeCAcSLQSVOEqzeNlVsLZdT0YBKd2ubsItPCxrAmfgoYNJlZ2bSi2p9fdhk8bZVd2Yo7HrigcxFcVRCsXnp9Ke3zKm1NGa/gGbyfBgHmL2+RQe6HMrmT7W8BIeNBSbh7UEtmN+K2JwDl9gXeNw8oltRk/+8SrSW5SugRs8dL0ocDX/5uzPIGlSLW/lveH+1Yw==;\n\t31:yihDxEKtmx9T6m43WrSFj+ge0QYP/U+ZZJnRFWRVoIo9qVtgNXSwGTDxKCdMVmIajW96R6tnQm3i8udAgW/BP4nfs4VEucby9u4xQG5ar3JWCM3xye2A8NeP0xGRsConrcMQfazyLpEHBHynJHf+iMuu6Xv63xflZGFhpb58yqMqqJ6GceqODBNj+NxHc6IrAThgcaCrSRM90Ue82Wat03ziwcBzjz0sc57ehAbp6gI=",
            "1; CY4PR07MB3093;\n\t20:WbvRVCn/8ok48rFeuoaQB9xIuRbE5Mq0jaN6zPe4ZYH8/yw4XQBrvJwXJuoAzyMeUCa+X72dnNU7/rkYAoDNkd8ucQt2SfBXs0VXVmN9AcKgANg3ZdNbzGENpvJvHJMVxCcA1xTOSSG0XGM/WiKSFKqx4uoUXtVG5JjvWLpoEZBbH4/XUNmamFVmZgFE/KViVNeRoVrVTHEaj8Lm0qTLttMas04eJCkeZsRR1MTDAiauUNOPjkrbgPw5cd0ck9LmjiOUpXWXGXmEiFakxtUPF1iJMrxG/AREG1hh4CSkdMOGoWyGo+NVEqlrUIjYtZd41GqJuys/EnZRdPldNWv5UaMFRBQsI88XuzhywbFFhWH68ir9txQLCAiiROVRgGTzla7CmgaqpMh5jy/W1JQjJWDh1+X9m0Bjg/CIss4KxCfQFEeivfwjAzxS31GwvYbfm0ZAd0YvuenIDzbKJVmukHbAVn7/XHe/qhQYgt/05TkuBM2tNO3tyc38tfChLuqntf7/6uWPB8rBmxP+mnOjArDkPF+lYcaoSVxwsze0PEfFFj+Ttsqj4ekaIRB+9puQJWMr+mrDAEPrtLdsW44zp/rYrT7giWd45+RldBqGrig=;\n\t4:exjiGdcVsl/mn/6NvKTxL9VqMBevOblDMPpey5eYwv23DsGP0r8WBe2px2jLEm/S5XgHaTm8Ir7FEjyqVhkrU6Ct3mWQaWBetYfwiMs6S+fQgryflaGFtuyNjXlv9tvvpweDPB6WEWBrI9Ktmzk8zItrPWcTKbM5jVoFny3Mhb59b4FHFmsfbKMpVpHc1wutYYyqqzOxOO9vIz5khbnyGg19kfBlwGsAtPS3SxJkgSOtP1eFcRWe4SoiDMteFHKp",
            "=?us-ascii?Q?1; CY4PR07MB3093;\n\t23:+JafafIYr2+eb6B6uwjqB+/Vo7TMOzn1iRze2bZsQ?=\n\tuvqcPL3QQL02Ga+WWo3KLq6/yWU9gn8ZOzIszwnAyEPnSGWgqRSBfK331cVN4YR1jfEgLBedl58qiqK6mflHc0eqJDszzoJ3ViRTB8Mds3Xnr9Hnn4L3fTyCxQM2UNPtYrwsu4x9/y8eIlP5ir2VrF73CMbas+S9UTBco1OlDyWQEfVAPb7Gm04m2GGdTbf+Dbt9x/dsnl+PPRdm8OHlQlbOdJwnuLRNPgsj9uIzoyKnVufKlSmyJKrxyzwuZQiZ2dokd1j6vFdVy8rTiG7AsQPuxD0QEqk7O+l0b/4ybf8mICuOulwbDI52ToYIh1SoPHoCoCKpzUC608mogbTgtXyba6LpuOp5RcJQ0J0iJ8A26dc3orp5VYPeVgSYTltm3bDIgYhKbgoPtdDX8TpofowBkHvgmPLggUq8oSivMnk77OCZT9kT2TcZ0FQZkzZ8oXD9pJNA/1SA3p7ASpIVW95haU8G30zDg931u9mmeg4sovcMcEsvXnCV7kyVpWSAn0KxGIojKmBNwPicgK+aQynI2wQO/5Q9LT0fKon+ZK7ABKrcXXFMp8PoPVTHFzJWM5sf1/1XmVp+2v62v7ikRhoS0rnIvVqbocUHcQ9wLjfeH2kgTmgrOm4H0RGLO+g6pK6NpWUr5dwABIZ5W78m/9C27l2f3Dou3DHI1ad+6vM6unZ5ZnzXLxhFsx87+71QM2VGPzgqPTyNHSBNBpt5s/VOQWTdFe0lgHSeZ1uvRLGgZjXGT5etghfi9V3TEhoi+OjDapYpt97qefk/a49vfqCSPoMx/GBV7jxA24mIgc4kToUrmkjxcYNUBBT5eQ08NJ4nDtkfaCQs0kUVYnx/U/lonY6hDMYR7eXnZcb/eYoN9gSxl2KdSoqlTmAGT0LkIip5+5tNoJKsDLXQTZ3QuqzDL4c2oMSQKGtU59ZSaIfeUH+HNJjBQMOZBG7RimLG5ivwuhTm/+2dph9N5MD6m63kNZhm7DfLN6iMNNZGNwxBOBRLYHbIEOn+f847Uw4YptOxoa+ZaHhbYl9Je7SEEpvV6BsNnwzeSpZX9K7/fhcgYHSLVqn6VSbU+iHt2RWKsbFI4xxCgb4ffK2hhUnyoAPiHvP8fSDYn/SLeeE3OnXCXoGXqLOrUPUbmRUIyuYPc8LlYnzBC2/eu1AWZkualik",
            "1; CY4PR07MB3093;\n\t6:PuaRAXN/+3Sha0k75OU8K4JXlCom8jolPOMp+BQyoiRl3+8NUMB9fDXDXePj4WTAE3RWQmXXoYYJo0ad7GnFtZuAkWBFVnHN5xTErsEk55/ujwKt3EJhTnkoJpZNdsNxOq+b9QPzIi/9pz9Ev9qVNg1rtqdpVid+U3sxWZNfJFuRi/F1152h1w03N+F9aQIfCCF/gGsZPN+vKa+XUv7qkcmhUDKDYWLuZR6mQ4+ypmWnZdCK1DKYwZRpV/lkHjqr61/o5DXES3LG8Px6FBGcr65+YON0yal8RdbfHgODUDQU27qfwFWXARJRmjRJCn3/ILynaskHyQBcwiM+ntDNhQ==;\n\t5:ww2SYwOrabGQoff5j9UnYdaDMsoSKWSL9E9xGEKDaKCGp30ahOqs/F/Swxkt4FMIGaIQPhoIo5V+D3GJEn2Kjf9O4OBDEvrIzmth+tuJGejdqdWxJ/zFMsw3QA9WbJkJPV+fvoSRCUbMnsPYMMfWPJG2s2V1aEwL5FJphRDGn6w=;\n\t24:Yw2zOgv7aOaHoCuU4hPceFLvGPw6AvC8RkiDSmpg1hRRATBheIoOCRSmd2SuydadLNCxd8gws/roac1ovMu+Hc/2SL4f9cGFnwCvqZR/d24=;\n\t7:/jqfvUO3wZHnwge7AhYUzZk3HIRKh78ERcE786nzb794+0xuNlfwt4UlkIOrWTcz58hUwwZYKNKmgkv93MuabVSm+c6u6lKo98CiP3lCd5JCr1FY2NEeAjFvuVwxafchTIVbys8LRD9grrjYcgqHLD25Pp+WT/rgvkuU1mcuv28pObkh9j3cy8vn3rnPAUrlyvRCjzk1rdhQRktacpN6POtiaDSE76pSVq1NOQhBvjQ="
        ],
        "X-MS-TrafficTypeDiagnostic": "CY4PR07MB3093:",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Microsoft-Antispam-PRVS": "<CY4PR07MB3093E5636387FECAA4B5A600EA9A0@CY4PR07MB3093.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)(10201501046)(3002001)(93006095)(6041248)(20161123560025)(20161123558100)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:CY4PR07MB3093; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:CY4PR07MB3093; ",
        "X-Forefront-PRVS": "04097B7F7F",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(7370300001)(4630300001)(6069001)(6009001)(189002)(199003)(110136004)(107886003)(53936002)(105586002)(101416001)(7736002)(50226002)(76176999)(42186005)(68736007)(6486002)(33646002)(50986999)(6512007)(106356001)(1076002)(2906002)(6506006)(3846002)(6116002)(478600001)(97736004)(4326008)(5660300001)(7350300001)(47776003)(5009440100003)(72206003)(50466002)(8656003)(48376002)(25786009)(81156014)(81166006)(66066001)(305945005)(5003940100001)(42882006)(36756003)(8676002)(189998001)(2950100002)(110426004);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3093; H:localhost.localdomain;\n\tFPR:; \n\tSPF:None; PTR:InfoNoRecords; MX:1; A: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": "24 Aug 2017 13:29:56.0559\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CY4PR07MB3093",
        "Subject": "[dpdk-dev] [PATCH v1 03/11] mempool/octeontx: probe fpavf pcie\n\tdevices",
        "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": "A mempool device is set of PCIe vfs.\nOn Octeontx HW, each mempool devices are enumerated as\nseparate SRIOV VF PCIe device.\n\nIn order to expose as a mempool device:\nOn PCIe probe, the driver stores the information associated with the\nPCIe device and later upon application pool request\n(e.g. rte_mempool_create_empty), Infrastructure creates a pool device\nwith earlier probed PCIe VF devices.\n\nSigned-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>\nSigned-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>\n---\n drivers/mempool/octeontx/octeontx_fpavf.c | 151 ++++++++++++++++++++++++++++++\n drivers/mempool/octeontx/octeontx_fpavf.h |  39 ++++++++\n 2 files changed, 190 insertions(+)",
    "diff": "diff --git a/drivers/mempool/octeontx/octeontx_fpavf.c b/drivers/mempool/octeontx/octeontx_fpavf.c\nindex 9bb7759c0..0b4a9357f 100644\n--- a/drivers/mempool/octeontx/octeontx_fpavf.c\n+++ b/drivers/mempool/octeontx/octeontx_fpavf.c\n@@ -29,3 +29,154 @@\n  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n  */\n+\n+#include <stdlib.h>\n+#include <string.h>\n+#include <stdbool.h>\n+#include <stdio.h>\n+#include <unistd.h>\n+#include <fcntl.h>\n+#include <errno.h>\n+#include <sys/mman.h>\n+\n+#include <rte_atomic.h>\n+#include <rte_eal.h>\n+#include <rte_pci.h>\n+#include <rte_errno.h>\n+#include <rte_memory.h>\n+#include <rte_malloc.h>\n+#include <rte_spinlock.h>\n+\n+#include \"octeontx_fpavf.h\"\n+\n+struct fpavf_res {\n+\tvoid\t\t*pool_stack_base;\n+\tvoid\t\t*bar0;\n+\tuint64_t\tstack_ln_ptr;\n+\tuint16_t\tdomain_id;\n+\tuint16_t\tvf_id;\t/* gpool_id */\n+\tuint16_t\tsz128;\t/* Block size in cache lines */\n+\tbool\t\tis_inuse;\n+};\n+\n+struct octeontx_fpadev {\n+\trte_spinlock_t lock;\n+\tuint8_t\ttotal_gpool_cnt;\n+\tstruct fpavf_res pool[FPA_VF_MAX];\n+};\n+\n+static struct octeontx_fpadev fpadev;\n+\n+static void\n+octeontx_fpavf_setup(void)\n+{\n+\tuint8_t i;\n+\tstatic bool init_once;\n+\n+\tif (!init_once) {\n+\t\trte_spinlock_init(&fpadev.lock);\n+\t\tfpadev.total_gpool_cnt = 0;\n+\n+\t\tfor (i = 0; i < FPA_VF_MAX; i++) {\n+\n+\t\t\tfpadev.pool[i].domain_id = ~0;\n+\t\t\tfpadev.pool[i].stack_ln_ptr = 0;\n+\t\t\tfpadev.pool[i].sz128 = 0;\n+\t\t\tfpadev.pool[i].bar0 = NULL;\n+\t\t\tfpadev.pool[i].pool_stack_base = NULL;\n+\t\t\tfpadev.pool[i].is_inuse = false;\n+\t\t}\n+\t\tinit_once = 1;\n+\t}\n+}\n+\n+static int\n+octeontx_fpavf_identify(void *bar0)\n+{\n+\tuint64_t val;\n+\tuint16_t domain_id;\n+\tuint16_t vf_id;\n+\tuint64_t stack_ln_ptr;\n+\n+\tval = fpavf_read64((void *)((uintptr_t)bar0 +\n+\t\t\t\tFPA_VF_VHAURA_CNT_THRESHOLD(0)));\n+\n+\tdomain_id = (val >> 8) & 0xffff;\n+\tvf_id = (val >> 24) & 0xffff;\n+\n+\tstack_ln_ptr = fpavf_read64((void *)((uintptr_t)bar0 +\n+\t\t\t\t\tFPA_VF_VHPOOL_THRESHOLD(0)));\n+\tif (vf_id >= FPA_VF_MAX) {\n+\t\tfpavf_log_err(\"vf_id(%d) greater than max vf (32)\\n\", vf_id);\n+\t\treturn -1;\n+\t}\n+\n+\tif (fpadev.pool[vf_id].is_inuse) {\n+\t\tfpavf_log_err(\"vf_id %d is_inuse\\n\", vf_id);\n+\t\treturn -1;\n+\t}\n+\n+\tfpadev.pool[vf_id].domain_id = domain_id;\n+\tfpadev.pool[vf_id].vf_id = vf_id;\n+\tfpadev.pool[vf_id].bar0 = bar0;\n+\tfpadev.pool[vf_id].stack_ln_ptr = stack_ln_ptr;\n+\n+\t/* SUCCESS */\n+\treturn vf_id;\n+}\n+\n+/* FPAVF pcie device aka mempool probe */\n+static int\n+fpavf_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)\n+{\n+\tuint8_t *idreg;\n+\tint res;\n+\tstruct fpavf_res *fpa;\n+\n+\tRTE_SET_USED(pci_drv);\n+\tRTE_SET_USED(fpa);\n+\n+\t/* For secondary processes, the primary has done all the work */\n+\tif (rte_eal_process_type() != RTE_PROC_PRIMARY)\n+\t\treturn 0;\n+\n+\tif (pci_dev->mem_resource[0].addr == NULL) {\n+\t\tfpavf_log_err(\"Empty bars %p \", pci_dev->mem_resource[0].addr);\n+\t\treturn -ENODEV;\n+\t}\n+\tidreg = pci_dev->mem_resource[0].addr;\n+\n+\tocteontx_fpavf_setup();\n+\n+\tres = octeontx_fpavf_identify(idreg);\n+\tif (res < 0)\n+\t\treturn -1;\n+\n+\tfpa = &fpadev.pool[res];\n+\tfpadev.total_gpool_cnt++;\n+\trte_wmb();\n+\n+\tfpavf_log_dbg(\"total_fpavfs %d bar0 %p domain %d vf %d stk_ln_ptr 0x%x\",\n+\t\t       fpadev.total_gpool_cnt, fpa->bar0, fpa->domain_id,\n+\t\t       fpa->vf_id, (unsigned int)fpa->stack_ln_ptr);\n+\n+\treturn 0;\n+}\n+\n+static const struct rte_pci_id pci_fpavf_map[] = {\n+\t{\n+\t\tRTE_PCI_DEVICE(PCI_VENDOR_ID_CAVIUM,\n+\t\t\t\tPCI_DEVICE_ID_OCTEONTX_FPA_VF)\n+\t},\n+\t{\n+\t\t.vendor_id = 0,\n+\t},\n+};\n+\n+static struct rte_pci_driver pci_fpavf = {\n+\t.id_table = pci_fpavf_map,\n+\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_IOVA_AS_VA,\n+\t.probe = fpavf_probe,\n+};\n+\n+RTE_PMD_REGISTER_PCI(octeontx_fpavf, pci_fpavf);\ndiff --git a/drivers/mempool/octeontx/octeontx_fpavf.h b/drivers/mempool/octeontx/octeontx_fpavf.h\nindex 1c703725c..c43b1a7d2 100644\n--- a/drivers/mempool/octeontx/octeontx_fpavf.h\n+++ b/drivers/mempool/octeontx/octeontx_fpavf.h\n@@ -34,6 +34,7 @@\n #define\t__OCTEONTX_FPAVF_H__\n \n #include <rte_debug.h>\n+#include <rte_io.h>\n \n #ifdef RTE_LIBRTE_OCTEONTX_MEMPOOL_DEBUG\n #define fpavf_log_info(fmt, args...) \\\n@@ -87,4 +88,42 @@\n #define\tFPA_VF0_APERTURE_SHIFT\t\t22\n #define FPA_AURA_SET_SIZE\t\t16\n \n+\n+/*\n+ * In Cavium OcteonTX SoC, all accesses to the device registers are\n+ * implictly strongly ordered. So, The relaxed version of IO operation is\n+ * safe to use with out any IO memory barriers.\n+ */\n+#define fpavf_read64 rte_read64_relaxed\n+#define fpavf_write64 rte_write64_relaxed\n+\n+/* ARM64 specific functions */\n+#if defined(RTE_ARCH_ARM64)\n+#define fpavf_load_pair(val0, val1, addr) ({\t\t\\\n+\t\t\tasm volatile(\t\t\t\\\n+\t\t\t\"ldp %x[x0], %x[x1], [%x[p1]]\"\t\\\n+\t\t\t:[x0]\"=r\"(val0), [x1]\"=r\"(val1) \\\n+\t\t\t:[p1]\"r\"(addr)\t\t\t\\\n+\t\t\t); })\n+\n+#define fpavf_store_pair(val0, val1, addr) ({\t\t\\\n+\t\t\tasm volatile(\t\t\t\\\n+\t\t\t\"stp %x[x0], %x[x1], [%x[p1]]\"\t\\\n+\t\t\t::[x0]\"r\"(val0), [x1]\"r\"(val1), [p1]\"r\"(addr) \\\n+\t\t\t); })\n+#else /* Un optimized functions for building on non arm64 arch */\n+\n+#define fpavf_load_pair(val0, val1, addr)\t\t\\\n+do {\t\t\t\t\t\t\t\\\n+\tval0 = rte_read64(addr);\t\t\t\\\n+\tval1 = rte_read64(((uint8_t *)addr) + 8);\t\\\n+} while (0)\n+\n+#define fpavf_store_pair(val0, val1, addr)\t\t\\\n+do {\t\t\t\t\t\t\t\\\n+\trte_write64(val0, addr);\t\t\t\\\n+\trte_write64(val1, (((uint8_t *)addr) + 8));\t\\\n+} while (0)\n+#endif\n+\n #endif\t/* __OCTEONTX_FPAVF_H__ */\n",
    "prefixes": [
        "dpdk-dev",
        "v1",
        "03/11"
    ]
}