The OS can control individual cores using c-states.
If a core isn't being used it will have its cache flushed and be set to "0" Mhz to reduce power consumption.
On bare metal that is great if you want to save power. Not as great for performance but not bad.
On virtual machines it is not good because the VM doesn't own the core so there is jitter as it comes out of sleep for the next VM.
An example of parking is it is used as one of the ways to protect from the L1TF fault by parking the hyperthreads so they aren't used. VMware does this for ESXi in their new scheduler.
Another gotcha is the extra cores create scheduler latency but aren't getting used, also slowing you down. Further if you use more memory that is in that NUMA node, you face more slow down.
For performance and power, turn off hot add mem and cpu (either of these defeat NUMA and some scheduler optimizations), stay on real cores with a single socket when possible with less than the memory controlled by that cpu to stay inside the NUMA boundaries.
So for 2 sockets with 4 cores each and 4 threads each and 64gb the best performance and power is 1 socket, 4 cores (so the scheduler can keep it all in the same CPU without having to use threads) with <32gb so NUMA boundaries can be respected.