On Fri, Mar 23, 2018 at 4:08 PM, Ross Zwisler <[email protected]> wrote: > For systems that don't support NUMA, numactl gives a loud and fatal error: > > # numactl -N 0 ls > numactl: This system does not support NUMA policy > > Follow this model in ndctl for NUMA based filtering: > > # ./ndctl/ndctl list --numa-node=0 > Error: This system does not support NUMA > > This is done instead of just quietly filtering out all dimms, regions and > namespaces because the NUMA node they were trying to match didn't exist in > the system. > > libnuma tests whether NUMA is enabled via the get_mempolicy() syscall, > passing in all NULLs and 0s for arguments to always get the default policy. > See numa_available() in numa(3) and in the numactl source. > > ndctl checks sysfs for the existence of the /sys/devices/system/node > directory to avoid a dependency on libnuma. If we had a dependency on > libnuma we would have to choose whether this was fulfilled or not at > compile time, which would potentially mean that we could be on a > NUMA-enabled kernel but with an ndctl where NUMA support was disabled. > It's better to always have NUMA support in ndctl and only depend on the > kernel config. > > I've inspected the code for both get_mempolicy() and the code that creates > the /sys/devices/system/node directory, and they both seem to completely > rely on CONFIG_NUMA being defined. If CONFIG_NUMA is set, get_mempolicy() > will always be able to return a default policy and /sys/devices/system/node > will always exist. Otherwise, both checks will always fail. So, numactl > and ndctl should always agree on whether NUMA is supported on a given > system. > > Signed-off-by: Ross Zwisler <[email protected]> > Suggested-by: Dan Williams <[email protected]> > --- > > v3: Changed back to checking /sys/devices/system/node instead of using > libnuma, and added more info to the changelog.
Looks good, applied. _______________________________________________ Linux-nvdimm mailing list [email protected] https://lists.01.org/mailman/listinfo/linux-nvdimm
