Are their any tools to show NUMA configuration in Windows?

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

Sysinternals has a tool that will dump groups and I think numa info, don’t know the tool name offhand, but it should be easy to figure out

d

Bent from my phone


From: Don Burnmailto:xxxxx
Sent: ?10/?31/?2013 8:10 AM
To: Windows System Software Devs Interest Listmailto:xxxxx
Subject: [ntdev] Are their any tools to show NUMA configuration in Windows?

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</mailto:xxxxx></mailto:xxxxx>

http://technet.microsoft.com/en-us/sysinternals/cc835722

> 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

Check out my NumaExplorer, full source available. It is probably
out-of-date w.r.t. > Vista, if new record types have been added. But I
did test it on any number of cofigurations during development.

www.flounder.com/numaexplorer.htm
joe


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

GetLogicalProcessorInformation(Ex)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683194(v=vs.85).aspx

also look at
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).aspx

“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

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

There is sample code to dump the config on the MSDN page. Turning that into
a tool is a matter of minutes. The interpretation of the output that takes
skill and time; and a detailed knowledge of application, allocation pattern
and a wide variety of other factors

IMHO the NUMA support on Windows is such that applications can’t effectively
use anything smaller than a processor group; everything else is on a guess
and check basis. And other than Intel’s vTune (now called amplifier of some
such as part of their C++ studio) there are no tools that even attempt to
measure the NUMA effect on a specific application on Windows.

Note that MS SQL server employs the concept of a ‘committed but not what I
want’ list precisely because the pages that it tries to allocate may not get
allocated from the NUMA node that it requested them from. Any application
that hopes to be NUMA aware must do the same because even VirtualAllocExNuma
doesn’t guarantee that the memory will ultimately be committed from RAM from
a particular node

“Don Burn” wrote in message news:xxxxx@ntdev…

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

