A simple and direct way to see which processors are active and which processors are not available due to “virtual processor folding” is the kernel debugger kdb.
The following command displays the desired information:
# echo vpm | kdb ... VSD Thread State. CPU CPPR VP_STATE FLAGS SLEEP_STATE PROD_TIME: SECS NSECS CEDE_LAT 0 0 ACTIVE 0 AWAKE 0000000000000000 00000000 00 1 0 ACTIVE 0 AWAKE 0000000000000000 00000000 00 2 0 ACTIVE 0 AWAKE 0000000000000000 00000000 00 3 0 ACTIVE 0 AWAKE 0000000000000000 00000000 00 4 0 DISABLED 0 AWAKE 0000000000000000 00000000 00 5 11 DISABLED 0 SLEEPING 000000005D9F15BE 0F77D2C6 02 6 11 DISABLED 0 SLEEPING 000000005D9F15BE 0F77D0C8 02 7 11 DISABLED 0 SLEEPING 000000005D9F15BE 217D3F61 02 #
The output was created on a system with 2 processor cores and SMT4. CPUs 4-7 are currrently DISABLED, which is the second processor core.