Não parece haver uma maneira de usar sysctls para determinar se um sistema tem o hyperthreading ativado ou não. hw.ncpu
apenas informará ao kernel quantas CPUs estão disponíveis, o que incluirá núcleos, hyperthreads e processadores individuais.
Além disso, o link do Prince John Wesley é de 2006 e não parece mais relevante.
Por mais que eu odeie o grepping dmesg
, você pode fazer o seguinte (no FreeBSD 8.x):
dmesg | grep SMT
Sistemas Hyperthreaded devem retornar um resultado. Sistemas não hyperthreaded não devem.