我的机器是HP ML350 G6,使用Xeon5500系列处理器,需要监控cpu的温度。由于不是Sparc处理器,所以使用prtdiag -v 命令无法获取cpu温度。于是我想写个小程序,通过读取处理器内部温度传感器的数值来获取cpu的温度。
在windows下可以通过类似下面的代码获取处理器内部温度传感器的数值:
_asm
{
mov eax,6;
cpuid;
mov deax,eax;
mov debx,ebx;
mov decx,ecx;
mov dedx,edx;
mov ecx,0x19c;
rdmsr;
mov deax,eax;
}
不知道这种方式能不能在Solaris下使用?
在Windows下需要在ring0下才能执行rdmsr指令,不知道在Solaris下是不是也需要进入ring0来执行这个指令?如果需要的话要怎么才能进入ring0?
除此之外有没有更好的办法获取cpu的温度?
还请高手指点,谢谢了。