I got my x2100 from xytech (thnx!) recently and now I am trying to fine-tune it, specifically to minimize power consumtion.
Currrently power consumption in idle is around 8.6W, a bit too much even considering 1920x1200 screen (I know, no PSR there; I did not know it initially and wanted to keep the webcamera, but now I am thinking about buying a 12.6" panel and replacing it). One of the reasons might be that the CPU does not go below C3 state, e.g. powerstat:
C-State Resident Count Latency C3_ACPI 59.985% 15374 1034 C2_ACPI 28.720% 21108 151 C1_ACPI 2.067% 6595 1 POLL 0.000% 5 0 C0 9.228%I tried to apply some of the x210 magic described in this forum, but no luck so far. Looks like something is stopping CPU from entering C4+ and I am not sure what: probably I missed smth somewhere.
Any advice on where to look would be much appreciated.
***
Current config:
(0) CPU is i10710u, WiFi card is Intel AX200
(1) In BIOS states up to C10 are enabled
(2) ASPM is on in BIOS and seems to be working (please correct me if I am wrong)
# lspci -vvv | grep -i aspm LnkCap: Port #7, Speed 8GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <16us ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+ LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+ LnkCap: Port #9, Speed 8GT/s, Width x4, ASPM L0s L1, Exit Latency L0s <1us, L1 <16us ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+ LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+ LnkCap: Port #13, Speed 8GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <16us ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+ LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+ LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 <64us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+ L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1- LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L1 <64us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+ L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1- LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L1, Exit Latency L1 <8us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+ L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-(3) Changed Realtek driver to r8168
(4) Kernel 5.10, paremeters: drm.vblankoffdelay=1 nvme_core.default_ps_max_latency_us=800000000 pcie_aspm=force i915.modeset=1 i915.enable_fbc=1 i915.enable_dc=2 i915.enable_psr=2 r8168.aspm=1 r8168.eee_enable=1 r8168.hwoptimize=1 r8168.debug=0 i915.enable_guc=3 ath9k.btcoex_enable=0 ath9k.ps_enable=1 ath9k.blink=1 ath9k.bt_ant_diversity=1 i915.disable_power_well=1 nmi_watchdog=0
(5) SSD is PCIe Samsung. Now, I am bit puzzled here - looks like ASPM is working, but I am not sure if it switches on to the lower-consumption states ("non-operational") and I am not sure how to check it.
# smartctl -a /dev/nvme0 ... Supported Power States St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat 0 + 7.50W - - 0 0 0 0 0 0 1 + 5.90W - - 1 1 1 1 0 0 2 + 3.60W - - 2 2 2 2 0 0 3 - 0.0700W - - 3 3 3 3 210 1200 4 - 0.0050W - - 4 4 4 4 2000 8000
# nvme get-feature -f 0x0c -H /dev/nvme0 get-feature:0xc (Autonomous Power State Transition), Current value:0x000001 Autonomous Power State Transition Enable (APSTE): Enabled Auto PST Entries ................. Entry[ 0] ................. Idle Time Prior to Transition (ITPT): 71 ms Idle Transition Power State (ITPS): 3 ................. Entry[ 1] ................. Idle Time Prior to Transition (ITPT): 71 ms Idle Transition Power State (ITPS): 3 ................. Entry[ 2] ................. Idle Time Prior to Transition (ITPT): 71 ms Idle Transition Power State (ITPS): 3 ................. Entry[ 3] ................. Idle Time Prior to Transition (ITPT): 500 ms Idle Transition Power State (ITPS): 4
# nvme id-ctrl /dev/nvme0 ps 0 : mp:7.50W operational enlat:0 exlat:0 rrt:0 rrl:0 rwt:0 rwl:0 idle_power:- active_power:- ps 1 : mp:5.90W operational enlat:0 exlat:0 rrt:1 rrl:1 rwt:1 rwl:1 idle_power:- active_power:- ps 2 : mp:3.60W operational enlat:0 exlat:0 rrt:2 rrl:2 rwt:2 rwl:2 idle_power:- active_power:- ps 3 : mp:0.0700W non-operational enlat:210 exlat:1200 rrt:3 rrl:3 rwt:3 rwl:3 idle_power:- active_power:- ps 4 : mp:0.0050W non-operational enlat:2000 exlat:8000 rrt:4 rrl:4 rwt:4 rwl:4 idle_power:- active_power:-(6) Governor is powersave, driver intel_pstate
(7) BIOS v25, EC patch from jwise applied
(8) firmware-misc-nonfree for i915 installed. Without it I was getting:
[ 2.957592] i915 0000:00:02.0: Direct firmware load for i915/kbl_dmc_ver1_04.bin failed with error -2 [ 2.957601] i915 0000:00:02.0: [drm] Failed to load DMC firmware i915/kbl_dmc_ver1_04.bin. Disabling runtime power management.But now it's fine.
And actually installing the firmware did not change power consumption at all.
***
So, if you have any ideas (even the wild ones) on what might have gone wrong - please let me know!