Jump to content

(Solucionado) No logro C-States y P-States al mismo tiempo


franmglp
 Share

14 posts in this topic

Recommended Posts

Hola, tengo un problema con los C-States. No entiendo como hacerlos funcionar. Al parecer se comprueba con este comando en Terminal pero a mí no me devuelve nada.

ioreg -lw0 | grep AICPMVers

Solamente me devuelve información si no uso tablas SSDT para tener speedstep ya sea desde Clover o con un SSDT.aml parcheado.
 
Cuando uso un SSDT.aml o extraigo las tablas SSDT desde Clover siempre tengo el mismo resultado. Me funciona el power management pero no tengo C-States. Tengo estos estados:
 
AICPUPMI: CPU P-States [ 16 17 18 19 20 21 28 34 36 37 38 ]
 
Agrego lo que me devuelve el comando:

    | | |       "AICPMVers" = 19136773

Y una captura de SMC Monitor:

 

post-1042363-0-59307100-1405047461_thumb.png

 

Esto es cuando no uso ninguna tabla SSDT y no tengo power management (solamente 1.60 y 3.40 GHz).

 

Cuando tengo los 11 estados (1.60, 1.70, 1.80, 1.90, 2.00, 2.10, 2.80, 3.40, 3.60, 3.70 y 3.80 GHz) el comando no me devuelve nada y la ventana de SMC Monitor está vacía.

 

De más está decir que no entiendo nada sobre esto. Espero su ayuda.
 
Saludos.

  • Like 1
Link to comment
Share on other sites

Hola, tengo un problema con los C-States. No entiendo como hacerlos funcionar. Al parecer se comprueba con este comando en Terminal pero a mí no me devuelve nada.

ioreg -lw0 | grep AICPMVers

Solamente me devuelve información si no uso tablas SSDT para tener speedstep ya sea desde Clover o con un SSDT.aml parcheado.

 

Cuando uso un SSDT.aml o extraigo las tablas SSDT desde Clover siempre tengo el mismo resultado. Me funciona el power management pero no tengo C-States. Tengo estos estados:

 

AICPUPMI: CPU P-States [ 16 17 18 19 20 21 28 34 36 37 38 ]

 

Agrego lo que me devuelve el comando:

    | | |       "AICPMVers" = 19136773

Y una captura de SMC Monitor:

 

attachicon.gifCaptura de pantalla 2014-07-10 a la(s) 23.54.04.png

 

Esto es cuando no uso ninguna tabla SSDT y no tengo power management (solamente 1.60 y 3.40 GHz).

 

Cuando tengo los 11 estados (1.60, 1.70, 1.80, 1.90, 2.00, 2.10, 2.80, 3.40, 3.60, 3.70 y 3.80 GHz) el comando no me devuelve nada y la ventana de SMC Monitor está vacía.

 

De más está decir que no entiendo nada sobre esto. Espero su ayuda.

 

Saludos.

 

Jajajaj eso te pasa porque Argentina va a ganar el mundial.

Estoy leyendo tu post, vos usas Clover, que es una patada en los huevos - como al brazuca que esta acá arriba, "preguntale que se siete".

El creador del parche para mejorer un poco - tampoco funciona muy bien  -en power management es este tipo, creo que es gallego: http://pikeralpha.wordpress.com

Metete ahi y busca usuarios de Clover. 

 

Ahora te busco un link mas que lo explica mejor y te lo mando por privado.

  • Like 2
Link to comment
Share on other sites

Sobre que hardware tienes el problema? Si es en un Haswell creo que es normal porque han cambiado el power management y creo que ahora es el kernel el que lo controla. Fijate en el blog que puso Picasso que Pike describe un poco el tema y explica como funciona ahora.

 

Y para monitorear prueba usando algún otro programa, como HWMonitor que viene con FakeSMC o el kext AppleIntelCPUPowerManagementInfo de Pike que creo es el mas preciso.

 

Sube también un boot log de Clover o Chameleon y su archivo de configuración para ver bien que hace el sistema.

Link to comment
Share on other sites

Tengo un i5-3570K Ivy Bridge. El kext de Pike me da esta información:

AICPUPMI:

 

