From: Paul J. <pj...@en...> - 2001-10-11 19:29:47
|
On Thu, 11 Oct 2001, Jack Steiner wrote: > ... [pj...@sg... wrote:] ... > > The CpuMemSets cpu and memory placement proposal that I have > > recently updated the Design Note for, at: > > > > http://sourceforge.net/docman/display_doc.php?docid=7178&group_id=8875 > > > > has a logical versus real cpu id (and memory node id) construct. > > > > What is your definition of a "physical cpu id" & "physical > node id"? > > For cpu identifiers, most places in the kernel use what is called > a "cpuid". It is the value that is in task_struct.processor & > is the value returned by smp_processor_id(). I think this is > the best "id" to use in the interfaces to identify cpus. > > > Node identifiers currently come in 3 flavors (this terminology > may change but the concepts will be the same): For physical cpu id, I would want to use what is in the task struct and used to index the cpus_allowed bit vector in the scheduler. Looks like that is "cpuid". When I write "node" in the CpuMemSet Design Note, I am referring to a chunk of memory (just the memory), and typically write "memory node". Here, the choice of physical identifier might not matter much. What matters is that the right zone lists be handed to the kernel page allocation code in mm/page_alloc.c. But I am not clear on this detail yet. CpuMemSets does not have an explicit concept of "node", in the sense of a set of closely placed cpus and their associated memory and cache. The notion of a node is implicit, in two ways: 1) The topology and metrics reported via /proc need to show both: a] <cpu, mem> distances, reflecting memory latency and bandwidth from a cpu to a memory, and b] <cpu, cpu> distances, reflecting cache affinity -- two cpus sharing a major cache are closer. 2) The cpu and memory lists that are explicit in CpuMemSets will typically be arranged to respect the above distances and node topology, by higher level system management software. In other words, higher level software will often want to be cognizant of nodes when setting up configurations, but at the level of CpuMemSets it is just cpu and memory. I won't rest till it's the best ... Manager, Linux Scalability Paul Jackson <pj...@sg...> 1.650.933.1373 |