Coreinfo: A Quick OverviewCoreinfo is a compact command-line utility from Microsoft Sysinternals that reveals detailed information about a system’s CPU and logical processor topology. It’s particularly useful for system administrators, performance engineers, security researchers, and anyone who needs a low-level view of how the operating system sees processor features, caches, NUMA nodes, and affinity. This article explains what Coreinfo does, how to run it, how to interpret its output, and practical scenarios where it helps.
What Coreinfo Shows
Coreinfo queries the Windows kernel and CPU using documented and undocumented interfaces to display:
- Logical processor to physical core mapping — which logical CPU numbers map to which physical cores and hyperthreads.
- Processor features and flags — CPUID feature bits (e.g., SSE, AVX, AES, SMAP/SMEP) reported by the CPU and visible to the OS.
- Cache topology — per-core and shared caches (L1, L2, L3) and their sizes/associations.
- NUMA node topology — how processors and memory are grouped into NUMA nodes on multi-socket systems.
- Processor groups — mapping of logical processors into Windows processor groups on systems with many CPUs.
- Affinity masks — which processors are allowed for processes and threads.
- Extended features — things like XSAVE support, virtualization-related flags, and more.
This output helps determine whether the OS and applications can take advantage of CPU features and topology when optimizing performance or enforcing security mitigations.
Installing and Running Coreinfo
- Download Coreinfo from the Microsoft Sysinternals site (it’s a standalone executable).
- Run it from an elevated command prompt to get the most complete information. Many queries require administrator rights.
- Basic usage is simply:
coreinfo.exe
- Useful options:
-v
— verbose output with per-CPU details.-c
— show cache topology.-n
— display NUMA node information.-g
— show processor group information.-f
— show feature flags in a concise format.-s
— show CPU serial numbers and unique identifiers (if available).
Run coreinfo -?
to see the full list of options and switch combinations.
Reading Typical Output
Coreinfo’s output is text-based and organized into sections. Key parts to look for:
- Processor listing: rows of logical processor numbers with markers indicating which logical processors belong to each physical core or hyperthread pair. Example markers like
*
or.
may be used depending on the format. - Feature flags: lists of CPU features with an indicator showing whether the OS has enabled or disabled a feature. For instance, the CPU may support AES-NI, but the OS might or might not have enabled it for application use. If a flag shows as present, the OS can use that feature.
- Cache lines: sizes for L1, L2, and L3 caches and which logical processors share them. Shared L3 between cores on the same socket is common in modern multi-core processors.
- NUMA and processor groups: if you have a many-socket or many-core machine, Coreinfo will show which processors map to which NUMA nodes and how Windows has partitioned them into groups for scheduling.
Practical Use Cases
- Performance tuning: Binding an application or thread to specific cores (CPU affinity) requires accurate knowledge of logical-to-physical mapping to avoid placing threads on the same physical core’s hyperthreads and causing contention. Coreinfo makes that mapping explicit.
- NUMA-aware applications: For memory-intensive workloads, placing threads on processors that correspond to the same NUMA node as the memory they use reduces latency. Coreinfo’s NUMA map guides memory and thread placement.
- Security auditing: Check for presence of CPU mitigations, SMEP/SMAP, NX/XD, and other security-relevant features, and verify whether the OS recognizes them. This helps determine whether hardware-based protections are available.
- Virtualization troubleshooting: Determine whether virtualization-related CPU features (VMX, SVM) are exposed to the OS and whether nested virtualization is feasible.
- Compatibility checks: Before deploying software that requires specific instruction sets (AVX2, AVX-512), verify CPU support and OS exposure.
Examples and Interpretation
Example 1 — Avoiding hyperthread contention:
- If Coreinfo shows logical processors 0 and 8 are hyperthreads of the same physical core, schedule two heavy threads on 0 and 4 instead of 0 and 8 to get true core-level parallelism.
Example 2 — NUMA placement:
- On a dual-socket machine, Coreinfo may show processors 0–15 on NUMA node 0 and 16–31 on NUMA node 1. Bind memoryallocations and threads to the same node for lower latency.
Example 3 — Feature mismatch:
- CPU reports AVX-512 support but Coreinfo shows the OS has not enabled it — this can indicate the kernel or BIOS has disabled that feature or that the OS version lacks support.
Limitations and Caveats
- Coreinfo is Windows-only; it does not run on Linux or macOS.
- Some information (like serial numbers or certain extended flags) may be suppressed by firmware/BIOS or require specific OS privileges.
- Interpreting advanced flags can require cross-referencing Intel/AMD manuals for exact semantics. Coreinfo reports presence and visibility, but not always whether software will successfully use a feature under all conditions.
- On heavily virtualized or cloud environments, hypervisors may hide or alter processor features; Coreinfo reports what the guest OS sees, which may differ from the host’s physical CPU.
Alternatives and Complementary Tools
- Windows: Get-ProcessorInfo scripts in PowerShell, msinfo32, and Windows Performance Toolkit for deeper runtime profiling.
- Linux: lscpu, /proc/cpuinfo, numactl –hardware for similar topology and feature queries.
- Cross-platform: CPU-Z (GUI), hwinfo (Linux) for hardware details; performance profilers for runtime behavior.
Tool | Strengths | When to use |
---|---|---|
Coreinfo | Precise low-level view for Windows, Sysinternals reliability | Topology and feature checks on Windows servers/desktops |
msinfo32 | User-friendly GUI summary | Quick high-level system overview |
lscpu / /proc/cpuinfo | Native on Linux, scriptable | Linux topology and feature checks |
CPU-Z | GUI, easy-to-read | Desktop hardware inspection |
Security and Best Practices
- Run Coreinfo from an elevated prompt to ensure complete results.
- Use outputs as part of a broader systems inventory for patching and hardening decisions.
- Be cautious interpreting results in virtual machines; confirm with hypervisor settings or the cloud provider documentation.
Conclusion
Coreinfo is a small but powerful tool for revealing how Windows and the CPU expose processor topology and capabilities. Whether optimizing performance, validating platform features, or checking security-related flags, Coreinfo offers reliable, low-level insight. When combined with profiling and platform-specific tools, it helps administrators and engineers make informed decisions about placement, configuration, and compatibility.
Leave a Reply