AICPUPMI: MWAIT C-States.....................: 4384
AICPUPMI: MSR_CORE_THREAD_COUNT......(0x35)  : 0x40004
AICPUPMI: MSR_PLATFORM_INFO..........(0xCE)  : 0x81010F0012200
AICPUPMI: MSR_PMG_CST_CONFIG_CONTROL.(0xE2)  : 0x1E000403
AICPUPMI: MSR_PMG_IO_CAPTURE_BASE....(0xE4)  : 0x10414
AICPUPMI: IA32_MPERF.................(0xE7)  : 0x8B4D33071
AICPUPMI: IA32_APERF.................(0xE8)  : 0x79EC8AA41
AICPUPMI: MSR_FLEX_RATIO.............(0x194) : 0xE0000
AICPUPMI: MSR_IA32_PERF_STATUS.......(0x198) : 0x205800002200
AICPUPMI: MSR_IA32_PERF_CONTROL......(0x199) : 0x2200
AICPUPMI: IA32_CLOCK_MODULATION......(0x19A) : 0x0
AICPUPMI: IA32_THERM_STATUS..........(0x19C) : 0x883D0000
AICPUPMI: IA32_MISC_ENABLES..........(0x1A0) : 0x850089
AICPUPMI: MSR_MISC_PWR_MGMT..........(0x1AA) : 0x400000
AICPUPMI: MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x24252626
AICPUPMI: IA32_ENERGY_PERF_BIAS......(0x1B0) : 0x0
AICPUPMI: MSR_POWER_CTL..............(0x1FC) : 0x14005F
AICPUPMI: MSR_RAPL_POWER_UNIT........(0x606) : 0xA1003
AICPUPMI: MSR_PKG_POWER_LIMIT........(0x610) : 0xA58000009F40
AICPUPMI: MSR_PKG_ENERGY_STATUS......(0x611) : 0xA4793F
AICPUPMI: MSR_PKGC3_IRTL.............(0x60a) : 0x883B
AICPUPMI: MSR_PKGC6_IRTL.............(0x60b) : 0x8850
AICPUPMI: MSR_PKGC7_IRTL.............(0x60c) : 0x8857
AICPUPMI: MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x1814149400000960
AICPUPMI: MSR_PP0_POWER_LIMIT........(0x638) : 0xA580
AICPUPMI: MSR_PP0_ENERGY_STATUS......(0x639) : 0x8574F3
AICPUPMI: MSR_PP0_POLICY.............(0x63a) : 0x0
AICPUPMI: MSR_CONFIG_TDP_NOMINAL.....(0x648) : 0x22
AICPUPMI: MSR_CONFIG_TDP_LEVEL1......(0x649) : 0x1E0000000000000
AICPUPMI: MSR_CONFIG_TDP_LEVEL2......(0x64a) : 0x1E0000000000000
AICPUPMI: MSR_CONFIG_TDP_CONTROL.....(0x64b) : 0x80000000
AICPUPMI: MSR_TURBO_ACTIVATION_RATIO.(0x64c) : 0x0
AICPUPMI: MSR_PKG_C2_RESIDENCY.......(0x60d) : 0x0
AICPUPMI: MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
AICPUPMI: MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
AICPUPMI: MSR_PKG_C7_RESIDENCY.......(0x3fa) : 0x0
AICPUPMI: CPU Low Frequency Mode.............: 1600 MHz
AICPUPMI: CPU Maximum non-Turbo Frequency....: 3400 MHz
AICPUPMI: CPU Maximum Turbo Frequency........: 3800 MHz
AICPUPMI: CPU P-States [ (16) 34 35 ]
AICPUPMI: CPU C6-Cores [ 1 2 ]
AICPUPMI: CPU P-States [ (16) 34 35 36 ]
AICPUPMI: CPU C6-Cores [ 1 2 3 ]
AICPUPMI: CPU P-States [ (16) 30 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 20 30 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 18 20 30 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 17 18 20 30 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 17 18 20 30 32 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 17 18 20 25 30 32 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 17 18 20 25 30 31 32 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 17 18 20 25 26 30 31 32 34 35 36 ]
AICPUPMI: CPU P-States [ 16 17 18 20 25 26 30 31 32 33 (34) 35 36 ]
AICPUPMI: CPU P-States [ (16) 17 18 20 25 26 28 30 31 32 33 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 17 18 20 24 25 26 28 30 31 32 33 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 17 18 19 20 24 25 26 28 30 31 32 33 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 17 18 19 20 23 24 25 26 28 30 31 32 33 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 17 18 19 20 23 24 25 26 27 28 30 31 32 33 34 35 36 ]
AICPUPMI: CPU P-States [ (16) 17 18 19 20 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ]
AICPUPMI: CPU C3-Cores [ 3 ]
AICPUPMI: CPU C6-Cores [ 0 1 2 3 ]
AICPUPMI: CPU C3-Cores [ 0 3 ]
AICPUPMI: CPU C3-Cores [ 0 2 3 ]
AICPUPMI: CPU C3-Cores [ 0 1 2 3 ]
AICPUPMI: CPU P-States [ 16 17 18 19 20 23 24 25 26 27 28 29 30 31 32 33 34 35 36 (37) ]
AICPUPMI: CPU P-States [ 16 17 18 19 20 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 (38) ]
AICPUPMI: CPU P-States [ 16 17 18 19 20 (21) 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ]
AICPUPMI: CPU P-States [ (16) 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ]

 


 
Estoy usando este config.plist y ningún SSDT.aml:
 
