[v5] bus: clarify log for non-NUMA-aware devices
Checks
Commit Message
PCI, vmbus, and auxiliary drivers printed a warning
when NUMA node had been reported as (-1) or not reported by OS:
EAL: Invalid NUMA socket, default to 0
This message and its level might confuse users because the configuration
is valid and nothing happens that requires attention or intervention.
It was also printed without the device identification and with an indent
(PCI only), which is confusing unless DEBUG logging is on to print
the header message with the device name.
Reduce level to INFO, reword the message, and suppress it when there is
only one NUMA node because NUMA awareness does not matter in this case.
Also, remove the indent for PCI.
Fixes: f0e0e86aa35d ("pci: move NUMA node check from scan to probe")
Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support")
Fixes: 1afce3086cf4 ("bus/auxiliary: introduce auxiliary bus")
Cc: stable@dpdk.org
Signed-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com>
Reviewed-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Reviewed-by: Xueming Li <xuemingl@nvidia.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
The messages say "socket" and not "node", because this is current
terminology in DPDK.
v5: Add device name, remove indent, fix typos (Thomas Monjalon)
v4: Fix build errors and a typo (CI).
v3: Keep resetting device NUMA node to 0 (Andrew Rybchenko).
v2: Add NUMA node count check (Stephen Hemminger).
doc/guides/nics/ena.rst | 2 +-
drivers/bus/auxiliary/auxiliary_common.c | 5 ++++-
drivers/bus/pci/pci_common.c | 5 ++++-
drivers/bus/vmbus/vmbus_common.c | 5 ++++-
4 files changed, 13 insertions(+), 4 deletions(-)
Comments
04/08/2021 10:03, Dmitry Kozlyuk:
> PCI, vmbus, and auxiliary drivers printed a warning
> when NUMA node had been reported as (-1) or not reported by OS:
>
> EAL: Invalid NUMA socket, default to 0
>
> This message and its level might confuse users because the configuration
> is valid and nothing happens that requires attention or intervention.
> It was also printed without the device identification and with an indent
> (PCI only), which is confusing unless DEBUG logging is on to print
> the header message with the device name.
>
> Reduce level to INFO, reword the message, and suppress it when there is
> only one NUMA node because NUMA awareness does not matter in this case.
> Also, remove the indent for PCI.
>
> Fixes: f0e0e86aa35d ("pci: move NUMA node check from scan to probe")
> Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support")
> Fixes: 1afce3086cf4 ("bus/auxiliary: introduce auxiliary bus")
> Cc: stable@dpdk.org
>
> Signed-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com>
> Reviewed-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
> Reviewed-by: Xueming Li <xuemingl@nvidia.com>
> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> ---
> The messages say "socket" and not "node", because this is current
> terminology in DPDK.
Yes we need to fix this terminology in a separate patch.
Applied, thanks.
@@ -246,7 +246,7 @@ Example output:
[...]
EAL: PCI device 0000:00:06.0 on NUMA socket -1
- EAL: Invalid NUMA socket, default to 0
+ EAL: Device 0000:00:06.0 is not NUMA-aware, defaulting socket to 0
EAL: probe driver: 1d0f:ec20 net_ena
Interactive-mode selected
@@ -17,6 +17,7 @@
#include <rte_memory.h>
#include <rte_eal.h>
#include <rte_eal_paging.h>
+#include <rte_lcore.h>
#include <rte_string_fns.h>
#include <rte_common.h>
#include <rte_devargs.h>
@@ -106,7 +107,9 @@ rte_auxiliary_probe_one_driver(struct rte_auxiliary_driver *drv,
}
if (dev->device.numa_node < 0) {
- AUXILIARY_LOG(INFO, "Device is not NUMA-aware, defaulting NUMA node to 0");
+ if (rte_socket_count() > 1)
+ AUXILIARY_LOG(INFO, "Device %s is not NUMA-aware, defaulting socket to 0",
+ dev->name);
dev->device.numa_node = 0;
}
@@ -16,6 +16,7 @@
#include <rte_bus.h>
#include <rte_pci.h>
#include <rte_bus_pci.h>
+#include <rte_lcore.h>
#include <rte_per_lcore.h>
#include <rte_memory.h>
#include <rte_eal.h>
@@ -190,7 +191,9 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr,
}
if (dev->device.numa_node < 0) {
- RTE_LOG(WARNING, EAL, " Invalid NUMA socket, default to 0\n");
+ if (rte_socket_count() > 1)
+ RTE_LOG(INFO, EAL, "Device %s is not NUMA-aware, defaulting socket to 0\n",
+ dev->name);
dev->device.numa_node = 0;
}
@@ -15,6 +15,7 @@
#include <rte_eal.h>
#include <rte_tailq.h>
#include <rte_devargs.h>
+#include <rte_lcore.h>
#include <rte_malloc.h>
#include <rte_errno.h>
#include <rte_memory.h>
@@ -112,7 +113,9 @@ vmbus_probe_one_driver(struct rte_vmbus_driver *dr,
dev->driver = dr;
if (dev->device.numa_node < 0) {
- VMBUS_LOG(WARNING, " Invalid NUMA socket, default to 0");
+ if (rte_socket_count() > 1)
+ VMBUS_LOG(INFO, "Device %s is not NUMA-aware, defaulting socket to 0",
+ guid);
dev->device.numa_node = 0;
}