[SOLVED] Safe access to MSR IA32_PRED_CMD

[SOLVED] Safe access to MSR IA32_PRED_CMD


In the SDM, the MSR IA32_PRED_CMD (0x49) can be read if CPUID(EAX=07H, ECX=0):EDX[26] equals 1

For example, processor Xeon W3690 of architecture Westmere/Gulftown, microcode version 31, is capable of IBRS & IBPB, according to the EDX register of CPUID leave 7. However, reading the MSR 0x49 will immediately crash processor [whereas MSR IA32_SPEC_CTRL (0x48) works as specified]

FYI, same issue has been encountered with a i7-6700 Skylake processor


Question: what are the discriminant bits to safely read the MSR IA32_PRED_CMD ?


Thank you


5 posts / novo 0

Registers MSR_IA32_PRED_CMD and MSR_IA32_FLUSH_CMD are write-only

What kind of crash do you mean?  (Cleverly not testing this myself, just in case....)

"Dr. Bandwidth"

My driver was seg-faulting because reading this MSR. I fixed it by writing only the register. 

Thanks!  That sounds like the normal fault condition for a non-readable MSR (or for writing to any bits of an MSR that is not writable).  

I thought that Intel had configured the "write-only" MSRs to be readable (returning zero), but apparently not all of them!

"Dr. Bandwidth"

Deixar um comentário

Faça login para adicionar um comentário. Não é membro? Inscreva-se hoje mesmo