config.plist:
 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Debug</key>
			<false/>
			<key>DropOEM_DSM</key>
			<false/>
			<key>ReuseFFFF</key>
			<false/>
		</dict>
		<key>HaltEnabler</key>
		<true/>
		<key>SSDT</key>
		<dict>
			<key>DropOem</key>
			<true/>
			<key>EnableC6</key>
			<true/>
			<key>Generate</key>
			<dict>
				<key>CStates</key>
				<true/>
				<key>PStates</key>
				<true/>
			</dict>
		</dict>
	</dict>
	<key>Boot</key>
	<dict>
		<key>DefaultVolume</key>
		<string>Macintosh HD</string>
		<key>Fast</key>
		<true/>
		<key>Legacy</key>
		<string>PBR</string>
		<key>Log</key>
		<false/>
		<key>Secure</key>
		<false/>
		<key>Timeout</key>
		<integer>5</integer>
		<key>XMPDetection</key>
		<false/>
	</dict>
	<key>Devices</key>
	<dict>
		<key>Audio</key>
		<dict>
			<key>Inject</key>
			<string>12</string>
		</dict>
		<key>USB</key>
		<dict>
			<key>AddClockID</key>
			<false/>
			<key>FixOwnership</key>
			<false/>
			<key>Inject</key>
			<false/>
		</dict>
	</dict>
	<key>DisableDrivers</key>
	<array>
		<string>Nothing</string>
	</array>
	<key>GUI</key>
	<dict>
		<key>Hide</key>
		<array>
			<string>BOOTX64.EFI</string>
			<string>Windows</string>
		</array>
		<key>Language</key>
		<string>es:0</string>
		<key>Mouse</key>
		<dict>
			<key>Enabled</key>
			<true/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>8</integer>
		</dict>
		<key>Scan</key>
		<dict>
			<key>Entries</key>
			<true/>
			<key>Legacy</key>
			<true/>
			<key>Tool</key>
			<true/>
		</dict>
		<key>ScreenResolution</key>
		<string>1920x1080</string>
		<key>Theme</key>
		<string>bootcamp</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>DualLink</key>
		<integer>1</integer>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<true/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>ig-platform-id</key>
		<string>0x01660001</string>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<false/>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>LogEveryBoot</key>
		<string>No</string>
		<key>LogLineCount</key>
		<integer>0</integer>
		<key>MountEFI</key>
		<string>No</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BiosReleaseDate</key>
		<string>09/19/2013</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>MM61.88Z.0106.B04.1309191433</string>
		<key>Board-ID</key>
		<string>Mac-F65AE981FFA204ED</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>BoardSerialNumber</key>
		<string>SERIALNUMBERCINCO</string>
		<key>BoardType</key>
		<integer>10</integer>
		<key>ChassisAssetTag</key>
		<string>Mini-Aluminum</string>
		<key>ChassisManufacturer</key>
		<string>Apple Inc.</string>
		<key>ChassisType</key>
		<string>16</string>
		<key>Family</key>
		<string>Macmini</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>Mobile</key>
		<false/>
		<key>ProductName</key>
		<string>Macmini6,2</string>
		<key>SerialNumber</key>
		<string>SERIALNUMBER</string>
		<key>Trust</key>
		<false/>
		<key>Version</key>
		<string>1.0</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectKexts</key>
		<string>No</string>
		<key>InjectSystemID</key>
		<false/>
	</dict>
