powertop "pread cpu0 0xe8 : Bad file descriptor" fixed by CONFIG_MSR
I hadn't seen this issue discussed on the list, and I don't know of a powertop mailing list, so here's what stymied my use of powertop until I straced it.
With CONFIG_MSR=n, powertop "1.97-2" (from Debian unstable) on 3.0.1 (and presumably many other recent kernels) exits at startup with:
pread cpu0 0xe8 : Bad file descriptor
strace shows:
open("/dev/cpu/0/msr", O_RDONLY) = -1 ENOENT (No such file or directory) pread(4294967295, 0x7fff4c8347c8, 8, 232) = -1 EBADF (Bad file descriptor)
Setting CONFIG_MSR=m and loading msr.ko fixes the issue, allowing powertop to work again (tested against 3.0.1). I'm pretty sure this is a regression from long ago -- I have had CONFIG_X86_MSR=n in almost all configs since 2.6.34-07097-gf4b87de, and powertop worked in most of those kernels. But I don't have references for what versions of powertop and what kernels I was running at various points.
-andy
Quoted 7 lines · Andy Isaacson
I hadn't seen this issue discussed on the list, and I don't know of a powertop mailing list, so here's what stymied my use of powertop until I straced it.
With
CONFIG_MSR=n, powertop "1.97-2" (from Debian unstable) on 3.0.1 (and presumably many other recent kernels) exits at startup with:
Quoted 7 lines
pread cpu0
0xe8: Bad file descriptorstrace shows:
open("/dev/cpu/0/msr", O_RDONLY)= -1 ENOENT (No such file or directory)pread(4294967295, 0x7fff4c8347c8, 8, 232)= -1 EBADF (Bad file descriptor)
Seems powertop forgot to check the return value of that open(). This is a bug of powertop, not kernel.