I thought what I had was a tool.
joe

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

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=“<br”>“0x00000001”/>
<numa:relationcache associativity=“8” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000001” Type = “2” TypeName =
“CacheData”/>
<numa:relationcache associativity=“4” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000001” Type = “1” TypeName =
“CacheInstruction”/>
<numa:relationcache associativity=“8” level=“2” linesize=“<br”>“64” ProcessorMask = “0x00000001” Type = “0” TypeName =
“CacheUnified”/>
<numa:relationprocessorcore flags=“0x00” processormask=“<br”>“0x00000002”/>
<numa:relationcache associativity=“8” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000002” Type = “2” TypeName =
“CacheData”/>
<numa:relationcache associativity=“4” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000002” Type = “1” TypeName =
“CacheInstruction”/>
<numa:relationcache associativity=“8” level=“2” linesize=“<br”>“64” ProcessorMask = “0x00000002” Type = “0” TypeName =
“CacheUnified”/>
<numa:relationprocessorcore flags=“0x00” processormask=“<br”>“0x00000004”/>
<numa:relationcache associativity=“8” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000004” Type = “2” TypeName =
“CacheData”/>
<numa:relationcache associativity=“4” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000004” Type = “1” TypeName =
“CacheInstruction”/>
<numa:relationcache associativity=“8” level=“2” linesize=“<br”>“64” ProcessorMask = “0x00000004” Type = “0” TypeName =
“CacheUnified”/>
<numa:relationprocessorpackage processormask=“0x0000000F”></numa:relationprocessorpackage>
<numa:relationprocessorcore flags=“0x00” processormask=“<br”>“0x00000008”/>
<numa:relationcache associativity=“8” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000008” Type = “2” TypeName =
“CacheData”/>
<numa:relationcache associativity=“4” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000008” Type = “1” TypeName =
“CacheInstruction”/>
<numa:relationcache associativity=“8” level=“2” linesize=“<br”>“64” ProcessorMask = “0x00000008” Type = “0” TypeName =
“CacheUnified”/>
<numa:relationcache associativity=“16” level=“3” linesize>= “64” ProcessorMask = “0x0000000F” Type = “0” TypeName =
“CacheUnified”/>
<numa:relationprocessorcore flags=“0x00” processormask=“<br”>“0x00000010”/>
<numa:relationcache associativity=“8” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000010” Type = “2” TypeName =
“CacheData”/>
<numa:relationcache associativity=“4” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000010” Type = “1” TypeName =
“CacheInstruction”/>
<numa:relationcache associativity=“8” level=“2” linesize=“<br”>“64” ProcessorMask = “0x00000010” Type = “0” TypeName =
“CacheUnified”/>
<numa:relationprocessorcore flags=“0x00” processormask=“<br”>“0x00000020”/>
<numa:relationcache associativity=“8” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000020” Type = “2” TypeName =
“CacheData”/>
<numa:relationcache associativity=“4” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000020” Type = “1” TypeName =
“CacheInstruction”/>
<numa:relationcache associativity=“8” level=“2” linesize=“<br”>“64” ProcessorMask = “0x00000020” Type = “0” TypeName =
“CacheUnified”/>
<numa:relationprocessorcore flags=“0x00” processormask=“<br”>“0x00000040”/>
<numa:relationcache associativity=“8” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000040” Type = “2” TypeName =
“CacheData”/>
<numa:relationcache associativity=“4” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000040” Type = “1” TypeName =
“CacheInstruction”/>
<numa:relationcache associativity=“8” level=“2” linesize=“<br”>“64” ProcessorMask = “0x00000040” Type = “0” TypeName =
“CacheUnified”/>
<numa:relationprocessorpackage processormask=“0x000000F0”></numa:relationprocessorpackage>
<numa:relationprocessorcore flags=“0x00” processormask=“<br”>“0x00000080”/>
<numa:relationcache associativity=“8” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000080” Type = “2” TypeName =
“CacheData”/>
<numa:relationcache associativity=“4” level=“1” linesize=“<br”>“64” ProcessorMask = “0x00000080” Type = “1” TypeName =
“CacheInstruction”/>
<numa:relationcache associativity=“8” level=“2” linesize=“<br”>“64” ProcessorMask = “0x00000080” Type = “0” TypeName =
“CacheUnified”/>
<numa:relationcache associativity=“16” level=“3” linesize>= “64” ProcessorMask = “0x000000F0” Type = “0” TypeName =
“CacheUnified”/>
<numa:relationnumanode node=“0” processormask=“0x000000FF”></numa:relationnumanode>
</numa:relationcache></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></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

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

