61 lines
1.8 KiB
Diff
61 lines
1.8 KiB
Diff
From 3d28387cbc480a12b861294d36deaa26978419e1 Mon Sep 17 00:00:00 2001
|
|
From: Frank Du <frank.du@intel.com>
|
|
Date: Mon, 12 Dec 2022 08:48:57 +0800
|
|
Subject: [PATCH] net/af_xdp: parse NUMA node ID from sysfs
|
|
|
|
[ upstream commit 3d28387cbc480a12b861294d36deaa26978419e1 ]
|
|
|
|
Get from /sys/class/net/{if}/device/numa_node.
|
|
|
|
Signed-off-by: Frank Du <frank.du@intel.com>
|
|
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
|
|
---
|
|
drivers/net/af_xdp/rte_eth_af_xdp.c | 17 ++++++++++++++---
|
|
1 file changed, 14 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c
|
|
index b6ec9bf490..38b9d36ab5 100644
|
|
--- a/drivers/net/af_xdp/rte_eth_af_xdp.c
|
|
+++ b/drivers/net/af_xdp/rte_eth_af_xdp.c
|
|
@@ -39,6 +39,7 @@
|
|
#include <rte_power_intrinsics.h>
|
|
|
|
#include "compat.h"
|
|
+#include "eal_filesystem.h"
|
|
|
|
#ifndef SO_PREFER_BUSY_POLL
|
|
#define SO_PREFER_BUSY_POLL 69
|
|
@@ -2038,9 +2039,6 @@ rte_pmd_af_xdp_probe(struct rte_vdev_device *dev)
|
|
return -EINVAL;
|
|
}
|
|
|
|
- if (dev->device.numa_node == SOCKET_ID_ANY)
|
|
- dev->device.numa_node = rte_socket_id();
|
|
-
|
|
if (parse_parameters(kvlist, if_name, &xsk_start_queue_idx,
|
|
&xsk_queue_cnt, &shared_umem, prog_path,
|
|
&busy_budget, &force_copy) < 0) {
|
|
@@ -2053,6 +2051,19 @@ rte_pmd_af_xdp_probe(struct rte_vdev_device *dev)
|
|
return -EINVAL;
|
|
}
|
|
|
|
+ /* get numa node id from net sysfs */
|
|
+ if (dev->device.numa_node == SOCKET_ID_ANY) {
|
|
+ unsigned long numa = 0;
|
|
+ char numa_path[PATH_MAX];
|
|
+
|
|
+ snprintf(numa_path, sizeof(numa_path), "/sys/class/net/%s/device/numa_node",
|
|
+ if_name);
|
|
+ if (eal_parse_sysfs_value(numa_path, &numa) != 0)
|
|
+ dev->device.numa_node = rte_socket_id();
|
|
+ else
|
|
+ dev->device.numa_node = numa;
|
|
+ }
|
|
+
|
|
busy_budget = busy_budget == -1 ? ETH_AF_XDP_DFLT_BUSY_BUDGET :
|
|
busy_budget;
|
|
|
|
--
|
|
2.33.0
|
|
|