It's a performance issue. Hyperthreading is helpful for certain types of applications, but not for virtualized routing.
There is a good explanation by @TomjNorthIdaho in the linked thread
Why disable hyper-threading ?
Hyper-Threading is a CPU trick to make a CPU core appear and function as if it were two CPU cores.
Some teckie info on Hyper-Threading - - - What is actually happening when Hyper-Threading is enabled is this:
- There is a software configured SMI interrupt (System Management Interrupt) that
A) Stops the CPU
B) POPs the stack (It copies the contents of CPU registers to a temporary memory location).
C) It then PUSHes the stack (It copies the contents of a different temporary memory location into the CPU registers)
D) It then allows the CPU to resume running.
E) After a few clock cycles, another SMI event occurs and this time the SMI process POPs and PUSHes the stacks then resumes running the original CPU contents. This process constantly repeats which to make it appear as if a CPU core is is two CPU cores.