Li, Aubrey wrote: > Mark.Haywood wrote: > > >> Li, Aubrey wrote: >> >>> pm-discuss-bounces at opensolaris.org wrote: >>> >>> >>> >>>> Jason Rhodes wrote: >>>> >>>> >>>>> I have an Intel E7400 CPU on an Intel DG43NB motherboard, >>>>> >>>>> >>>> and /cpu throttling does not appear to work under OpenSolaris. >>>> EIST is enabled in the BIOS, and I upgraded to the latest >>>> version 75 BIOS. I'm running snv_105. I've attached the .DSL >>>> file output by iasl -g, and included log messages an cpu_info >>>> below. I can provide additional info as necessary. >>>> >>>> >>>> Unless I'm mistaken, the problem is in the _PDC definition: >>>> >>>> Method (_PDC, 1, NotSerialized) >>>> { >>>> CreateDWordField (Arg0, 0x08, DAT0) >>>> Store (DAT0, TYPE) >>>> If (LEqual (CINT, Zero)) >>>> { >>>> Store (One, CINT) >>>> If (LOr (LEqual (And (TYPE, 0x1B), 0x1B), LEqual (DCOR, >>>> Zero))) { If (LNotEqual (NPSS, Zero)) >>>> { >>>> Load (SSDT, HNDL) >>>> } >>>> } >>>> Else >>>> { >>>> Store (One, NCST) >>>> } >>>> } >>>> } >>>> >>>> And in case this is all Greek to you, I believe that the _PSS >>>> is getting >>>> loaded dynamically and one of the requirements for it getting >>>> loaded is that the _PDC has bit 0x10 enabled (TYPE equaling 0x1B >>>> check above). That bit has *nothing* to do with SpeedStep. It is >>>> supposed to >>>> mean that >>>> the OS can support deep C-states on MP systems. I wish either, >>>> >>>> a) Intel had never introduced these _PDC bits or >>>> b) BIOS developers would get a clue as to what the bits mean. >>>> >>>> I'm not sure what to do about this. I'd hate to see us enable that >>>> bit in Solaris as a work around. If we do, then I'm pretty close to >>>> saying screw it and enabling all the _PDC bits all the time. The >>>> BIOS developers have blown their use all to hell. >>>> >>>> Again, I started this with "Unless I'm mistaken ...". ;-) >>>> >>>> Mark >>>> >>>> >>> sigh, buggy BIOS. "0x1B" checking will load "SSDT" table. Maybe there >>> is something else in the table need to be loaded to support deep >>> c-state, although I saw _CST(C1ST, C2ST, C3ST, C4ST) are already >>> there. >>> >>> This issue should be fixed in 110 and later build due to the deep >>> c-states support, by accident, :D. So no more work need to be done. >>> >>> >> Not necessarily. Only if cpu_deep_cstates_supported() returns B_TRUE. >> >> > > No, PDC setting doesn't need to do that check. >
Probably doesn't matter much, but besides the comment being wrong: /* * If we support deep cstates on this processor, then set the * correct cstate_ops for the processor and enable appropriate * _PDC bits. */ mach_state->ms_cstate.cma_ops = &cpu_idle_ops; cpupm_intel_pdccap |= CPUPM_INTEL_PDC_C1_HALT | CPUPM_INTEL_PDC_C2C3_MP | CPUPM_INTEL_PDC_C1_FFH; I do wonder why we are setting the bits if we don't support it? And unless I'm misreading the code, we even try to read the C-state data even in the case where we don't support the processor? Mark > Thanks, > -Aubrey > > >> Mark >> >> >>> Thanks, >>> -Aubrey >>> >>> >>> >>>> >>>>> Thanks. >>>>> >>>>> >>>>> root at cambot:~/ttt# grep cpudrv /var/adm/messages >>>>> Mar 23 17:07:53 cambot cpudrv: [ID 569748 kern.info] NOTICE: >>>>> >>>>> >>>> cpu_acpi: _PSS package not found. >>>> >>>> >>>>> Mar 23 17:07:53 cambot cpudrv: [ID 978953 kern.warning] >>>>> >>>>> >>>> WARNING: cpu_acpi: error parsing _PSS for CPU instance 0 >>>> >>>> >>>>> Mar 23 17:07:53 cambot cpudrv: [ID 647322 kern.warning] >>>>> >>>>> >>>> WARNING: cpudrv_mach_pm_init: instance 0: unable to initialize >>>> P-state support >>>> >>>> >>>>> Mar 23 17:07:53 cambot cpudrv: [ID 569748 kern.info] NOTICE: >>>>> >>>>> >>>> cpu_acpi: _TSS package not found. >>>> >>>> >>>>> Mar 23 17:07:53 cambot cpudrv: [ID 227567 kern.warning] >>>>> >>>>> >>>> WARNING: cpu_acpi: error parsing _TSS for CPU instance 0 >>>> >>>> >>>>> Mar 23 17:07:53 cambot cpudrv: [ID 888440 kern.warning] >>>>> >>>>> >>>> WARNING: cpudrv_mach_pm_init: instance 0: unable to initialize >>>> T-state support >>>> >>>> >>>>> root at cambot:~/ttt# kstat -m cpu_info >>>>> module: cpu_info instance: 0 >>>>> name: cpu_info0 class: misc >>>>> brand Intel(r) Core(tm)2 Duo CPU >>>>> E7400 @ 2.80GHz chip_id 0 >>>>> clock_MHz 2793 >>>>> clog_id 0 >>>>> core_id 0 >>>>> cpu_type i386 >>>>> crtime 34.705146564 >>>>> current_clock_Hz 2792966885 >>>>> family 6 >>>>> fpu_type i387 compatible >>>>> implementation x86 (chipid 0x0 >>>>> >>>>> >>>> GenuineIntel 1067A family 6 model 23 step 10 clock 2793 MHz) >>>> >>>> >>>>> model 23 >>>>> ncore_per_chip 2 >>>>> ncpu_per_chip 2 >>>>> pkg_core_id 0 >>>>> snaptime 174798.61890531 >>>>> state on-line >>>>> state_begin 1237842473 >>>>> stepping 10 >>>>> supported_frequencies_Hz 2792966885 >>>>> vendor_id GenuineIntel >>>>> >>>>> module: cpu_info instance: 1 >>>>> name: cpu_info1 class: misc >>>>> brand Intel(r) Core(tm)2 Duo CPU >>>>> E7400 @ 2.80GHz chip_id 0 >>>>> clock_MHz 2793 >>>>> clog_id 1 >>>>> core_id 1 >>>>> cpu_type i386 >>>>> crtime 39.623228409 >>>>> current_clock_Hz 2792966885 >>>>> family 6 >>>>> fpu_type i387 compatible >>>>> implementation x86 (chipid 0x0 >>>>> >>>>> >>>> GenuineIntel 1067A family 6 model 23 step 10 clock 2793 MHz) >>>> >>>> >>>>> model 23 >>>>> ncore_per_chip 2 >>>>> ncpu_per_chip 2 >>>>> pkg_core_id 1 >>>>> snaptime 174798.619555623 >>>>> state on-line >>>>> state_begin 1237842478 >>>>> stepping 10 >>>>> supported_frequencies_Hz 2792966885 >>>>> vendor_id GenuineIntel >>>>> >>>>> >>>>> >>>>> >>>> --------------------------------------------------------------- >>>> --------- >>>> >>>> >>>>> _______________________________________________ >>>>> pm-discuss mailing list >>>>> pm-discuss at opensolaris.org >>>>> http://mail.opensolaris.org/mailman/listinfo/pm-discuss >>>>> >>>>> >>>> _______________________________________________ >>>> pm-discuss mailing list >>>> pm-discuss at opensolaris.org >>>> http://mail.opensolaris.org/mailman/listinfo/pm-discuss >>>> > >