As peter pointed more directly at the tool, CoreInfo does the job and more and is pretty darn concise
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@flounder.com
Sent: Thursday, October 31, 2013 10:44 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Are their any tools to show NUMA configuration in Windows?
Note that my tool will write an XML file describing the configuration.
What I never got around to implementing was reading the XML file into the program to show the configuration. But the XML isn’t that hard to read.
joe
Here’s the XML description of the machine I’m using right now:
numa:data
<numa:getnumahighestnodenumber value=“0”></numa:getnumahighestnodenumber>
<numa:system_info dwactiveprocessormask=“255”> dwAllocationGranularity = “65536”
dwNumberOfProcessors = “8”
dwPageSize = “4096”
dwProcessorType = “586”
lpMaximumApplicationAddress = “0x7FFEFFFF”
lpMinimumApplicationAddress = “0x00010000”
wProcessorArchitecture = “0”
wProcessorLevel = “6”
wProcessorRevision = “6661”/>
numa:getnumaprocessornode
<numa:processornode node=“0” processor=“0”></numa:processornode>
<numa:processornode node=“0” processor=“1”></numa:processornode>
<numa:processornode node=“0” processor=“2”></numa:processornode>
<numa:processornode node=“0” processor=“3”></numa:processornode>
<numa:processornode node=“0” processor=“4”></numa:processornode>
<numa:processornode node=“0” processor=“5”></numa:processornode>
<numa:processornode node=“0” processor=“6”></numa:processornode>
<numa:processornode node=“0” processor=“7”></numa:processornode>
</numa:getnumaprocessornode>
numa:getnumaprocessormask
<numa:processormask node=“0” processormask=“0xff”></numa:processormask>
</numa:getnumaprocessormask>
numa:getnumaavailablememorynode
<numa:numaavailablememory kbytes=“1604116” node=“0”></numa:numaavailablememory>
</numa:getnumaavailablememorynode>
numa:getlogicalprocessorinformation
<numa:relationprocessorcore flags=“0x00” processormask=“0x00000001”></numa:relationprocessorcore>
<numa:relationcache associativity=“8” level=“1” linesize=“64” processormask=“0x00000001” type=“2” typename=“CacheData”></numa:relationcache>
<numa:relationcache associativity=“4” level=“1” linesize=“64” processormask=“0x00000001” type=“1” typename=“CacheInstruction”></numa:relationcache>
<numa:relationcache associativity=“8” level=“2” linesize=“64” processormask=“0x00000001” type=“0” typename=“CacheUnified”></numa:relationcache>
<numa:relationprocessorcore flags=“0x00” processormask=“0x00000002”></numa:relationprocessorcore>
<numa:relationcache associativity=“8” level=“1” linesize=“64” processormask=“0x00000002” type=“2” typename=“CacheData”></numa:relationcache>
<numa:relationcache associativity=“4” level=“1” linesize=“64” processormask=“0x00000002” type=“1” typename=“CacheInstruction”></numa:relationcache>
<numa:relationcache associativity=“8” level=“2” linesize=“64” processormask=“0x00000002” type=“0” typename=“CacheUnified”></numa:relationcache>
<numa:relationprocessorcore flags=“0x00” processormask=“0x00000004”></numa:relationprocessorcore>
<numa:relationcache associativity=“8” level=“1” linesize=“64” processormask=“0x00000004” type=“2” typename=“CacheData”></numa:relationcache>
<numa:relationcache associativity=“4” level=“1” linesize=“64” processormask=“0x00000004” type=“1” typename=“CacheInstruction”></numa:relationcache>
<numa:relationcache associativity=“8” level=“2” linesize=“64” processormask=“0x00000004” type=“0” typename=“CacheUnified”></numa:relationcache>
<numa:relationprocessorpackage processormask=“0x0000000F”></numa:relationprocessorpackage>
<numa:relationprocessorcore flags=“0x00” processormask=“0x00000008”></numa:relationprocessorcore>
<numa:relationcache associativity=“8” level=“1” linesize=“64” processormask=“0x00000008” type=“2” typename=“CacheData”></numa:relationcache>
<numa:relationcache associativity=“4” level=“1” linesize=“64” processormask=“0x00000008” type=“1” typename=“CacheInstruction”></numa:relationcache>
<numa:relationcache associativity=“8” level=“2” linesize=“64” processormask=“0x00000008” type=“0” typename=“CacheUnified”></numa:relationcache>
<numa:relationcache associativity=“16” level=“3” linesize=“64” processormask=“0x0000000F” type=“0” typename=“CacheUnified”></numa:relationcache>
<numa:relationprocessorcore flags=“0x00” processormask=“0x00000010”></numa:relationprocessorcore>
<numa:relationcache associativity=“8” level=“1” linesize=“64” processormask=“0x00000010” type=“2” typename=“CacheData”></numa:relationcache>
<numa:relationcache associativity=“4” level=“1” linesize=“64” processormask=“0x00000010” type=“1” typename=“CacheInstruction”></numa:relationcache>
<numa:relationcache associativity=“8” level=“2” linesize=“64” processormask=“0x00000010” type=“0” typename=“CacheUnified”></numa:relationcache>
<numa:relationprocessorcore flags=“0x00” processormask=“0x00000020”></numa:relationprocessorcore>
<numa:relationcache associativity=“8” level=“1” linesize=“64” processormask=“0x00000020” type=“2” typename=“CacheData”></numa:relationcache>
<numa:relationcache associativity=“4” level=“1” linesize=“64” processormask=“0x00000020” type=“1” typename=“CacheInstruction”></numa:relationcache>
<numa:relationcache associativity=“8” level=“2” linesize=“64” processormask=“0x00000020” type=“0” typename=“CacheUnified”></numa:relationcache>
<numa:relationprocessorcore flags=“0x00” processormask=“0x00000040”></numa:relationprocessorcore>
<numa:relationcache associativity=“8” level=“1” linesize=“64” processormask=“0x00000040” type=“2” typename=“CacheData”></numa:relationcache>
<numa:relationcache associativity=“4” level=“1” linesize=“64” processormask=“0x00000040” type=“1” typename=“CacheInstruction”></numa:relationcache>
<numa:relationcache associativity=“8” level=“2” linesize=“64” processormask=“0x00000040” type=“0” typename=“CacheUnified”></numa:relationcache>
<numa:relationprocessorpackage processormask=“0x000000F0”></numa:relationprocessorpackage>
<numa:relationprocessorcore flags=“0x00” processormask=“0x00000080”></numa:relationprocessorcore>
<numa:relationcache associativity=“8” level=“1” linesize=“64” processormask=“0x00000080” type=“2” typename=“CacheData”></numa:relationcache>
<numa:relationcache associativity=“4” level=“1” linesize=“64” processormask=“0x00000080” type=“1” typename=“CacheInstruction”></numa:relationcache>
<numa:relationcache associativity=“8” level=“2” linesize=“64” processormask=“0x00000080” type=“0” typename=“CacheUnified”></numa:relationcache>
<numa:relationcache associativity=“16” level=“3” linesize=“64” processormask=“0x000000F0” type=“0” typename=“CacheUnified”></numa:relationcache>
<numa:relationnumanode node=“0” processormask=“0x000000FF”></numa:relationnumanode>
</numa:getlogicalprocessorinformation>
numa:virtualallocexnuma</numa:virtualallocexnuma>
</numa:system_info></numa:data>
Tools, NOT API’s. My clients don’t want me to charge for writing a
tool for them unless they need it.
Don Burn
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of m
Sent: Thursday, October 31, 2013 6:59 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Are their any tools to show NUMA configuration in
Windows?
GetLogicalProcessorInformation(Ex)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683194(v=vs.
85).as
px
also look at
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.
85).as
px
“Don Burn” wrote in message news:xxxxx@ntdev…
I am dealing with a client who remotely has multiple NUMA systems they
believe are the same, but we are getting radically different
performance on them. Is there any tool(s) that shows processor
groups, memory and device
relationships for NUMA. I am looking for an easy way to see if these
system truly were set up to be the same.
Don Burn
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer