[dpdk-dev] [PATCH v3] eal: Set numa node value for system which not support it.

Thomas Monjalon thomas at monjalon.net
Wed May 10 14:45:00 CEST 2017


09/05/2017 09:30, Tonghao Zhang:
> The NUMA node information for PCI devices provided through
> sysfs is invalid for AMD Opteron(TM) Processor 62xx and 63xx
> on Red Hat Enterprise Linux 6, and VMs on some hypervisors.

Sorry I don't understand the range of affected platforms.
Is it only on Opteron? Opteron with RHEL6? Is it fixed in recent kernels?
Which hypervisors? with which kernel?

> It is good to see more checking for valid values.

If values are wrong, what can we do?
Here you check that value is not too high.
What about other kind of wrong values?

> Signed-off-by: Tonghao Zhang <nic at opencloud.tech>
[...]
> -	/* get numa node */
> +	/* get numa node, default to 0 if not present */
>  	snprintf(filename, sizeof(filename), "%s/numa_node",
>  		 dirname);
> -	if (access(filename, R_OK) != 0) {
> -		/* if no NUMA support, set default to 0 */
> -		dev->device.numa_node = 0;

Why removing the access() check?

> -	} else {
> -		if (eal_parse_sysfs_value(filename, &tmp) < 0) {
> -			free(dev);
> -			return -1;
> -		}
> +
> +	if (eal_parse_sysfs_value(filename, &tmp) == 0 &&
> +		tmp < RTE_MAX_NUMA_NODES)
>  		dev->device.numa_node = tmp;
> -	}
> +	else
> +		dev->device.numa_node = 0;

It would deserve at least a warning log.


More information about the dev mailing list