Our driver crashes(Blue Screen)when we enable HyperThreading on P4 processor with Windows XP. The driver runs without any problem when Hyper-threading is disabled. Also, this crash happens only with Intel D865GLC motherboard with P4 3.0GHz processor with HT enabled (the driver works fine on other motherboards with HT enabled)
We are using floating point operations in our driver.WinDbgshows floating point exception. The code flow involving FloatingPointUnit is as shown below:
1) Disable Interrupts (all interrupts except NMI)
2) Save Floating point context
3) Driver processing function (uses floating point operations)
4) Restore Floating point context
5) Enable Interrupts
The driver runs as a single thread in the kernel mode.
We are unable to get to the root cause of the problem. Any help would be appreciated.