In principle, a pause instruction in wait loops should improve performance when multiple threads are competing for use of a CPU, regardless of whether HyperThreading is available. Otherwise, it might enable power-saving opportunities.
Thanks. I've another question. In a HTT enabled processor, the resources are split between the 2 threads. If one enters a "hlt" state does it then relinquish all the resources to the other thread, essentially making all the resources available to a single thread?
Does one thread doing something like this cause it to release all the resources to be allocated to the other thread?
idle: jmp idle
Where can I read more about HTT and resource sharing?
Some of the resources are shared and others are split. This means that the shared resources of a stalled thread could be claimed by the another thread running on the other logical processor. For the split resources, those would remain divided between the logical processors and could not be used by the non-halted thread.
You should be able to find more details on HTT from the Intel Software Network papers. I think that there have been a few citations within this forum in the past, so you might search through there, too. I'm sure the processor architecture manuals can give you some of what you may be looking for. I think you should be able to search for those from within ISN.