MSR

FreeBSD上的{rd,wr}msr_safe

| Kernel | #FreeBSD | #kernel | #assembly | #MSR | #x86

这几天改 FreeBSDcoretemp(4) 遇到了一个问题。直接使用 rdmsr 的话,如果那个 MSR 不存在,则会触发 #GP(0),不了解 CPU 型号的情况下直接去杵肯定是不行的。后来翻了一下 cpuctl(4) 的代码发现 FreeBSD 上也有 rdmsr_safe。它的实现并不复杂( sys/amd64/amd64/support.S):

阅读全文…( 本文约 364 字,阅读大致需要 1 分钟 )