On older processors, NUMA isn't bound to PCIe locality. those cases return ERROR_NOT_FOUND in response to the SetupDiGetDevicePropertyW call with DEVPKEY_Device_Numa_Node attribute. This error fails the probe process for the PCIe device. this commit will ignore such failure and will set the numa_node to 0. Fixes: b762221ac24f ("bus/pci: support Windows with bifurcated drivers") Cc: stable@dpdk.org Reported-by: Odi Assli <odia@nvidia.com> Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> --- drivers/bus/pci/windows/pci.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/bus/pci/windows/pci.c b/drivers/bus/pci/windows/pci.c index 33a5fb1d83..62bac4b8ec 100644 --- a/drivers/bus/pci/windows/pci.c +++ b/drivers/bus/pci/windows/pci.c @@ -234,6 +234,15 @@ get_device_resource_info(HDEVINFO dev_info, &DEVPKEY_Device_Numa_Node, &property_type, (BYTE *)&numa_node, sizeof(numa_node), NULL, 0); if (!res) { + DWORD error = GetLastError(); + if (error == ERROR_NOT_FOUND) { + /* On older CPUs, NUMA isn't bound to PCIe locality + * We do not want to fail the probing process + * Setting 0 for numa_node and returnng ERROR_SUCCESS. + */ + dev->device.numa_node = 0; + return ERROR_SUCCESS; + } RTE_LOG_WIN32_ERR("SetupDiGetDevicePropertyW" "(DEVPKEY_Device_Numa_Node)"); return -1; -- 2.16.1.windows.4
> Subject: [PATCH] pci/windows: do not fail on missing NUMA node for PCIe
>
> On older processors, NUMA isn't bound to PCIe locality.
> those cases return ERROR_NOT_FOUND in response to the
> SetupDiGetDevicePropertyW call with DEVPKEY_Device_Numa_Node
> attribute.
>
> This error fails the probe process for the PCIe device.
> this commit will ignore such failure and will set the numa_node to 0.
>
> Fixes: b762221ac24f ("bus/pci: support Windows with bifurcated drivers")
> Cc: stable@dpdk.org
>
> Reported-by: Odi Assli <odia@nvidia.com>
> Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
> ---
> drivers/bus/pci/windows/pci.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/bus/pci/windows/pci.c b/drivers/bus/pci/windows/pci.c
> index 33a5fb1d83..62bac4b8ec 100644
> --- a/drivers/bus/pci/windows/pci.c
> +++ b/drivers/bus/pci/windows/pci.c
> @@ -234,6 +234,15 @@ get_device_resource_info(HDEVINFO dev_info,
> &DEVPKEY_Device_Numa_Node, &property_type,
> (BYTE *)&numa_node, sizeof(numa_node), NULL, 0);
> if (!res) {
> + DWORD error = GetLastError();
> + if (error == ERROR_NOT_FOUND) {
> + /* On older CPUs, NUMA isn't bound to PCIe locality
> + * We do not want to fail the probing process
> + * Setting 0 for numa_node and returnng
> ERROR_SUCCESS.
> + */
> + dev->device.numa_node = 0;
> + return ERROR_SUCCESS;
> + }
> RTE_LOG_WIN32_ERR("SetupDiGetDevicePropertyW"
> "(DEVPKEY_Device_Numa_Node)");
> return -1;
> --
> 2.16.1.windows.4
Tested-by: Odi Assli <odia@nvidia.com>
On Sun, 13 Dec 2020 16:16:04 +0200, Tal Shnaiderman wrote:
> On older processors, NUMA isn't bound to PCIe locality.
> those cases return ERROR_NOT_FOUND in response to the
> SetupDiGetDevicePropertyW call with DEVPKEY_Device_Numa_Node
> attribute.
>
> This error fails the probe process for the PCIe device.
> this commit will ignore such failure and will set the
> numa_node to 0.
>
> Fixes: b762221ac24f ("bus/pci: support Windows with bifurcated drivers")
> Cc: stable@dpdk.org
>
> Reported-by: Odi Assli <odia@nvidia.com>
> Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
On 12/13/2020 6:16 AM, Tal Shnaiderman wrote:
> On older processors, NUMA isn't bound to PCIe locality.
> those cases return ERROR_NOT_FOUND in response to the
> SetupDiGetDevicePropertyW call with DEVPKEY_Device_Numa_Node
> attribute.
>
> This error fails the probe process for the PCIe device.
> this commit will ignore such failure and will set the
> numa_node to 0.
>
> Fixes: b762221ac24f ("bus/pci: support Windows with bifurcated drivers")
> Cc: stable@dpdk.org
>
> Reported-by: Odi Assli <odia@nvidia.com>
> Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
> ---
> drivers/bus/pci/windows/pci.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
Acked-by: Ranjit Menon<ranjit.menon@intel.com>
13/12/2020 15:16, Tal Shnaiderman: > On older processors, NUMA isn't bound to PCIe locality. > those cases return ERROR_NOT_FOUND in response to the > SetupDiGetDevicePropertyW call with DEVPKEY_Device_Numa_Node > attribute. > > This error fails the probe process for the PCIe device. > this commit will ignore such failure and will set the > numa_node to 0. > > Fixes: b762221ac24f ("bus/pci: support Windows with bifurcated drivers") > Cc: stable@dpdk.org > > Reported-by: Odi Assli <odia@nvidia.com> > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> > --- > --- a/drivers/bus/pci/windows/pci.c > +++ b/drivers/bus/pci/windows/pci.c > @@ -234,6 +234,15 @@ get_device_resource_info(HDEVINFO dev_info, > &DEVPKEY_Device_Numa_Node, &property_type, > (BYTE *)&numa_node, sizeof(numa_node), NULL, 0); > if (!res) { > + DWORD error = GetLastError(); > + if (error == ERROR_NOT_FOUND) { > + /* On older CPUs, NUMA isn't bound to PCIe locality > + * We do not want to fail the probing process > + * Setting 0 for numa_node and returnng ERROR_SUCCESS. > + */ The last 2 lines of comment are rephrasing the 2 lines of code below, so it can be removed. > + dev->device.numa_node = 0; > + return ERROR_SUCCESS; > + } Applied with smaller comment, thanks.