Thread (57 messages) 57 messages, 7 authors, 2019-10-30

Re: [PATCH v6] numa: make node_to_cpumask_map() NUMA_NO_NODE aware

From: Yunsheng Lin <hidden>
Date: 2019-09-24 01:29:58
Also in: linux-alpha, linux-mips, linux-s390, linux-sh, lkml, sparclinux

On 2019/9/24 4:34, Peter Zijlstra wrote:
On Mon, Sep 23, 2019 at 06:52:35PM +0200, Michal Hocko wrote:
quoted
On Mon 23-09-19 17:48:52, Peter Zijlstra wrote:
quoted
To the NUMA_NO_NODE itself. Your earlier email noted:
: > +
: >  	if ((unsigned)node >= nr_node_ids) {
: >  		printk(KERN_WARNING
: >  			"cpumask_of_node(%d): (unsigned)node >= nr_node_ids(%u)\n",
: 
: I still think this makes absolutely no sense what so ever.

Did you mean the NUMA_NO_NODE handling or the specific node >= nr_node_ids
check?
The NUMA_NO_NODE thing. It's is physical impossibility. And if the
device description doesn't give us a node, then the description is
incomplete and wrong and we should bloody well complain about it.
quoted
Because as to NUMA_NO_NODE I believe this makes sense because this is
the only way that a device is not bound to any numa node.
Which is a physical impossibility.
quoted
I even the
ACPI standard is considering this optional. Yunsheng Lin has referred to
the specific part of the standard in one of the earlier discussions.
Trying to guess the node affinity is worse than providing all CPUs IMHO.
I'm saying the ACPI standard is wrong. Explain to me how it is
physically possible to have a device without NUMA affinity in a NUMA
system?

 1) The fundamental interconnect is not uniform.
 2) The device needs to actually be somewhere.
From what I can see, NUMA_NO_NODE may make sense in the below case:

1) Theoretically, there would be a device that can access all the memory
uniformly and can be accessed by all cpus uniformly even in a NUMA system.
Suppose we have two nodes, and the device just sit in the middle of the
interconnect between the two nodes.

Even we define a third node solely for the device, we may need to look at
the node distance to decide the device can be accessed uniformly.

Or we can decide that the device can be accessed uniformly by setting
it's node to NUMA_NO_NODE.


2) For many virtual deivces, such as tun or loopback netdevice, they
are also accessed uniformly by all cpus.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help