</dict>
</plist>

 

 

 

Buscando "acpi" en la consola:

 

AppleACPICPU: ProcessorId=1 LocalApicId=0 Enabled
AppleACPICPU: ProcessorId=2 LocalApicId=2 Enabled
AppleACPICPU: ProcessorId=3 LocalApicId=4 Enabled
AppleACPICPU: ProcessorId=4 LocalApicId=6 Enabled
ACPI: sleep states S3 S4 S5

 

Buscando "appleintelcpu" en la consola:

 

AppleIntelCPUPowerManagement: Turbo Ratios 2344
AppleIntelCPUPowerManagement: (built 21:36:10 Jun  3 2014) initialization complete
AppleIntelCPUPowerManagementClient: ready
IOPPF: AppleIntelCPUPowerManagement mode

 

Sin embargo el comando "ioreg -lw0 | grep AICPMVers" en Terminal no me devuelve nada y la ventana "P & C States" de SMC Monitor está vacía.

Link to comment
Share on other sites

No encuentras el AICPMVers porque esta usando un sistema de power management mas "nuevo". Si tienes el IORegistryExplorer localiza la rama CPU0@0->AppleACPICPU y fijate que se carga el X86PlatformPlugin en lugar del tradicional ACPI_SMC_PlatformPlugin que es el que contiene la información de AICPMVers. Ademas como podes ver el AICPUPMInfo reporta el uso de C3 y C6 en los 4 cores así que parece que funciona correctamente. Quizá debas cambiar los programas de monitoreo antes que nada, el SMC Monitor hace tiempo que no se actualiza y es probable que no funcione correctamente en CPUs mas nuevos. 

 

Mas allá de esto debo decir que no se mucho sobre power management de Ivy y solo repito lo que he leído por ahí. Por ejemplo aquí Allan explica que solo necesitas generar un SSDT (no se si es realmente necesario ahora con Clover) y activar el parche de AsusAICPUPM. Por qué no pruebas activando este parche a ver si mejora la cosa? Recuerda arrancar sin caches por las dudas.

 

 

EDIT: jaja, si he notado esos errores en el HWMonitor de vez en cuando, es claramente un problema de lectura de parte del programa (ya lo reportaré a kozlek) así que solo ignora esos valores astronómicos y observa el resto.

  • Like 1
Link to comment
Share on other sites

Definitivamente el problema era que al tener el power management funcionando se carga el X86PlatformPlugin que no reporta el AICPMVers como dices y solamente lo veía cuando desactivaba el power management ya que se carga el ACPI_SMC_Plugin.

 

El problema de HWMonitor debe ser de las últimas versiones, me quedo más tranquilo, pensé que se iba a quemar mi procesador. Y en cuanto al SSDT; ya sea usando uno generado por el script de Pike o generándolo con Clover me da el mismo resultado. Y el parche de AsusAICPUPM para que sería?

Link to comment
Share on other sites

  • 2 weeks later...

Hola.


Siguiendo con el proceso de afinado de mavericks me gustaría confirmar el correcto trabajo de p y c states, ya que DPCIManager solo me da dos P states. (recuerdo haber leído en otro foro que DPCIManager, al igual que MSRDumper, no van bien con haswell) y con HWMonitor no he conseguido averiguar como se ven los states.


Utilizo SSDT de ssdtPRGen y clover UEFI.


Les dejo log de AIPCUPM junto con mis impresiones (es la mejor forma de aprender) y ustedes me dicen si son correctas o no. Perdonenme si digo o pregunto alguna burrada pero estoy en proceso de aprendizaje:


 


Parece ser que power management esta funcionando bien pues se aprecian Pstates suficientes y se contempla turbo frecuencia:


 


