cpu package reports (some) processor topology information
Note that the term package refers to a physical processor
and system refers to multiple packages. Also, a processor's
hardware capability may differ from its configuration.
See cpu_example.go for output information and usage
$ go get bitbucket.org/jpoirier/cpu
$ go run cpu_example.go
- add error enumerations
- if 64-bit, or newer 32-bit, and the leaf value is less than 4 check IA32_MISC_ENABLES bit 22
- Package refers to a physical processor that plugs in to a socket
- Core refers to a physical sub-system of a package. A core may contain 1 or more logical processors.
- A logical processor refers to a hardware resource that can execute a single thread.
- Hyper-threading refers to the technology that allows a processor core to provide the functionality of more than one logical core.
- Simultaneous Multi-Threading refers to multiple logical processors within the same core.
- MultiCore Processor contains more than one physical core.
- MultiProcessor Platform contains multiple physical sockets.
- Hardware Multithreading refers to any combination of hardware support to allow multithreading,
which could be any combination of SMT, multi-core, and multi-processor.
- Processor Topology is the hierarchical relationship of shared vs dedicated hardware resources.