Description ------------ 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. Usage ----- See cpu_example.go for output information and usage Installation ------------ $ go get bitbucket.org/jpoirier/cpu Testing ------- $ go run cpu_example.go TODO ---- - add error enumerations - if 64-bit, or newer 32-bit, and the leaf value is less than 4 check IA32_MISC_ENABLES bit 22 Misc ---- - 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.