21/07/14 17:03:26,000 kernel[0]: AICPUPMI: CPU Maximum Turbo Frequency........: 3300 MHz


 


C3, C6 y C7 parecen trabajar bien para los 4 núcleos.


 


¿Es este un trabajo correcto de los P y C states?


¿Después de activar logIGPU en el info.plist el  AICPUPMi  no tendría que darme también información de la IGPU?


 


Gracias de antemano.


Todos los mensajes.log.zip

Link to comment
Share on other sites

Usa pocos P-States, solo 8, 31 y 33, que corresponden al min, max y max-turbo. Sube un boot.log y tu config.plist para verificar como está configurado el sistema.

 

 

Sobre el logIGPU, puedes verificar su activación al principio del log que genera el AICPUPMInfo.

21/07/14 13:45:39,000 kernel[0]: AICPUPMI: v3.3 Copyright © 2012-2014 Pike R. Alpha. All rights reserved
21/07/14 13:45:39,000 kernel[0]: AICPUPMI: logMSRs............................: 1
21/07/14 13:45:39,000 kernel[0]: AICPUPMI: logIGPU............................: 1
21/07/14 13:45:39,000 kernel[0]: AICPUPMI: logCStates.........................: 1
21/07/14 13:45:39,000 kernel[0]: AICPUPMI: logIPGStyle........................: 1

Si has hecho el cambio en el plist y sigue sin funcionar puede ser un tema de permisos quizá. Vuelve a aplicar los permisos del kext e intenta nuevamente.

 

EDIT: recuerda dejar el kext cargado un buen tiempo mientras haces otras cosas para que el sistema tenga oportunidad de usar mas p-states.

Link to comment
Share on other sites

Hola Maniac10.

La consola llega un punto en el que no pone mas referencias de AICPUMI. Veras que la ultima es de las 17:30, lo he tenido hasta pasadas las 18:30, reproduciendo una peli, renderizando otra, reproduciendo un DVD y el programa de ajedrez, todo esto variandolo, y no se ha inmutado. Veras que aparece un fugaz (32).

El config.plist de clover que te pongo es el que estoy utilizando pero soy consciente de que esta por pulir.

config.plist.zip

Todos los mensajes.log.zip

bootlog.log.txt.zip

Link to comment
Share on other sites

Parece que activas el sistema xcpm de energía que es manejado por el kernel (Boot->Arguments->-xcpm) en lugar de los kexts tradicionales de power management. No hay mucha información sobre este método (Pike tiene un poco de info del tema en su blog) pero puede que sea el responsable de los resultados que ves. Has probado sin xcpm? Creo incluso que se debe modificar unas lineas del SSDT para su correcto trabajo pero no se decirte con certeza que modificar.

 

Te recomendaría evitar definir manualmente tantos parámetros de tu CPU que pueden afectar el rendimiento del sistema, Solo deja que Clover detecte los valores correctos, ha sido mejorado mucho el sistema de auto-detección. También debes limpiar la sección de KernelAndKextPatches->KextsToPatch que tienes listado varios parches ALC y solo necesitas el de TU ALC y el de "xml>zml".

Link to comment
Share on other sites

Hola Maniac10

  xcpm lo tengo activado por que seguí esta guia

http://www.insanelymac.com/forum/topic/295587-power-management-for-sandyivy-bridgehaswell-cpus/

Siguiendola hice el ssdt y parcheé mi haswell (pone que es para 10.9 - 10.9.1 pero supuse que servia para todos los 10.9.xxx) por eso tengo activado xcpm. Dime amigo Maniac si cometí algun disparate. 

Los parametros que meto en Cpu son los que detecta clover con su "Generate config". Supuse que serian correctos.

He hecho una llamada a AICPUPMi con xcpm quitado y el resultado es el mismo.

Link to comment
Share on other sites

No sabría decirte que esta mal porque nunca tuve un CPU Haswell así que mis conocimientos del tema son limitados a cosas que he leído de pasada en el foro. Lo mejor seria que hagas un post nuevo especificando tu problema a ver si alguien con mas conocimientos del tema te puede ayudar mejor. O mejor aun, postea tu consulta en ese hilo especializado en pm para haswell.

Link to comment
Share on other sites

 Share

×
×
  • Create New...