http://defect.opensolaris.org/bz/show_bug.cgi?id=6266
Summary: cpupm_governor_initialize() is presumptuous
Classification: Development
Product: power-mgmt
Version: unspecified
Platform: Other
OS/Version: Solaris
Status: NEW
Severity: minor
Priority: P2
Component: PAD
AssignedTo: eric.saxe at sun.com
ReportedBy: mark.haywood at sun.com
CC: tesla-dev at opensolaris.org
Even after 6264 is fixed. The AMD Celestica system will not boot. It will panic
on boot with the following stack trace:
panic[cpu0]/thread=ffffff0501765ac0: BAD TRAP: type=e (#pf Page fault)
rp=ffffff001f4b3590 addr=20 occurred in module "unix" due to a NULL pointer
dereference
pmconfig: #pf Page fault
Bad kernel fault at addr=0x20
pid=100159, pc=0xfffffffffb86ea13, sp=0xffffff001f4b3680, eflags=0x10246
cr0: 80050033<pg,wp,ne,et,mp,pe> cr4: 6f8<xmme,fxsr,pge,mce,pae,pse,de>
cr2: 20cr3: eeeef000cr8: c
rdi: fffffffffbc60078 rsi: 0 rdx: 0
rcx: b r8: ffffff0501765ac0 r9: ffffff04f81cbd98
rax: 0 rbx: 0 rbp: ffffff001f4b36c0
r10: 3 r11: ffffff001f4b3660 r12: fffffffff88bb570
r13: 0 r14: 0 r15: fffffffffbc3c670
fsb: 0 gsb: fffffffffbc3c670 ds: 4b
es: 4b fs: 0 gs: 1c3
trp: e err: 0 rip: fffffffffb86ea13
cs: 30 rfl: 10246 rsp: ffffff001f4b3680
ss: 38
cpu address timestamp type vc handler pc
0 fffffffffbc162f0 f1814d8d8b trap e #pf
cpupm_governor_initialize+33
0 fffffffffbc16168 f1814c9682 sysc 36 ioctl bff04ff7
0 fffffffffbc15fe0 f1814c636c sysc 36 ioctl bff04ff7
0 fffffffffbc15e58 f1814c4f71 sysc 36 ioctl bff04ff7
0 fffffffffbc15cd0 f1814bf194 sysc 6 close bff04db7
0 fffffffffbc15b48 f181433d34 sysc 36 ioctl bff04ff7
0 fffffffffbc159c0 f1812bb477 sysc 36 ioctl bff04ff7
0 fffffffffbc15838 f1812965d1 sysc 36 ioctl bff04ff7
0 fffffffffbc156b0 f1812959fb sysc 36 ioctl bff04ff7
0 fffffffffbc15528 f181277e27 sysc 5 open32 bff05157
1 ffffff0501ec73d8 f1814d0015 intr a0 unknown mach_cpu_idle+b
1 ffffff0501ec7250 f180e8ddd1 intr a0 unknown mach_cpu_idle+b
1 ffffff0501ec70c8 f17edc5242 intr a0 unknown atomic_and_64+4
1 ffffff0501ec6f40 f17edc13d2 intr a0 unknown mach_cpu_idle+b
1 ffffff0501ec6db8 f17ec9ae12 sysc 4d syslwp_park bfebfa6b
1 ffffff0501ec6c30 f17ebee27e sysc c9 doorfs32 bfec4a01
1 ffffff0501ec6aa8 f17ebe8fa9 sysc c9 doorfs32 bfec484a
1 ffffff0501ec6920 f17ebe8815 sysc 14 getpid bfec3e97
1 ffffff0501ec6798 f17ebe7f38 sysc 14 getpid bfec3e97
1 ffffff0501ec6610 f17ebe44ac sysc c9 doorfs32 bfec4a01
2 ffffff0501ef0000 f1814d1851 intr a0 unknown mach_cpu_idle+b
2 ffffff0501efc278 f180e39da4 intr 1e mpt_intr mach_cpu_idle+b
2 ffffff0501efc0f0 f18065481c intr 1e mpt_intr mach_cpu_idle+b
2 ffffff0501efbf68 f17fee6e8e sysc 3 read32 bff05277
2 ffffff0501efbde0 f17fee5f1c sysc 36 ioctl bff04ff7
2 ffffff0501efbc58 f17fee548d sysc d9 fstat64_32 bff076f7
2 ffffff0501efbad0 f17fee035e trap e #pf bfe9af63
2 ffffff0501efb948 f17fede397 sysc 11 brk bff04d57
2 ffffff0501efb7c0 f17fedd818 sysc 11 brk bff04d57
2 ffffff0501efb638 f17fedc880 sysc d9 fstat64_32 bff076f7
3 ffffff0501f34f40 f1814d2d09 intr a0 unknown mach_cpu_idle+b
3 ffffff0501f34db8 f180e77d92 intr f0 xc_serv ddi_get_parent+f
3 ffffff0501f34c30 f180e4d6d7 intr f0 xc_serv i_ddi_parse_name+78
3 ffffff0501f34aa8 f180e43844 intr f0 xc_serv strcmp+4f
3 ffffff0501f34920 f1806cd8fa intr a0 unknown mach_cpu_idle+b
3 ffffff0501f34798 f17f964010 intr a0 unknown mach_cpu_idle+b
3 ffffff0501f34610 f17f357b4f sysc 3 read32 bff05277
3 ffffff0501f34488 f17f350e96 sysc 7d fxstat32 bff05bd7
3 ffffff0501f34300 f17f34c77f sysc 8d seteuid bff05307
3 ffffff0501f34178 f17f33c9df sysc 5 open32 bff05157
ffffff001f4b3450 unix:die+e7 ()
ffffff001f4b3580 unix:trap+19b5 ()
ffffff001f4b3590 unix:cmntrap+1d0 ()
ffffff001f4b36c0 unix:cpupm_governor_initialize+33 ()
ffffff001f4b36e0 unix:cpupm_set_policy+45 ()
ffffff001f4b3cb0 pm:pm_ioctl+3511 ()
ffffff001f4b3cf0 genunix:cdev_ioctl+45 ()
ffffff001f4b3d30 specfs:spec_ioctl+83 ()
ffffff001f4b3db0 genunix:fop_ioctl+7b ()
ffffff001f4b3eb0 genunix:ioctl+18e ()
ffffff001f4b3f00 unix:brand_sys_syscall32+292 ()
I believe that this is a result of these two calls failing:
did = cpupm_domain_id(cp, CPUPM_DTYPE_ACTIVE);
dom = cpupm_domain_find(did, CPUPM_DTYPE_ACTIVE);
Can we just exit if cpupm_domain_id() returns a -1? Or is there more code that
is depending upon cpupm_governor_initialize() succeeding?
--
Configure bugmail: http://defect.opensolaris.org/bz/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.