Fine.

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=“<br”>> “0x00000001”/>
> <numa:relationcache associativity=“8” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000001” Type = “2” TypeName =
> “CacheData”/>
> <numa:relationcache associativity=“4” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000001” Type = “1” TypeName =
> “CacheInstruction”/>
> <numa:relationcache associativity=“8” level=“2” linesize=“<br”>> “64” ProcessorMask = “0x00000001” Type = “0” TypeName =
> “CacheUnified”/>
> <numa:relationprocessorcore flags=“0x00” processormask=“<br”>> “0x00000002”/>
> <numa:relationcache associativity=“8” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000002” Type = “2” TypeName =
> “CacheData”/>
> <numa:relationcache associativity=“4” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000002” Type = “1” TypeName =
> “CacheInstruction”/>
> <numa:relationcache associativity=“8” level=“2” linesize=“<br”>> “64” ProcessorMask = “0x00000002” Type = “0” TypeName =
> “CacheUnified”/>
> <numa:relationprocessorcore flags=“0x00” processormask=“<br”>> “0x00000004”/>
> <numa:relationcache associativity=“8” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000004” Type = “2” TypeName =
> “CacheData”/>
> <numa:relationcache associativity=“4” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000004” Type = “1” TypeName =
> “CacheInstruction”/>
> <numa:relationcache associativity=“8” level=“2” linesize=“<br”>> “64” ProcessorMask = “0x00000004” Type = “0” TypeName =
> “CacheUnified”/>
> <numa:relationprocessorpackage processormask=“0x0000000F”></numa:relationprocessorpackage>
> <numa:relationprocessorcore flags=“0x00” processormask=“<br”>> “0x00000008”/>
> <numa:relationcache associativity=“8” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000008” Type = “2” TypeName =
> “CacheData”/>
> <numa:relationcache associativity=“4” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000008” Type = “1” TypeName =
> “CacheInstruction”/>
> <numa:relationcache associativity=“8” level=“2” linesize=“<br”>> “64” ProcessorMask = “0x00000008” Type = “0” TypeName =
> “CacheUnified”/>
> <numa:relationcache associativity=“16” level=“3” linesize>> = “64” ProcessorMask = “0x0000000F” Type = “0” TypeName =
> “CacheUnified”/>
> <numa:relationprocessorcore flags=“0x00” processormask=“<br”>> “0x00000010”/>
> <numa:relationcache associativity=“8” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000010” Type = “2” TypeName =
> “CacheData”/>
> <numa:relationcache associativity=“4” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000010” Type = “1” TypeName =
> “CacheInstruction”/>
> <numa:relationcache associativity=“8” level=“2” linesize=“<br”>> “64” ProcessorMask = “0x00000010” Type = “0” TypeName =
> “CacheUnified”/>
> <numa:relationprocessorcore flags=“0x00” processormask=“<br”>> “0x00000020”/>
> <numa:relationcache associativity=“8” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000020” Type = “2” TypeName =
> “CacheData”/>
> <numa:relationcache associativity=“4” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000020” Type = “1” TypeName =
> “CacheInstruction”/>
> <numa:relationcache associativity=“8” level=“2” linesize=“<br”>> “64” ProcessorMask = “0x00000020” Type = “0” TypeName =
> “CacheUnified”/>
> <numa:relationprocessorcore flags=“0x00” processormask=“<br”>> “0x00000040”/>
> <numa:relationcache associativity=“8” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000040” Type = “2” TypeName =
> “CacheData”/>
> <numa:relationcache associativity=“4” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000040” Type = “1” TypeName =
> “CacheInstruction”/>
> <numa:relationcache associativity=“8” level=“2” linesize=“<br”>> “64” ProcessorMask = “0x00000040” Type = “0” TypeName =
> “CacheUnified”/>
> <numa:relationprocessorpackage processormask=“0x000000F0”></numa:relationprocessorpackage>
> <numa:relationprocessorcore flags=“0x00” processormask=“<br”>> “0x00000080”/>
> <numa:relationcache associativity=“8” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000080” Type = “2” TypeName =
> “CacheData”/>
> <numa:relationcache associativity=“4” level=“1” linesize=“<br”>> “64” ProcessorMask = “0x00000080” Type = “1” TypeName =
> “CacheInstruction”/>
> <numa:relationcache associativity=“8” level=“2” linesize=“<br”>> “64” ProcessorMask = “0x00000080” Type = “0” TypeName =
> “CacheUnified”/>
> <numa:relationcache associativity=“16” level=“3” linesize>> = “64” ProcessorMask = “0x000000F0” Type = “0” TypeName =
> “CacheUnified”/>
> <numa:relationnumanode node=“0” processormask=“<br”>> “0x000000FF”/>
> </numa:relationnumanode></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></numa:relationcache></numa:relationcache></numa:relationcache></numa:relationprocessorcore></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


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

Doron, Peter and Joe,

Sorry for the confusion. Your recommended TOOLS work fine. My post
was an objection to post further down that suggested API’s which I knew
about but did not want to be dealing with. Anyway, the tools did the job,
and showed that my customer who swore they only had one processor group had
two, and that their driver logic was severely broken.

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
xxxxx@flounder.com
Sent: Thursday, October 31, 2013 10:30 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Are their any tools to show NUMA configuration in
Windows?

I thought what I had was a tool.
joe

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

>

Check out my NumaExplorer, full source available. It is probably out-of-date w.r.t. > Vista, if new record types have been added. But I did test it on any number of
cofigurations during development.

www.flounder.com/numaexplorer.htm
joe

Joe,

The installed program errored on XmlBuilder.DLL not found.

The source code link is bad.

– Bob Ammerman
RAm Systems

I’m shocked, just SHOCKED.

Peter
OSR