Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/107740/?format=api
http://patches.dpdk.org/api/patches/107740/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220217160613.70161-4-srikanth.k@oneconvergence.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": "<20220217160613.70161-4-srikanth.k@oneconvergence.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20220217160613.70161-4-srikanth.k@oneconvergence.com", "date": "2022-02-17T16:06:01", "name": "[v3,03/15] bus/vmbus: get device resource values using sysctl", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "3e854be0374129ff780379885c11f3eba89d9e78", "submitter": { "id": 2368, "url": "http://patches.dpdk.org/api/people/2368/?format=api", "name": "Srikanth Kaka", "email": "srikanth.k@oneconvergence.com" }, "delegate": null, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20220217160613.70161-4-srikanth.k@oneconvergence.com/mbox/", "series": [ { "id": 21713, "url": "http://patches.dpdk.org/api/series/21713/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=21713", "date": "2022-02-17T16:05:58", "name": "add FreeBSD support to VMBUS & NetVSC PMDs", "version": 3, "mbox": "http://patches.dpdk.org/series/21713/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/107740/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/107740/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 47FE4A034E;\n\tThu, 17 Feb 2022 17:11:13 +0100 (CET)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 4843341156;\n\tThu, 17 Feb 2022 17:10:55 +0100 (CET)", "from mail-pg1-f193.google.com (mail-pg1-f193.google.com\n [209.85.215.193])\n by mails.dpdk.org (Postfix) with ESMTP id D4B1E40042\n for <dev@dpdk.org>; Thu, 17 Feb 2022 17:06:36 +0100 (CET)", "by mail-pg1-f193.google.com with SMTP id 27so190636pgk.10\n for <dev@dpdk.org>; Thu, 17 Feb 2022 08:06:36 -0800 (PST)", "from srikanth-ThinkPad-T450.. ([49.37.144.122])\n by smtp.gmail.com with ESMTPSA id z14sm47807pfh.173.2022.02.17.08.06.33\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 17 Feb 2022 08:06:35 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oneconvergence.com; s=google;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=7q4EcEPfPFHXHyGwieieMaE8V3ISeueyo0wKNLs5dtY=;\n b=DAaJcp7+vFxD7TNjeY5wANUwooE/wL0oCfOZ/+C8kg/oeh4o8JL/Rpzm1HsGDqZsOs\n fIEc1nzzsE37ec5fOC/YI9Bb2it2Q9oe3WgqoZS1dBUuZBk3ureeCDUnpKuBzUvfHIf7\n m60WtV1KitpImzAXfX0vP4/KKGJnXf4ucArRw=", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20210112;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=7q4EcEPfPFHXHyGwieieMaE8V3ISeueyo0wKNLs5dtY=;\n b=bhIbPZ+6TXXkj60xT36dUVy0XMZk/KQUnWcfwiTMEbO0x6erRXo+ipjb/Gpo8PZfIw\n gEw2XTpyaRQmpSbEh6VnrjmSNTtAQ+1tLKmSGt1XTHtZS/o4hnbldRK67sTT8/Jmu0Uo\n kUn44Gzx31hGx/A9LNtzP32jY5kpuciQ65ccVD1Nw4ZL3NGRKQTq+aLptIjbBArRr9ad\n EvLGI/KECWX72eEM+cJOifTp2cQJl6TsRf4/bm5/1CMA1IeKquWY2cWSMgVSAPJJxC9w\n NRgeQhIR5zYnb5gf0kDtkY0bYHfWJsw9n04fJ6LtCMBUOCG/Rr1+Z0FIQharkU3WU+vR\n L2ug==", "X-Gm-Message-State": "AOAM532orTgS7Bd5IJ7amlAWrY/vNXMoAJTlz2JqMbke/plZDRVvkxfE\n nzA1HNYvfmRZM8XxIC4GxCrXbw==", "X-Google-Smtp-Source": "\n ABdhPJxzclGMCcoIm6x0gzaFSyHGewioN+BxQWk07rk68Q5e5mDfqGIxFZ8YP+ZgWoFhiT73ssnM7w==", "X-Received": "by 2002:a63:ff01:0:b0:34a:d500:c77a with SMTP id\n k1-20020a63ff01000000b0034ad500c77amr2900093pgi.320.1645113995992;\n Thu, 17 Feb 2022 08:06:35 -0800 (PST)", "From": "Srikanth Kaka <srikanth.k@oneconvergence.com>", "To": "sthemmin@microsoft.com,\n\tlongli@microsoft.com", "Cc": "dev@dpdk.org, vag.singh@oneconvergence.com, avelu@juniper.net,\n Srikanth Kaka <srikanth.k@oneconvergence.com>", "Subject": "[PATCH v3 03/15] bus/vmbus: get device resource values using sysctl", "Date": "Thu, 17 Feb 2022 21:36:01 +0530", "Message-Id": "<20220217160613.70161-4-srikanth.k@oneconvergence.com>", "X-Mailer": "git-send-email 2.30.2", "In-Reply-To": "<20220217160613.70161-1-srikanth.k@oneconvergence.com>", "References": "<20210927134231.11177-1-srikanth.k@oneconvergence.com>\n <20220217160613.70161-1-srikanth.k@oneconvergence.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Mailman-Approved-At": "Thu, 17 Feb 2022 17:10:51 +0100", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "The UIO device's relid, monitor id, etc values are retrieved using\nfollowing sysctl variables:\n$ sysctl dev.hv_uio.0\ndev.hv_uio.0.send_buf.gpadl: 925241\ndev.hv_uio.0.send_buf.size: 16777216\ndev.hv_uio.0.recv_buf.gpadl: 925240\ndev.hv_uio.0.recv_buf.size: 32505856\ndev.hv_uio.0.monitor_page.size: 4096\ndev.hv_uio.0.int_page.size: 4096\n\nSigned-off-by: Srikanth Kaka <srikanth.k@oneconvergence.com>\nSigned-off-by: Vag Singh <vag.singh@oneconvergence.com>\nSigned-off-by: Anand Thulasiram <avelu@juniper.net>\n---\n drivers/bus/vmbus/freebsd/vmbus_uio.c | 142 ++++++++++++++++++++++++++\n 1 file changed, 142 insertions(+)\n create mode 100644 drivers/bus/vmbus/freebsd/vmbus_uio.c", "diff": "diff --git a/drivers/bus/vmbus/freebsd/vmbus_uio.c b/drivers/bus/vmbus/freebsd/vmbus_uio.c\nnew file mode 100644\nindex 0000000000..2059ab192b\n--- /dev/null\n+++ b/drivers/bus/vmbus/freebsd/vmbus_uio.c\n@@ -0,0 +1,142 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright (c) 2018, Microsoft Corporation.\n+ * All Rights Reserved.\n+ */\n+\n+#include <unistd.h>\n+#include <fcntl.h>\n+#include <sys/types.h>\n+#include <sys/sysctl.h>\n+#include <sys/ioctl.h>\n+\n+#include <rte_log.h>\n+#include <rte_bus.h>\n+#include <rte_malloc.h>\n+#include <rte_bus_vmbus.h>\n+\n+#include \"private.h\"\n+\n+const char *driver_name = \"hv_uio\";\n+\n+/* Check map names with kernel names */\n+static const char *map_names[VMBUS_MAX_RESOURCE] = {\n+\t[HV_TXRX_RING_MAP] = \"txrx_rings\",\n+\t[HV_INT_PAGE_MAP] = \"int_page\",\n+\t[HV_MON_PAGE_MAP] = \"monitor_page\",\n+\t[HV_RECV_BUF_MAP] = \"recv_buf\",\n+\t[HV_SEND_BUF_MAP] = \"send_buf\",\n+};\n+\n+void\n+vmbus_uio_free_resource(struct rte_vmbus_device *dev,\n+\t\tstruct mapped_vmbus_resource *uio_res)\n+{\n+\trte_free(uio_res);\n+\n+\tif (dev->intr_handle.uio_cfg_fd >= 0) {\n+\t\tclose(dev->intr_handle.uio_cfg_fd);\n+\t\tdev->intr_handle.uio_cfg_fd = -1;\n+\t}\n+\n+\tif (dev->intr_handle.fd >= 0) {\n+\t\tclose(dev->intr_handle.fd);\n+\t\tdev->intr_handle.fd = -1;\n+\t\tdev->intr_handle.type = RTE_INTR_HANDLE_UNKNOWN;\n+\t}\n+}\n+\n+static int\n+sysctl_get_vmbus_device_info(struct rte_vmbus_device *dev)\n+{\n+\tchar sysctlBuffer[PATH_MAX];\n+\tchar sysctlVar[PATH_MAX];\n+\tsize_t len = PATH_MAX, sysctl_len;\n+\tunsigned long tmp;\n+\tint i;\n+\n+\tsnprintf(sysctlBuffer, len, \"dev.%s.%d\", driver_name, dev->uio_num);\n+\n+\tsysctl_len = sizeof(unsigned long);\n+\t/* get relid */\n+\tsnprintf(sysctlVar, len, \"%s.channel.ch_id\", sysctlBuffer);\n+\tif (sysctlbyname(sysctlVar, &tmp, &sysctl_len, NULL, 0) < 0) {\n+\t\tVMBUS_LOG(ERR, \"could not read %s\", sysctlVar);\n+\t\tgoto error;\n+\t}\n+\tdev->relid = tmp;\n+\n+\t/* get monitor id */\n+\tsnprintf(sysctlVar, len, \"%s.channel.%u.monitor_id\", sysctlBuffer,\n+\t\t dev->relid);\n+\tif (sysctlbyname(sysctlVar, &tmp, &sysctl_len, NULL, 0) < 0) {\n+\t\tVMBUS_LOG(ERR, \"could not read %s\", sysctlVar);\n+\t\tgoto error;\n+\t}\n+\tdev->monitor_id = tmp;\n+\n+\t/* Extract resource value */\n+\tfor (i = 0; i < VMBUS_MAX_RESOURCE; i++) {\n+\t\tstruct rte_mem_resource *res = &dev->resource[i];\n+\t\tunsigned long size, gpad = 0;\n+\t\tsize_t sizelen = sizeof(len);\n+\n+\t\tsnprintf(sysctlVar, sizeof(sysctlVar), \"%s.%s.size\",\n+\t\t\t sysctlBuffer, map_names[i]);\n+\t\tif (sysctlbyname(sysctlVar, &size, &sizelen, NULL, 0) < 0) {\n+\t\t\tVMBUS_LOG(ERR,\n+\t\t\t\t\"could not read %s\", sysctlVar);\n+\t\t\tgoto error;\n+\t\t}\n+\t\tres->len = size;\n+\n+\t\tif (i == HV_RECV_BUF_MAP || i == HV_SEND_BUF_MAP) {\n+\t\t\tsnprintf(sysctlVar, sizeof(sysctlVar), \"%s.%s.gpadl\",\n+\t\t\t\t sysctlBuffer, map_names[i]);\n+\t\t\tif (sysctlbyname(sysctlVar, &gpad, &sizelen, NULL, 0) < 0) {\n+\t\t\t\tVMBUS_LOG(ERR,\n+\t\t\t\t\t\"could not read %s\", sysctlVar);\n+\t\t\t\tgoto error;\n+\t\t\t}\n+\t\t\t/* put the GPAD value in physical address */\n+\t\t\tres->phys_addr = gpad;\n+\t\t}\n+\t}\n+\treturn 0;\n+error:\n+\treturn -1;\n+}\n+\n+int\n+vmbus_uio_alloc_resource(struct rte_vmbus_device *dev,\n+\t\t\t struct mapped_vmbus_resource **uio_res)\n+{\n+\tchar devname[PATH_MAX]; /* contains the /dev/hv_uioX */\n+\n+\t/* save fd if in primary process */\n+\tsnprintf(devname, sizeof(devname), \"/dev/hv_uio%u\", dev->uio_num);\n+\tdev->intr_handle.fd = open(devname, O_RDWR);\n+\tif (dev->intr_handle.fd < 0) {\n+\t\tVMBUS_LOG(ERR, \"Cannot open %s: %s\",\n+\t\t\tdevname, strerror(errno));\n+\t\tgoto error;\n+\t}\n+\tdev->intr_handle.type = RTE_INTR_HANDLE_UIO_INTX;\n+\n+\t/* allocate the mapping details for secondary processes*/\n+\t*uio_res = rte_zmalloc(\"UIO_RES\", sizeof(**uio_res), 0);\n+\tif (*uio_res == NULL) {\n+\t\tVMBUS_LOG(ERR, \"cannot store uio mmap details\");\n+\t\tgoto error;\n+\t}\n+\n+\tstrlcpy((*uio_res)->path, devname, PATH_MAX);\n+\trte_uuid_copy((*uio_res)->id, dev->device_id);\n+\n+\tif (sysctl_get_vmbus_device_info(dev) < 0)\n+\t\tgoto error;\n+\n+\treturn 0;\n+error:\n+\tvmbus_uio_free_resource(dev, *uio_res);\n+\treturn -1;\n+}\n", "prefixes": [ "v3", "03/15" ] }{ "id": 107740, "url": "