On Sep 27, 2005, at 12:36, G?rard Gu?vel wrote: > > > >> You say the application runs, right? So what made you check the SPE >> bit state? The kernel keeps SPE disabled by default so it doesn't >> have to save the upper 32 bits of the registers every context >> switch. When a process uses SPE for the first time, an exception is >> triggered, the kernel enables SPE for that process, and then that >> process should be able to use SPE every time it gets cpu time. >> >> How are you determining that the SPE bit is not set? Is your >> application not executing the SPE instructions? >> >> Andy >> > > Yes the application runs. I wrote a mini driver with an ioctl which > performs a mfmsr() call and returns the value to the user > application. > I called this ioctl at several times before and after executing SPE > code. > I already tried to manually force the SPE bit with another ioctl which > performs a enable_kernel_spe() call. The bit SPE is right set at > this time > but disappears later.
Your driver runs in kernel space. The kernel has the SPE bit off. The MSR state is process-specific. If the code executes, the MSR bit is set. Why do you want to see if the bit is set?