ปัญหา :
ไม่กี่เดือนที่ผ่านมา ฉันได้รับแล็ปท็อปสำหรับเล่นเกม MSI ใหม่ (GP76 Leopard w/Intel Core i7-10870H และ Nvidia RTX 3070)
อย่างไรก็ตาม ตั้งแต่เริ่มแรก ฉันประสบกับพฤติกรรมที่น่ารำคาญมาก: CPU บ้าบ่อยเกินไป ดังนั้นแฟน ๆ จึงไม่มีเหตุผลที่ดี
วิธีแก้ปัญหา:
ฉันแก้ไขปัญหานี้โดยเพียงแค่ปิดการใช้งาน อินเทล เทอร์โบ บูสต์อย :
เสียงสะท้อน 1 >/sys/devices/system/cpu/intel_pstate/no_turbo
นี่คือเอาต์พุตบันทึกสองรายการของ turbostat --สรุป --แสดง Busy%,Bzy_MHz,IRQ,PkgWatt,PkgTmp,RAMWatt,GFXWatt,CorWatt --ช่วง 6
โดยปิด/เปิดใช้งาน Turbo Boost ในงานเดียวกันที่ไม่ต้องการมาก
Turbo Boost ปิดใช้งาน:
turbostat เวอร์ชัน 20.09.30 - Len Brown <[email protected]>
CPUID(0): ระดับ CPUID ของแท้ของ Intel 0x16; 0x80000008 ระดับ x; ครอบครัว:รุ่น:ก้าว 0x6:a5:2 (6:165:2)
CPUID(1): SSE3 MONITOR - EIST TM2 TSC MSR ACPI-TM HT TM
CPUID(6): APERF, TURBO, DTS, PTM, HWP, HWPnotify, HWPwindow, HWPepp, No-HWPpkg, EPB
cpu2: MSR_IA32_MISC_ENABLE: 0x00850089 (TCC EIST MWAIT PREFETCH TURBO)
CPUID(7): SGX
cpu2: MSR_IA32_FEATURE_CONTROL: 0x00020005 (ล็อก)
CPUID(0x15): eax_crystal: 2 ebx_tsc: 184 ecx_crystal_hz: 0
TSC: 2208 เมกะเฮิรตซ์ (24000000 เฮิรตซ์ * 184/2/1000000)
CPUID(0x16): base_mhz: 2200 max_mhz: 5000 bus_mhz: 100
cpu2: MSR_MISC_PWR_MGMT: 0x00401cc0 (ENable-EIST_Coordination DISable-EPB DISable-OOB)
RAPL: 5825 วินาที Joule Counter Range ที่ 45 วัตต์
cpu2: MSR_PLATFORM_INFO: 0x8083bf1011600
8 * 100.0 = ความถี่ประสิทธิภาพสูงสุด 800.0 MHz
22 * 100.0 = ความถี่พื้นฐาน 2200.0 MHz
cpu2: MSR_IA32_POWER_CTL: 0x003c005f (การเลื่อนระดับอัตโนมัติ C1E: เปิดใช้งาน)
cpu2: MSR_TURBO_RATIO_LIMIT: 0x292b2c2d2e2f3132
41 * 100.0 = 4100.0 MHz เทอร์โบสูงสุด 8 คอร์ที่ใช้งานอยู่
43 * 100.0 = 4300.0 MHz เทอร์โบสูงสุด 7 คอร์ที่ใช้งานอยู่
44 * 100.0 = 4400.0 MHz เทอร์โบสูงสุด 6 คอร์ที่ใช้งานอยู่
45 * 100.0 = 4500.0 MHz เทอร์โบสูงสุด 5 คอร์ที่ใช้งานอยู่
46 * 100.0 = 4600.0 MHz เทอร์โบสูงสุด 4 คอร์ที่ใช้งานอยู่
47 * 100.0 = 4700.0 MHz เทอร์โบสูงสุด 3 คอร์ที่ใช้งานอยู่
49 * 100.0 = 4900.0 MHz เทอร์โบสูงสุด 2 คอร์ที่ใช้งานอยู่
50 * 100.0 = 5000.0 MHz เทอร์โบสูงสุด 1 คอร์ที่ใช้งานอยู่
cpu2: MSR_CONFIG_TDP_NOMINAL: 0x00000016 (base_ratio=22)
cpu2: MSR_CONFIG_TDP_LEVEL_1: 0x00120118 (PKG_MIN_PWR_LVL1=0 PKG_MAX_PWR_LVL1=0 LVL1_RATIO=18 PKG_TDP_LVL1=280)
ซีพียู 2: MSR_CONFIG_TDP_LEVEL_2: 0x00000000 ()
cpu2: MSR_CONFIG_TDP_CONTROL: 0x00000000 ( ล็อค=0)
cpu2: MSR_TURBO_ACTIVATION_RATIO: 0x00000015 (MAX_NON_TURBO_RATIO=21 ล็อค=0)
cpu2: MSR_PKG_CST_CONFIG_CONTROL: 0x1e008008 (UNdemote-C3, UNdemote-C1, demote-C3, demote-C1, ล็อค, pkg-cstate-limit=8 (ไม่จำกัด))
/dev/cpu_dma_latency: 2000000000 usec (ค่าเริ่มต้น)
current_driver: intel_idle
current_governor: เมนู
current_governor_ro: เมนู
cpu2: POLL: CPUIDLE CORE POLL IDLE
cpu2: C1ACPI: ACPI FFH MWAIT 0x0
cpu2: C2ACPI: ACPI FFH MWAIT 0x33
cpu2: C3ACPI: ACPI FFH MWAIT 0x60
cpu2: ไดรเวอร์ cpufreq: intel_pstate
cpu2: cpufreq Governor: ประหยัดพลังงาน
ซีพียู intel_pstate no_turbo: 1
cpu2: MSR_MISC_FEATURE_CONTROL: 0x00000000 (L2-Prefetch L2-Prefetch-pair L1-Prefetch L1-IP-Prefetch)
cpu0: MSR_PM_ENABLE: 0x00000001 (HWP)
cpu0: MSR_HWP_CAPABILITIES: 0x01081632 (สูง 50 กัวร์ 22 เอฟเอฟ 8 ต่ำ 1)
cpu0: MSR_HWP_REQUEST: 0x80001608 (ขั้นต่ำ 8 สูงสุด 22 des 0 epp 0x80 หน้าต่าง 0x0 pkg 0x0)
cpu0: MSR_HWP_INTERRUPT: 0x00000000 (Dis_Guaranteed_Perf_Change, Dis_Excursion_Min)
cpu0: MSR_HWP_STATUS: 0x00000000 (No-Guaranteed_Perf_Change, No-Excursion_Min)
cpu0: EPB: 6 (สมดุล)
cpu0: MSR_RAPL_POWER_UNIT: 0x000a0e03 (0.125000 วัตต์, 0.000061 จูล, 0.000977 วินาที)
cpu0: MSR_PKG_POWER_INFO: 0x00000168 (45 W TDP, RAPL 0 - 0 W, 0.000000 วินาที)
cpu0: MSR_PKG_POWER_LIMIT: 0x43864000df8640 (ปลดล็อค)
cpu0: PKG Limit #1: เปิดใช้งาน (200.000000 วัตต์, 56.000000 วินาที, เปิดใช้งานแคลมป์)
cpu0: PKG Limit #2: เปิดใช้งาน (200.000000 วัตต์, 0.002441* วินาที, เปิดใช้งานแคลมป์)
cpu0: MSR_DRAM_POWER_LIMIT: 0x5400de00000000 (ปลดล็อค)
cpu0: ขีด จำกัด DRAM: ปิดใช้งาน (0.000000 วัตต์, 0.000977 วินาที, แคลมป์ปิดใช้งาน)
cpu0: MSR_PP0_POLICY: 0
cpu0: MSR_PP0_POWER_LIMIT: 0x00000000 (ปลดล็อค)
cpu0: ขีดจำกัดคอร์: ปิดใช้งาน (0.000000 วัตต์, 0.000977 วินาที, แคลมป์ปิดใช้งาน)
cpu0: MSR_PP1_POLICY: 0
cpu0: MSR_PP1_POWER_LIMIT: 0x00000000 (ปลดล็อค)
cpu0: ขีดจำกัด GFX: ปิดใช้งาน (0.000000 วัตต์, 0.000977 วินาที, แคลมป์ปิดใช้งาน)
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x05640000 (100 องศาเซลเซียส)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x88380000 (44 C)
cpu0: MSR_IA32_PACKAGE_THERM_INTERRUPT: 0x00000003 (100 องศาเซลเซียส, 100 องศาเซลเซียส)
cpu2: MSR_PKGC3_IRTL: 0x0000884e (ถูกต้อง 79872 ns)
cpu2: MSR_PKGC6_IRTL: 0x00008876 (ถูกต้อง 120832 ns)
cpu2: MSR_PKGC7_IRTL: 0x00008894 (ถูกต้อง 151552 ns)
cpu2: MSR_PKGC8_IRTL: 0x000088fa (ถูกต้อง 256000 ns)
cpu2: MSR_PKGC9_IRTL: 0x0000894c (ถูกต้อง 339968 ns)
cpu2: MSR_PKGC10_IRTL: 0x00008bf2 (ถูกต้อง 1034240 ns)
ไม่ว่าง% Bzy_MHz IRQ PkgTmp PkgWatt CorWatt GFXWatt RAMWatt
3.50 2577 6940 44 6.56 1.70 0.00 0.76
3.55 1446 9321 45 4.96 1.08 0.00 0.90
4.60 1361 11377 45 5.07 1.29 0.00 1.02
6.91 2080 17822 50 7.85 3.26 0.00 0.85
6.84 2196 10866 50 9.36 3.72 0.00 0.85
7.01 2185 11353 50 8.50 3.79 0.00 0.84
7.27 2196 13078 50 8.80 3.96 0.00 0.84
7.36 2200 10385 49 10.00 4.12 0.00 0.84
7.27 2200 11124 49 7.43 4.17 0.00 0.84
7.24 2200 10872 49 7.37 4.11 0.00 0.84
7.27 2200 10866 50 7.34 4.08 0.00 0.84
7.25 2186 10891 50 7.21 3.95 0.00 0.84
7.29 2200 11188 50 7.27 4.01 0.00 0.84
7.24 2200 11702 49 7.30 4.03 0.00 0.84
7.28 2200 11692 50 7.35 4.08 0.00 0.84
7.26 2200 11515 50 7.31 4.05 0.00 0.84
7.26 2200 11103 50 7.32 4.05 0.00 0.84
7.35 2200 13125 50 7.38 4.12 0.00 0.84
7.62 2200 18003 50 7.56 4.29 0.00 0.85
7.15 2145 14333 47 7.13 3.85 0.00 0.86
1.64 1839 4533 45 6.88 0.68 0.00 0.76
1.45 1830 2615 46 7.60 0.58 0.00 0.74
เมื่อก่อน (เปิดใช้งาน Turbo Boost) Â :
turbostat เวอร์ชัน 20.09.30 - Len Brown <[email protected]>
CPUID(0): ระดับ CPUID ของแท้ของ Intel 0x16; 0x80000008 ระดับ x; ครอบครัว:รุ่น:ก้าว 0x6:a5:2 (6:165:2)
CPUID(1): SSE3 MONITOR - EIST TM2 TSC MSR ACPI-TM HT TM
CPUID(6): APERF, TURBO, DTS, PTM, HWP, HWPnotify, HWPwindow, HWPepp, No-HWPpkg, EPB
cpu10: MSR_IA32_MISC_ENABLE: 0x00850089 (TCC EIST MWAIT PREFETCH TURBO)
CPUID(7): SGX
cpu10: MSR_IA32_FEATURE_CONTROL: 0x00020005 (ล็อก)
CPUID(0x15): eax_crystal: 2 ebx_tsc: 184 ecx_crystal_hz: 0
TSC: 2208 เมกะเฮิรตซ์ (24000000 เฮิรตซ์ * 184/2/1000000)
CPUID(0x16): base_mhz: 2200 max_mhz: 5000 bus_mhz: 100
cpu10: MSR_MISC_PWR_MGMT: 0x00401cc0 (ENable-EIST_Coordination DISable-EPB DISable-OOB)
RAPL: 5825 วินาที Joule Counter Range ที่ 45 วัตต์
cpu10: MSR_PLATFORM_INFO: 0x8083bf1011600
8 * 100.0 = ความถี่ประสิทธิภาพสูงสุด 800.0 MHz
22 * 100.0 = ความถี่พื้นฐาน 2200.0 MHz
cpu10: MSR_IA32_POWER_CTL: 0x003c005f (การเลื่อนระดับอัตโนมัติ C1E: เปิดใช้งาน)
cpu10: MSR_TURBO_RATIO_LIMIT: 0x292b2c2d2e2f3132
41 * 100.0 = 4100.0 MHz เทอร์โบสูงสุด 8 คอร์ที่ใช้งานอยู่
43 * 100.0 = 4300.0 MHz เทอร์โบสูงสุด 7 คอร์ที่ใช้งานอยู่
44 * 100.0 = 4400.0 MHz เทอร์โบสูงสุด 6 คอร์ที่ใช้งานอยู่
45 * 100.0 = 4500.0 MHz เทอร์โบสูงสุด 5 คอร์ที่ใช้งานอยู่
46 * 100.0 = 4600.0 MHz เทอร์โบสูงสุด 4 คอร์ที่ใช้งานอยู่
47 * 100.0 = 4700.0 MHz เทอร์โบสูงสุด 3 คอร์ที่ใช้งานอยู่
49 * 100.0 = 4900.0 MHz เทอร์โบสูงสุด 2 คอร์ที่ใช้งานอยู่
50 * 100.0 = 5000.0 MHz เทอร์โบสูงสุด 1 คอร์ที่ใช้งานอยู่
cpu10: MSR_CONFIG_TDP_NOMINAL: 0x00000016 (base_ratio=22)
cpu10: MSR_CONFIG_TDP_LEVEL_1: 0x00120118 (PKG_MIN_PWR_LVL1=0 PKG_MAX_PWR_LVL1=0 LVL1_RATIO=18 PKG_TDP_LVL1=280)
ซีพียู 10: MSR_CONFIG_TDP_LEVEL_2: 0x00000000 ()
cpu10: MSR_CONFIG_TDP_CONTROL: 0x00000000 ( ล็อค=0)
cpu10: MSR_TURBO_ACTIVATION_RATIO: 0x00000015 (MAX_NON_TURBO_RATIO=21 ล็อค=0)
cpu10: MSR_PKG_CST_CONFIG_CONTROL: 0x1e008008 (UNdemote-C3, UNdemote-C1, demote-C3, demote-C1, ล็อค, pkg-cstate-limit=8 (ไม่จำกัด))
/dev/cpu_dma_latency: 2000000000 usec (ค่าเริ่มต้น)
current_driver: intel_idle
current_governor: เมนู
current_governor_ro: เมนู
cpu10: POLL: CPUIDLE CORE POLL IDLE
cpu10: C1ACPI: ACPI FFH MWAIT 0x0
cpu10: C2ACPI: ACPI FFH MWAIT 0x33
cpu10: C3ACPI: ACPI FFH MWAIT 0x60
cpu10: ไดรเวอร์ cpufreq: intel_pstate
cpu10: cpufreq Governor: ประหยัดพลังงาน
ซีพียู intel_pstate no_turbo: 0
cpu10: MSR_MISC_FEATURE_CONTROL: 0x00000000 (L2-Prefetch L2-Prefetch-pair L1-Prefetch L1-IP-Prefetch)
cpu0: MSR_PM_ENABLE: 0x00000001 (HWP)
cpu0: MSR_HWP_CAPABILITIES: 0x01081632 (สูง 50 กัวร์ 22 เอฟเอฟ 8 ต่ำ 1)
cpu0: MSR_HWP_REQUEST: 0x80003208 (ขั้นต่ำ 8 สูงสุด 50 des 0 epp 0x80 หน้าต่าง 0x0 pkg 0x0)
cpu0: MSR_HWP_INTERRUPT: 0x00000000 (Dis_Guaranteed_Perf_Change, Dis_Excursion_Min)
cpu0: MSR_HWP_STATUS: 0x00000000 (No-Guaranteed_Perf_Change, No-Excursion_Min)
cpu0: EPB: 6 (สมดุล)
cpu0: MSR_RAPL_POWER_UNIT: 0x000a0e03 (0.125000 วัตต์, 0.000061 จูล, 0.000977 วินาที)
cpu0: MSR_PKG_POWER_INFO: 0x00000168 (45 W TDP, RAPL 0 - 0 W, 0.000000 วินาที)
cpu0: MSR_PKG_POWER_LIMIT: 0x43864000df8640 (ปลดล็อค)
cpu0: PKG Limit #1: เปิดใช้งาน (200.000000 วัตต์, 56.000000 วินาที, เปิดใช้งานแคลมป์)
cpu0: PKG Limit #2: เปิดใช้งาน (200.000000 วัตต์, 0.002441* วินาที, เปิดใช้งานแคลมป์)
cpu0: MSR_DRAM_POWER_LIMIT: 0x5400de00000000 (ปลดล็อค)
cpu0: ขีด จำกัด DRAM: ปิดใช้งาน (0.000000 วัตต์, 0.000977 วินาที, แคลมป์ปิดใช้งาน)
cpu0: MSR_PP0_POLICY: 0
cpu0: MSR_PP0_POWER_LIMIT: 0x00000000 (ปลดล็อค)
cpu0: ขีดจำกัดคอร์: ปิดใช้งาน (0.000000 วัตต์, 0.000977 วินาที, แคลมป์ปิดใช้งาน)
cpu0: MSR_PP1_POLICY: 0
cpu0: MSR_PP1_POWER_LIMIT: 0x00000000 (ปลดล็อค)
cpu0: ขีดจำกัด GFX: ปิดใช้งาน (0.000000 วัตต์, 0.000977 วินาที, แคลมป์ปิดใช้งาน)
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x05640000 (100 องศาเซลเซียส)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x88370000 (45 C)
cpu0: MSR_IA32_PACKAGE_THERM_INTERRUPT: 0x00000003 (100 องศาเซลเซียส, 100 องศาเซลเซียส)
cpu10: MSR_PKGC3_IRTL: 0x0000884e (ถูกต้อง 79872 ns)
cpu10: MSR_PKGC6_IRTL: 0x00008876 (ถูกต้อง 120832 ns)
cpu10: MSR_PKGC7_IRTL: 0x00008894 (ถูกต้อง 151552 ns)
cpu10: MSR_PKGC8_IRTL: 0x000088fa (ถูกต้อง 256000 ns)
cpu10: MSR_PKGC9_IRTL: 0x0000894c (ถูกต้อง 339968 ns)
cpu10: MSR_PKGC10_IRTL: 0x00008bf2 (ถูกต้อง 1034240 ns)
ไม่ว่าง% Bzy_MHz IRQ PkgTmp PkgWatt CorWatt GFXWatt RAMWatt
1.88 3641 5797 43 10.07 4.34 0.00 0.75
2.61 1697 7673 42 6.49 1.79 0.00 0.88
4.35 2100 15882 68 8.27 4.20 0.00 0.97
5.19 2608 15240 42 11.41 7.50 0.00 0.90
5.45 3552 11849 66 17.01 11.81 0.00 0.88
6.21 4349 11560 77 21.86 17.17 0.00 0.84
7.14 4489 13990 79 26.32 21.18 0.00 0.89
6.48 4621 11100 79 25.58 20.96 0.00 0.84
6.49 4684 10883 81 26.02 21.41 0.00 0.84
6.47 4609 10874 81 25.73 20.99 0.00 0.84
6.45 4388 11430 78 24.04 19.43 0.00 0.85
6.47 4551 11377 76 25.07 20.44 0.00 0.84
6.50 4668 10891 80 25.98 21.25 0.00 0.84
6.43 4433 11053 80 24.43 19.80 0.00 0.85
6.47 4588 11079 79 25.59 20.86 0.00 0.84
6.52 4688 10827 82 26.35 21.61 0.00 0.84
6.52 4689 11453 82 26.27 21.64 0.00 0.84
6.72 4684 18989 76 27.30 22.66 0.00 0.84
6.53 4457 15215 82 26.02 21.28 0.00 0.85
2.97 3515 9289 46 12.27 6.32 0.00 0.82
0.32 942 1432 44 7.17 0.18 0.00 0.73
1.73 3185 2361 45 10.26 3.19 0.00 0.75
สิ่งนี้ทำงานได้ดี CPU ของฉันสงบมาก แต่ในขณะที่เล่นเกมบางเกม ตอนนี้ฉันพบว่าช้าลง/FPS ลดลงแม้ในสถานการณ์ที่ทุกอย่างปกติดีบนแล็ปท็อปเครื่องเก่าของฉันตั้งแต่ปี 2014 ซึ่งแน่นอนว่าเป็นสิ่งที่ยอมรับไม่ได้
งานวิจัยของฉันจนถึงตอนนี้:
ฉันมีปัญหาเดียวกันนี้บน Windows เช่นกันเมื่อติดตั้งใหม่และติดตั้ง ดราก้อนเซ็นเตอร์ (ยูทิลิตี MSI เฉพาะ Windows เท่านั้น) แก้ปัญหาได้ หลังจากขุดค้นข้อมูลบางอย่าง ดูเหมือนว่าจะเกี่ยวข้องกับบางสิ่งที่ MSI เรียก เทคโนโลยีการเปลี่ยนแปลงของ MSI ซึ่งฉันคิดว่าเกี่ยวข้องอย่างใกล้ชิดกับ Intel SpeedStep.
หลังจากขุดเพิ่มเติม ดูเหมือนว่าจะได้รับการจัดการผ่านตัวควบคุมแบบฝังของแล็ปท็อป โดยเขียนที่ที่อยู่หน่วยความจำ EC 0xD2 ด้วยวิธีนี้Â :
- บิต 7 ควรเป็น 1 เสมอ
- บิต 6 ควรเป็น 1 หากเปิดใช้งาน MSI shift มิฉะนั้น 0
- บิต 5, 4, 3 ไม่ได้ใช้ (ตั้งค่าเป็นศูนย์)
- ควรตั้งค่าบิต 2, 1, 0 ขึ้นอยู่กับระดับประสิทธิภาพที่ต้องการ ดังต่อไปนี้:
- 010Â : เศรษฐกิจ (ต่ำ)
- 001Â : สีเขียว (กลาง)
- 000Â : ความสบาย (สูง)
- 100Â : กีฬา (เทอร์โบ)
- 011Â : กำหนดโดยผู้ใช้
ดังนั้นฉันจึงเขียนโมดูลที่ทำอย่างนั้น แต่ดูเหมือนจะไม่เปลี่ยนแปลงอะไรเลย เห็นได้ชัดว่าฉันขาดอะไรไป แต่ฉันต้องอยู่ใกล้ๆ นี่คือโมดูลง่ายๆ ที่ควรตั้งค่าประสิทธิภาพของ CPU เป็นโหมดแบตเตอรี่ แต่อย่างที่ฉันบอกว่ามันใช้งานไม่ได้ (แม้ว่าฉันจะไม่ใช่โปรแกรมเขียนโค้ดโหมดเคอร์เนลที่มีประสบการณ์มาก่อน แต่ฉันไม่คิดว่าจะมีข้อผิดพลาดใหญ่หลวงที่นี่ตั้งแต่ฉัน ใช้รหัสที่คล้ายกันเพื่อเปิด / ปิดการแสดงผล overdrive ได้สำเร็จ) Â :
#รวม <linux/kernel.h>
#รวม <linux/acpi.h>
#รวม <linux/module.h>
MODULE_AUTHOR("NovHak <[email protected]>");
MODULE_DESCRIPTION("ไวโอลิน MSI GP76 ACPI EC (แบตเตอรี่)");
MODULE_LICENSE("จีพีแอล");
int คงที่ __init acpi_msiecbt_init (โมฆะ)
{
u8 byte_read;
int ผิดพลาด = 0;
ข้อผิดพลาด = ec_read(0xd2, &byte_read);
ถ้า (ผิดพลาด)
{
pr_notice("อ่านผิดพลาด %d\n", err);
กลับ 0;
}
อื่น
pr_info("ค่าที่อ่าน : %x\n", byte_read);
byte_read = 0xc2;
ข้อผิดพลาด = ec_write (0xd2, byte_read);
ถ้า (ผิดพลาด)
pr_notice("เขียนผิด %d\n", err);
อื่น
pr_info("ค่าที่เขียน : %x (เปิดใช้งานโหมดแบตเตอรี่)\n", byte_read);
กลับ 0;
}
โมฆะคงที่ __exit acpi_msiecbt_exit (โมฆะ)
{
กลับ;
}
module_init (acpi_msiecbt_init);
module_exit (acpi_msiecbt_exit);
อีกทางเลือกหนึ่งคือแนวทางทั่วไปในการลองใช้การลงทะเบียน CPU MSR โดยตรง แต่ฉันสงสัยว่าฉันอาจประหลาดใจเล็กน้อย เนื่องจากอาจมีเหตุผลที่ MSI ทำสิ่งนี้ผ่าน EC
การวิจัยเพิ่มเติม:
วิธีแก้ปัญหาชดเชย TCC:
สามารถหาเอกสารอ้างอิงได้ ที่นี่การลงทะเบียนถูกกำหนดไว้ในเล่มที่ 4 ของคู่มือ: ทะเบียนเฉพาะรุ่น
ระวัง การดำเนินการที่ไม่เหมาะสมอาจทำให้ระบบของคุณพังหรือแม้แต่ทำให้ฮาร์ดแวร์ของคุณเสียหายได้
ตอนนี้ฉันมีวิธีแก้ปัญหาอื่น (ขอบคุณ Doug Smythies) ซึ่งประกอบด้วยการลดขีดจำกัดอุณหภูมิของ CPU โดยการปรับเปลี่ยน MSR_TEMPERATURE_TARGET
(ที่อยู่ 0x1a2) ลงทะเบียน บิต 23 ถึง 16 ประกอบด้วยอุณหภูมิเป้าหมาย หน่วยเป็นองศาเซลเซียส ซึ่งเป็นอุณหภูมิต่ำสุดที่สัญญาณ PROCHOT# จะถูกยืนยันเสมอ ขีดจำกัดนี้สามารถลดลงได้ด้วยออฟเซ็ตที่สามารถเขียนได้ตั้งแต่บิต 29 ถึง 24 (ขึ้นอยู่กับระบบของคุณ ค่านั้นอาจมีให้แก้ไขในการตั้งค่า BIOS ของคุณ ในกรณีที่คุณไม่ต้องการเขียน MSR แบบ Raw)
วิธีการทำสิ่งนี้: คุณต้องใช้ไฟล์ rdmsr
และ wrmsr
คำสั่ง :
- ตรวจสอบให้แน่ใจว่า Secure Boot ถูกปิดใช้งาน มิฉะนั้น คุณจะไม่สามารถเขียนข้อมูลดิบไปยังทะเบียน MSR ได้
- รูทหรือเตรียมใช้ sudo ตามปกติ
- (ไม่บังคับ) ดำเนินการ
rdmsr -d -f 23:16 0x1a2
เพื่อรับอุณหภูมิเป้าหมายของแพ็คเกจ CPU ของคุณ
- (ไม่บังคับ) ดำเนินการ
rdmsr -d -f 29:24 0x1a2
เพื่อรับออฟเซ็ตการเปิดใช้งาน TCC ปัจจุบัน
- ดำเนินการ
rdmsr 0x1a2
เพื่อรับเนื้อหาทั้งหมดของการลงทะเบียนในฐานสิบหก สมมติว่ามันเป็น 5640000
. บิต 29 ถึง 24 คือ 5 ฐานสิบหก (5 ทศนิยม) บิต 23 ถึง 16 คือ 64 ฐานสิบหก (100 ทศนิยม) ดังนั้นขีดจำกัดอุณหภูมิปัจจุบันคือ 100-5=95°C สมมติว่าคุณต้องการลดขีดจำกัดอุณหภูมิเป็น 75°C ดังนั้นค่าชดเชยคือ 25°°C (19 hex) ค่าใหม่ของการลงทะเบียนในฐานสิบหกควรเป็น 19640000
- ดำเนินการ
wrmsr 0x1a2 0x19640000
.
- ขณะนี้อุณหภูมิเป้าหมายอยู่ที่ 75°C
แม้ว่ามันจะทำงานได้ดี แต่พัดลมก็สงบมากขึ้น และฉันก็ไม่พบอาการช้าลง นี่เป็นเพียงวิธีแก้ปัญหาเท่านั้น เนื่องจาก CPU ของฉันยังคงอยู่ที่ 75°C ตลอดเซสชันการเล่นเกมทั้งหมด ซึ่งยังร้อนเกินไปเมื่อพิจารณาถึงงานนี้