Instruções de montagem para descobrir quantos threads estão ativados em um sistema com vários núcleos
Estou trabalhando em um sistema básico no qual preciso determinar algum tempo após a inicialização quantos núcleos e threads estão ativados, para que eu possa enviar eventos SIPI. Também quero que cada thread saiba qual é o thread.
or exemplo, em uma configuração de núcleo único com HT ativado, temos (por exemplo, Intel Atom):
thread 0 --> core 0 thread 0
thread 1 --> core 0 thread 1
Enquanto em uma configuração de núcleo duplo sem HT, temos (por exemplo, Core 2 Duo):
thread 0 --> core 0 thread 0
thread 1 --> core 1 thread 0
Qual é a melhor maneira de determinar isso?
Editar Descobri como cada thread pode encontrar qual é o thread. Ainda não encontrei como determinar quantos núcleos existe