get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 117316,
    "url": "https://patches.dpdk.org/api/patches/117316/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20221004145850.32331-1-olivier.matz@6wind.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": "<20221004145850.32331-1-olivier.matz@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20221004145850.32331-1-olivier.matz@6wind.com",
    "date": "2022-10-04T14:58:50",
    "name": "[v2] drivers/bus: set device NUMA node to unknown by default",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "00d7ed200ab98d75f835e62109143965dfb41d84",
    "submitter": {
        "id": 8,
        "url": "https://patches.dpdk.org/api/people/8/?format=api",
        "name": "Olivier Matz",
        "email": "olivier.matz@6wind.com"
    },
    "delegate": {
        "id": 24651,
        "url": "https://patches.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20221004145850.32331-1-olivier.matz@6wind.com/mbox/",
    "series": [
        {
            "id": 24968,
            "url": "https://patches.dpdk.org/api/series/24968/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=24968",
            "date": "2022-10-04T14:58:50",
            "name": "[v2] drivers/bus: set device NUMA node to unknown by default",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/24968/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/117316/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/117316/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 D7940A0543;\n\tTue,  4 Oct 2022 16:59:23 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 8545E40DFB;\n\tTue,  4 Oct 2022 16:59:23 +0200 (CEST)",
            "from mail-wr1-f47.google.com (mail-wr1-f47.google.com\n [209.85.221.47]) by mails.dpdk.org (Postfix) with ESMTP id 03D2B40DDC\n for <dev@dpdk.org>; Tue,  4 Oct 2022 16:59:21 +0200 (CEST)",
            "by mail-wr1-f47.google.com with SMTP id b4so14783074wrs.1\n for <dev@dpdk.org>; Tue, 04 Oct 2022 07:59:21 -0700 (PDT)",
            "from gojira.dev.6wind.com ([185.13.181.2])\n by smtp.gmail.com with ESMTPSA id\n v4-20020a5d5904000000b0022ac38fb20asm12329734wrd.111.2022.10.04.07.59.20\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 04 Oct 2022 07:59:20 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind.com; s=google;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date;\n bh=6KjjUd4Fus1y27ys56p7IHMJlb/Eu/6hqBavwjNbJb8=;\n b=IFm+q+ynLKDHQSqtJMK54ExJ6wjxtQ2p4E1ErCL83L/vrBeaZQJHONInuo1mUynEMw\n Lo7FCGg117WVIsIm2+XBtvGNxqUiq0KplZr4AeT8ki3Rhj4mcT0GZN3fwRbN6SoBKfkf\n JnMXgifnDTEcR0QBsf3pqvjEdimzy1Hzjpkh+MUVX9slfwrtjiEPDOVUk2KKqRMRwh7V\n g9uDp4YPL7QoBUp2bOQsZxtNe2m1xx3j9XxKKeJ2LULYz2mF2T2aWJWB8aHsaPNA39GK\n PR3n7qbHtb7SNccTD5bPcvUf3T0PLB3JnwEaHj+AaOE0EbcR39PWX+CualURp4lzhqgc\n IY/Q==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20210112;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date;\n bh=6KjjUd4Fus1y27ys56p7IHMJlb/Eu/6hqBavwjNbJb8=;\n b=4k+8qkvhP021ZDfIYyata6qlM96izm96NVCUR9ceV4/aW6gyukHMjyu3waUe72CIX9\n zpUVpgzskbqtpu6Y1EuDxxfc5Zvi98yyb+JusEPY58ChVmsMI0IhRFJrVz6AMpDrHFl9\n yoR45cwtkuqtWQCG3zv9lRXno+EGVUaRugLv2nIAi6UpfEGbGWKn9IgjvHByyYqZMp01\n 39eTNgQzP6D/cvr4YYaUUBpfLG1cnVzz4PXgh05mcnknS8a71ckgBPBa3XlUo/kQUTd3\n almZUgjufssC4JkrsfR8uq626WwDTSsEpZuX9l8AeybaD7D32inVyC5ifD3Ik5zvKqng\n xYYw==",
        "X-Gm-Message-State": "ACrzQf27isvIEGfRDsSJAhAEY1fE2sFcWJYYjoJH3KNvbh090Brjerai\n GAiWc6RpWnRWeAIKMnrh3ilH74kxsFCo1g==",
        "X-Google-Smtp-Source": "\n AMsMyM5Wf/ffkwWAQcvHQ0ioZGKl5vvEbAti54Qr1WQxpptuBJnIznu60HBNfy9EZTFKRcVYJCna/g==",
        "X-Received": "by 2002:a5d:5c08:0:b0:228:e139:43f3 with SMTP id\n cc8-20020a5d5c08000000b00228e13943f3mr16767278wrb.396.1664895561527;\n Tue, 04 Oct 2022 07:59:21 -0700 (PDT)",
        "From": "Olivier Matz <olivier.matz@6wind.com>",
        "To": "dev@dpdk.org",
        "Cc": "Ray Kinsella <mdr@ashroe.eu>, Parav Pandit <parav@nvidia.com>,\n Xueming Li <xuemingl@nvidia.com>, Hemant Agrawal <hemant.agrawal@nxp.com>,\n Sachin Saxena <sachin.saxena@oss.nxp.com>,\n Stephen Hemminger <sthemmin@microsoft.com>, Long Li <longli@microsoft.com>,\n david.marchand@redhat.com",
        "Subject": "[PATCH v2] drivers/bus: set device NUMA node to unknown by default",
        "Date": "Tue,  4 Oct 2022 16:58:50 +0200",
        "Message-Id": "<20221004145850.32331-1-olivier.matz@6wind.com>",
        "X-Mailer": "git-send-email 2.30.2",
        "In-Reply-To": "\n <CAJFAV8wF1K4LFsFhuiKeAq2JMn_kPCUv41Lxd+f50QFLji=nmw@mail.gmail.com>",
        "References": "\n <CAJFAV8wF1K4LFsFhuiKeAq2JMn_kPCUv41Lxd+f50QFLji=nmw@mail.gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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 dev->device.numa_node field is set by each bus driver for\nevery device it manages to indicate on which NUMA node this device lies.\n\nWhen this information is unknown, the assigned value is not consistent\nacross the bus drivers.\n\nSet the default value to SOCKET_ID_ANY (-1) by all bus drivers\nwhen the NUMA information is unavailable. This change impacts\nrte_eth_dev_socket_id() in the same manner.\n\nSigned-off-by: Olivier Matz <olivier.matz@6wind.com>\n---\n\nv2\n* use SOCKET_ID_ANY instead of -1 in drivers/dma/idxd (David)\n* document the behavior change of rte_eth_dev_socket_id()\n* fix few examples where rte_eth_dev_socket_id() was expected to\n  return 0 on unknown socket\n\n doc/guides/rel_notes/deprecation.rst     |  7 -------\n doc/guides/rel_notes/release_22_11.rst   |  6 ++++++\n drivers/bus/auxiliary/auxiliary_common.c |  8 ++------\n drivers/bus/auxiliary/linux/auxiliary.c  | 13 +++++--------\n drivers/bus/dpaa/dpaa_bus.c              |  1 +\n drivers/bus/fslmc/fslmc_bus.c            |  1 +\n drivers/bus/pci/bsd/pci.c                |  2 +-\n drivers/bus/pci/linux/pci.c              | 16 ++++++----------\n drivers/bus/pci/pci_common.c             |  8 ++------\n drivers/bus/pci/windows/pci.c            |  1 -\n drivers/bus/vmbus/linux/vmbus_bus.c      |  1 -\n drivers/bus/vmbus/vmbus_common.c         |  8 ++------\n drivers/dma/idxd/idxd_bus.c              |  3 ++-\n examples/distributor/main.c              |  4 ++--\n examples/flow_classify/flow_classify.c   |  2 ++\n examples/rxtx_callbacks/main.c           |  2 +-\n lib/ethdev/rte_ethdev.h                  |  4 ++--\n 17 files changed, 35 insertions(+), 52 deletions(-)",
    "diff": "diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst\nindex a991fa14de..2a1a6ff899 100644\n--- a/doc/guides/rel_notes/deprecation.rst\n+++ b/doc/guides/rel_notes/deprecation.rst\n@@ -33,13 +33,6 @@ Deprecation Notices\n   ``__atomic_thread_fence`` must be used for patches that need to be merged in\n   20.08 onwards. This change will not introduce any performance degradation.\n \n-* bus: The ``dev->device.numa_node`` field is set by each bus driver for\n-  every device it manages to indicate on which NUMA node this device lies.\n-  When this information is unknown, the assigned value is not consistent\n-  across the bus drivers.\n-  In DPDK 22.11, the default value will be set to -1 by all bus drivers\n-  when the NUMA information is unavailable.\n-\n * kni: The KNI kernel module and library are not recommended for use by new\n   applications - other technologies such as virtio-user are recommended instead.\n   Following the DPDK technical board\ndiff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst\nindex 53fe21453c..d52f823694 100644\n--- a/doc/guides/rel_notes/release_22_11.rst\n+++ b/doc/guides/rel_notes/release_22_11.rst\n@@ -317,6 +317,12 @@ ABI Changes\n * eventdev: Added ``weight`` and ``affinity`` fields\n   to ``rte_event_queue_conf`` structure.\n \n+* bus: Changed the device numa node to -1 when NUMA information is unavailable.\n+  The ``dev->device.numa_node`` field is set by each bus driver for\n+  every device it manages to indicate on which NUMA node this device lies.\n+  When this information is unknown, the assigned value was not consistent\n+  across the bus drivers. This similarly impacts ``rte_eth_dev_socket_id()``.\n+\n \n Known Issues\n ------------\ndiff --git a/drivers/bus/auxiliary/auxiliary_common.c b/drivers/bus/auxiliary/auxiliary_common.c\nindex 259ff152c4..6bb1fe7c96 100644\n--- a/drivers/bus/auxiliary/auxiliary_common.c\n+++ b/drivers/bus/auxiliary/auxiliary_common.c\n@@ -105,12 +105,8 @@ rte_auxiliary_probe_one_driver(struct rte_auxiliary_driver *drv,\n \t\treturn -1;\n \t}\n \n-\tif (dev->device.numa_node < 0) {\n-\t\tif (rte_socket_count() > 1)\n-\t\t\tAUXILIARY_LOG(INFO, \"Device %s is not NUMA-aware, defaulting socket to 0\",\n-\t\t\t\t\tdev->name);\n-\t\tdev->device.numa_node = 0;\n-\t}\n+\tif (dev->device.numa_node < 0 && rte_socket_count() > 1)\n+\t\tRTE_LOG(INFO, EAL, \"Device %s is not NUMA-aware\\n\", dev->name);\n \n \tiova_mode = rte_eal_iova_mode();\n \tif ((drv->drv_flags & RTE_AUXILIARY_DRV_NEED_IOVA_AS_VA) > 0 &&\ndiff --git a/drivers/bus/auxiliary/linux/auxiliary.c b/drivers/bus/auxiliary/linux/auxiliary.c\nindex d4c564cd78..02fc9285dc 100644\n--- a/drivers/bus/auxiliary/linux/auxiliary.c\n+++ b/drivers/bus/auxiliary/linux/auxiliary.c\n@@ -40,14 +40,11 @@ auxiliary_scan_one(const char *dirname, const char *name)\n \t/* Get NUMA node, default to 0 if not present */\n \tsnprintf(filename, sizeof(filename), \"%s/%s/numa_node\",\n \t\t dirname, name);\n-\tif (access(filename, F_OK) != -1) {\n-\t\tif (eal_parse_sysfs_value(filename, &tmp) == 0)\n-\t\t\tdev->device.numa_node = tmp;\n-\t\telse\n-\t\t\tdev->device.numa_node = -1;\n-\t} else {\n-\t\tdev->device.numa_node = 0;\n-\t}\n+\tif (access(filename, F_OK) == 0 &&\n+\t    eal_parse_sysfs_value(filename, &tmp) == 0)\n+\t\tdev->device.numa_node = tmp;\n+\telse\n+\t\tdev->device.numa_node = SOCKET_ID_ANY;\n \n \tauxiliary_on_scan(dev);\n \ndiff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c\nindex 682427ba2c..447b222a76 100644\n--- a/drivers/bus/dpaa/dpaa_bus.c\n+++ b/drivers/bus/dpaa/dpaa_bus.c\n@@ -179,6 +179,7 @@ dpaa_create_device_list(void)\n \t\t}\n \n \t\tdev->device.bus = &rte_dpaa_bus.bus;\n+\t\tdev->device.numa_node = SOCKET_ID_ANY;\n \n \t\t/* Allocate interrupt handle instance */\n \t\tdev->intr_handle =\ndiff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c\nindex 8503004e3d..57bfb5111a 100644\n--- a/drivers/bus/fslmc/fslmc_bus.c\n+++ b/drivers/bus/fslmc/fslmc_bus.c\n@@ -156,6 +156,7 @@ scan_one_fslmc_device(char *dev_name)\n \t}\n \n \tdev->device.bus = &rte_fslmc_bus.bus;\n+\tdev->device.numa_node = SOCKET_ID_ANY;\n \n \t/* Allocate interrupt instance */\n \tdev->intr_handle =\ndiff --git a/drivers/bus/pci/bsd/pci.c b/drivers/bus/pci/bsd/pci.c\nindex 844d145fed..7459d15c7e 100644\n--- a/drivers/bus/pci/bsd/pci.c\n+++ b/drivers/bus/pci/bsd/pci.c\n@@ -246,7 +246,7 @@ pci_scan_one(int dev_pci_fd, struct pci_conf *conf)\n \tdev->max_vfs = 0;\n \n \t/* FreeBSD has no NUMA support (yet) */\n-\tdev->device.numa_node = 0;\n+\tdev->device.numa_node = SOCKET_ID_ANY;\n \n \tpci_common_set(dev);\n \ndiff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c\nindex c8703d52f3..ade17079fc 100644\n--- a/drivers/bus/pci/linux/pci.c\n+++ b/drivers/bus/pci/linux/pci.c\n@@ -283,17 +283,13 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr)\n \t}\n \n \t/* get numa node, default to 0 if not present */\n-\tsnprintf(filename, sizeof(filename), \"%s/numa_node\",\n-\t\t dirname);\n+\tsnprintf(filename, sizeof(filename), \"%s/numa_node\", dirname);\n \n-\tif (access(filename, F_OK) != -1) {\n-\t\tif (eal_parse_sysfs_value(filename, &tmp) == 0)\n-\t\t\tdev->device.numa_node = tmp;\n-\t\telse\n-\t\t\tdev->device.numa_node = -1;\n-\t} else {\n-\t\tdev->device.numa_node = 0;\n-\t}\n+\tif (access(filename, F_OK) == 0 &&\n+\t    eal_parse_sysfs_value(filename, &tmp) == 0)\n+\t\tdev->device.numa_node = tmp;\n+\telse\n+\t\tdev->device.numa_node = SOCKET_ID_ANY;\n \n \tpci_common_set(dev);\n \ndiff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c\nindex 5ea72bcf23..a59c5b4286 100644\n--- a/drivers/bus/pci/pci_common.c\n+++ b/drivers/bus/pci/pci_common.c\n@@ -235,12 +235,8 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr,\n \t\treturn 1;\n \t}\n \n-\tif (dev->device.numa_node < 0) {\n-\t\tif (rte_socket_count() > 1)\n-\t\t\tRTE_LOG(INFO, EAL, \"Device %s is not NUMA-aware, defaulting socket to 0\\n\",\n-\t\t\t\t\tdev->name);\n-\t\tdev->device.numa_node = 0;\n-\t}\n+\tif (dev->device.numa_node < 0 && rte_socket_count() > 1)\n+\t\tRTE_LOG(INFO, EAL, \"Device %s is not NUMA-aware\\n\", dev->name);\n \n \talready_probed = rte_dev_is_probed(&dev->device);\n \tif (already_probed && !(dr->drv_flags & RTE_PCI_DRV_PROBE_AGAIN)) {\ndiff --git a/drivers/bus/pci/windows/pci.c b/drivers/bus/pci/windows/pci.c\nindex 3f7a8b9432..5cf05ce1a0 100644\n--- a/drivers/bus/pci/windows/pci.c\n+++ b/drivers/bus/pci/windows/pci.c\n@@ -249,7 +249,6 @@ get_device_resource_info(HDEVINFO dev_info,\n \t\tDWORD error = GetLastError();\n \t\tif (error == ERROR_NOT_FOUND) {\n \t\t\t/* On older CPUs, NUMA is not bound to PCIe locality. */\n-\t\t\tdev->device.numa_node = 0;\n \t\t\treturn ERROR_SUCCESS;\n \t\t}\n \t\tRTE_LOG_WIN32_ERR(\"SetupDiGetDevicePropertyW\"\ndiff --git a/drivers/bus/vmbus/linux/vmbus_bus.c b/drivers/bus/vmbus/linux/vmbus_bus.c\nindex f502783f7a..01d8111b85 100644\n--- a/drivers/bus/vmbus/linux/vmbus_bus.c\n+++ b/drivers/bus/vmbus/linux/vmbus_bus.c\n@@ -293,7 +293,6 @@ vmbus_scan_one(const char *name)\n \t\t\tgoto error;\n \t\tdev->device.numa_node = tmp;\n \t} else {\n-\t\t/* if no NUMA support, set default to 0 */\n \t\tdev->device.numa_node = SOCKET_ID_ANY;\n \t}\n \ndiff --git a/drivers/bus/vmbus/vmbus_common.c b/drivers/bus/vmbus/vmbus_common.c\nindex 03b39c82b7..8d32d66504 100644\n--- a/drivers/bus/vmbus/vmbus_common.c\n+++ b/drivers/bus/vmbus/vmbus_common.c\n@@ -111,12 +111,8 @@ vmbus_probe_one_driver(struct rte_vmbus_driver *dr,\n \t/* reference driver structure */\n \tdev->driver = dr;\n \n-\tif (dev->device.numa_node < 0) {\n-\t\tif (rte_socket_count() > 1)\n-\t\t\tVMBUS_LOG(INFO, \"Device %s is not NUMA-aware, defaulting socket to 0\",\n-\t\t\t\t\tguid);\n-\t\tdev->device.numa_node = 0;\n-\t}\n+\tif (dev->device.numa_node < 0 && rte_socket_count() > 1)\n+\t\tVMBUS_LOG(INFO, \"Device %s is not NUMA-aware\", guid);\n \n \t/* call the driver probe() function */\n \tVMBUS_LOG(INFO, \"  probe driver: %s\", dr->driver.name);\ndiff --git a/drivers/dma/idxd/idxd_bus.c b/drivers/dma/idxd/idxd_bus.c\nindex 9b7b16c6e3..bbbfd3f648 100644\n--- a/drivers/dma/idxd/idxd_bus.c\n+++ b/drivers/dma/idxd/idxd_bus.c\n@@ -12,6 +12,7 @@\n #include <dev_driver.h>\n #include <rte_devargs.h>\n #include <rte_eal.h>\n+#include <rte_memory.h>\n #include <rte_log.h>\n #include <rte_dmadev_pmd.h>\n #include <rte_string_fns.h>\n@@ -322,7 +323,7 @@ dsa_scan(void)\n \n \twhile ((wq = readdir(dev_dir)) != NULL) {\n \t\tstruct rte_dsa_device *dev;\n-\t\tint numa_node = -1;\n+\t\tint numa_node = SOCKET_ID_ANY;\n \n \t\tif (strncmp(wq->d_name, \"wq\", 2) != 0)\n \t\t\tcontinue;\ndiff --git a/examples/distributor/main.c b/examples/distributor/main.c\nindex 68f07cc7fb..d41c3bdb14 100644\n--- a/examples/distributor/main.c\n+++ b/examples/distributor/main.c\n@@ -231,7 +231,7 @@ lcore_rx(struct lcore_params *p)\n \t\tif ((enabled_port_mask & (1 << port)) == 0)\n \t\t\tcontinue;\n \n-\t\tif (rte_eth_dev_socket_id(port) > 0 &&\n+\t\tif (rte_eth_dev_socket_id(port) >= 0 &&\n \t\t\t\trte_eth_dev_socket_id(port) != socket_id)\n \t\t\tprintf(\"WARNING, port %u is on remote NUMA node to \"\n \t\t\t\t\t\"RX thread.\\n\\tPerformance will not \"\n@@ -406,7 +406,7 @@ lcore_tx(struct rte_ring *in_r)\n \t\tif ((enabled_port_mask & (1 << port)) == 0)\n \t\t\tcontinue;\n \n-\t\tif (rte_eth_dev_socket_id(port) > 0 &&\n+\t\tif (rte_eth_dev_socket_id(port) >= 0 &&\n \t\t\t\trte_eth_dev_socket_id(port) != socket_id)\n \t\t\tprintf(\"WARNING, port %u is on remote NUMA node to \"\n \t\t\t\t\t\"TX thread.\\n\\tPerformance will not \"\ndiff --git a/examples/flow_classify/flow_classify.c b/examples/flow_classify/flow_classify.c\nindex 97708b7084..cdd51b2476 100644\n--- a/examples/flow_classify/flow_classify.c\n+++ b/examples/flow_classify/flow_classify.c\n@@ -818,6 +818,8 @@ main(int argc, char *argv[])\n \t\tprintf(\"\\nWARNING: Too many lcores enabled. Only 1 used.\\n\");\n \n \tsocket_id = rte_eth_dev_socket_id(0);\n+\tif (socket_id == SOCKET_ID_ANY)\n+\t\tsocket_id = rte_lcore_to_socket_id(rte_get_next_lcore(-1, 0, 0));\n \n \t/* Memory allocation. 8< */\n \tsize = RTE_CACHE_LINE_ROUNDUP(sizeof(struct flow_classifier_acl));\ndiff --git a/examples/rxtx_callbacks/main.c b/examples/rxtx_callbacks/main.c\nindex edf0ab9b08..59eee49208 100644\n--- a/examples/rxtx_callbacks/main.c\n+++ b/examples/rxtx_callbacks/main.c\n@@ -249,7 +249,7 @@ lcore_main(void)\n \tuint16_t port;\n \n \tRTE_ETH_FOREACH_DEV(port)\n-\t\tif (rte_eth_dev_socket_id(port) > 0 &&\n+\t\tif (rte_eth_dev_socket_id(port) >= 0 &&\n \t\t\t\trte_eth_dev_socket_id(port) !=\n \t\t\t\t\t\t(int)rte_socket_id())\n \t\t\tprintf(\"WARNING, port %u is on remote NUMA node to \"\ndiff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h\nindex a21f58b9cd..dd8d25d6d4 100644\n--- a/lib/ethdev/rte_ethdev.h\n+++ b/lib/ethdev/rte_ethdev.h\n@@ -2445,8 +2445,8 @@ int rte_eth_hairpin_unbind(uint16_t tx_port, uint16_t rx_port);\n  *   The port identifier of the Ethernet device\n  * @return\n  *   The NUMA socket ID to which the Ethernet device is connected or\n- *   a default of zero if the socket could not be determined.\n- *   -1 is returned is the port_id value is out of range.\n+ *   a default of -1 (SOCKET_ID_ANY) if the socket could not be determined.\n+ *   -1 is also returned if the port_id is invalid.\n  */\n int rte_eth_dev_socket_id(uint16_t port_id);\n \n",
    "prefixes": [
        "v2"
    ]
}