You are not logged in.
Sorry, maybe I wasn't 100% clear. There were actually two independent issues that I had.
- The code snippet had to be removed because otherwise the kernel would not compile. It issued some cyclic module dependency error with libcfs. If your kernel does compile, you're all good and don't need to worry about this. It had nothing to do with the GuC error.
- The GuC issue which was fixed by compiling nvme into kernel prevented me from loading the up to date firmware. Now that this has been done and the latest GuC and DMC firmware have been installed ( https://01.org/linuxgraphics/intel-linu … -firmwares ), my idle consumption went down from 6.2W to 5.8W. Still not at previous generation XPS levels but we're getting there bit by bit.
Apparently with the nvme-cli tool that SheepOnMeth suggested, activating the powersaving mode (deactivated by default on mine) did not change anything. It can be gotten with the command (shoutout to @bogenpirat on twitter)
./nvme get-feature /dev/nvme0 -f 2
and set with
./nvme set-feature /dev/nvme0 -f 2 --value=1
Not sure if we can expect an update at some point in which this mode would have an effect or if the problem lies elsewhere.
Offline
The cyclic error in the kernel compilation is due to lustre FS, I just use CONFIG_LUSTRE_FS=n in my config.
Thanks for the nvme command line and the graphic firmware. I will test it today.
Offline
can we all share our power tweak configs ?
Average power consumption ~8w
im using tlp whit some kernel params
tlp:
https://raw.githubusercontent.com/zetxx … efault/tlp
kernel: Mainline params:
options root=/dev/nvme0n1p2 rw i915.preliminary_hw_support=1 elevator=noop pcie_aspm=force i915.enable_rc6=7 i915.enable_execlists=0 i915.enable_psr=1
mkinitcpio.conf:
MODULES="nvme i915"
sudo nvme get-feature /dev/nvme0 -f 2 -H
get-feature: 0x02 (Power Management), Current value: 0x000001
Workload Hint (WH): 0 - No Workload
Power State (PS): 1
GuC - Ver4 - 3
DMC - Ver1 - 23
Last edited by zetxx (2015-11-27 12:16:57)
xps13@late2015x16gbx512g
Offline
Sorry, maybe I wasn't 100% clear. There were actually two independent issues that I had.
- The code snippet had to be removed because otherwise the kernel would not compile. It issued some cyclic module dependency error with libcfs. If your kernel does compile, you're all good and don't need to worry about this. It had nothing to do with the GuC error.
- The GuC issue which was fixed by compiling nvme into kernel prevented me from loading the up to date firmware. Now that this has been done and the latest GuC and DMC firmware have been installed ( https://01.org/linuxgraphics/intel-linu … -firmwares ), my idle consumption went down from 6.2W to 5.8W. Still not at previous generation XPS levels but we're getting there bit by bit.Apparently with the nvme-cli tool that SheepOnMeth suggested, activating the powersaving mode (deactivated by default on mine) did not change anything. It can be gotten with the command (shoutout to @bogenpirat on twitter)
./nvme get-feature /dev/nvme0 -f 2
and set with
./nvme set-feature /dev/nvme0 -f 2 --value=1
Not sure if we can expect an update at some point in which this mode would have an effect or if the problem lies elsewhere.
im interested in your configuration, kernel used .. etc
xps13@late2015x16gbx512g
Offline
Alright so I just ran a battery of tests to try out the effect of many parameters individually on power consumption. Nothing that interesting here but it might save people some trouble doing the same work again.
An important point in testing these parameters to optimize power consumption is to have a robust way of estimating power usage. By this, I mean that if you test the same parameters again you should ideally get the same power consumption. Earlier on I reported power consumptions of 6.2W and 5.8W. I haven't been able to get as low as those values again and I can think of a few reasons why that could be. I have been tweaking settings a lot lately to try them out, so I might have switched one off unintentionally, but I think that's unlikely. I have been installing software lately so some background jobs (such as vpnagent) might be interrupting the idle state of the CPU/GPU/SSD. I test with WiFi on and am now in a different location than the other times I ran tests, so signal strength and router might affect communication patterns, and hence interruptions. Battery discharge rate might be influenced by actual battery level (during charging it is the case, so could be during discharge).
Some info first :
Running 4.4-rc2 kernel with nvme and i915 compiled into kernel
Gnome environment
Using tlp with same parameters as zetxx (effective decreased power usage)
Installed GuC and DMC firmware for GPU (effective decreased power usage)
Kernel parameters "pcie_aspm=force i915.enable_rc6=7" (effective decreased power usage)
Methodology :
Settings are always the same : WiFi on, Bluetooth off, Brightness ~ 50%, the following tests were run with about 50% battery left.
Reboot before every test, wait for 30 sec for software to be done loading up and possibly crashing, then run the test with powerstat in chunks of 20s as follows.
powerstat -d 10 20 25
I had used chunks of 5s and 10s before, but they're too short to get consistent results, especially for 5s where powerstat interrupts the idle state. I report median values to get rid of outliers.
With this methodology and the above parameters, my baseline idle is now 6.45W.
I have tested individually each one of the following parameters that I've seen mentioned in forums/wikis as used by people to see their effects on idle power consumption (effects could be different on more GPU-intensive applications). When I report differences in power consumption, those are with respect to the 6.45W baseline.
i915.semaphores=1 : freezes the system when I try to open software at startup
i915.enable_fbc : minor lowering of power consumption (0.05-0.1W) but some bugs, like youtube videos are frozen when full-screen
i915.enable_execlists=0 : no effect measured
i915.enable_psr=1 : no effect measured
i915.preliminary_hw_support : no effect measured (I assume this was needed in older kernels, 4.4 doesn't need it)
i915.enable_guc_submission=Y : not sure what it does but increases power consumption by 1W+
As noted earlier, nvme power saving mode does not change power consumption either.
Last edited by vilavil (2015-11-28 00:19:13)
Offline
Hey vilavil,
Did you just compile a vanilla 4.4-rc2 kernel? Did you include any extra patches?
I did not quite understand the reason for building in i915 instead of having it as a module (the same applies to the NVME).
Another one: where are we supposed to copy the firmware (GuC and DMC), under /lib/firmware/ ?
And the last one, did you take notes on how much power saving each feature enables? It would be nice to have an idea to better understand what's going on in there
Thanks a lot for your efforts guys!
Offline
Hi everyone,
Since yesterday, a BIOS update is available : http://www.dell.com/support/home/us/en/ … erId=PWNMH
Just put the file .exe in /boot/EFI .
Connect the laptop to AC, boot with F12, select BIOS update and follow the instruction.
I have been using it since yesterday, I did not see changes regarding firmware boot time.
Offline
@vilavil, thanks for the updated information on kernel params as well as testing for battery. I see what you mean now with the libcfs patch with 4.4-rc2. Thanks for the heads up for that too.
@sheeponmeth, sweet! time to flash.
Offline
Hey vilavil,
Another one: where are we supposed to copy the firmware (GuC and DMC), under /lib/firmware/ ?
Hey Davi, you can use following link: https://01.org/linuxgraphics/intel-linu … -firmwares you will see 2 downloads for our architecture, when unzip you will see install.sh script .. just run them
Hey vilavil,
And the last one, did you take notes on how much power saving each feature enables? It would be nice to have an idea to better understand what's going on in there
i think that everyone can do it by itself, actually this is better because we can gave measurements between different modles
xps13@late2015x16gbx512g
Offline
Alright so I just ran a battery of tests to try out the effect of many parameters individually on power consumption. Nothing that interesting here but it might save people some trouble doing the same work again.
An important point in testing these parameters to optimize power consumption is to have a robust way of estimating power usage. By this, I mean that if you test the same parameters again you should ideally get the same power consumption. Earlier on I reported power consumptions of 6.2W and 5.8W. I haven't been able to get as low as those values again and I can think of a few reasons why that could be. I have been tweaking settings a lot lately to try them out, so I might have switched one off unintentionally, but I think that's unlikely. I have been installing software lately so some background jobs (such as vpnagent) might be interrupting the idle state of the CPU/GPU/SSD. I test with WiFi on and am now in a different location than the other times I ran tests, so signal strength and router might affect communication patterns, and hence interruptions. Battery discharge rate might be influenced by actual battery level (during charging it is the case, so could be during discharge).
Some info first :
Running 4.4-rc2 kernel with nvme and i915 compiled into kernel
Gnome environment
Using tlp with same parameters as zetxx (effective decreased power usage)
Installed GuC and DMC firmware for GPU (effective decreased power usage)
Kernel parameters "pcie_aspm=force i915.enable_rc6=7" (effective decreased power usage)
Methodology :
Settings are always the same : WiFi on, Bluetooth off, Brightness ~ 50%, the following tests were run with about 50% battery left.
Reboot before every test, wait for 30 sec for software to be done loading up and possibly crashing, then run the test with powerstat in chunks of 20s as follows.powerstat -d 10 20 25
I had used chunks of 5s and 10s before, but they're too short to get consistent results, especially for 5s where powerstat interrupts the idle state. I report median values to get rid of outliers.
With this methodology and the above parameters, my baseline idle is now 6.45W.
I have tested individually each one of the following parameters that I've seen mentioned in forums/wikis as used by people to see their effects on idle power consumption (effects could be different on more GPU-intensive applications). When I report differences in power consumption, those are with respect to the 6.45W baseline.
i915.semaphores=1 : freezes the system when I try to open software at startup
i915.enable_fbc : minor lowering of power consumption (0.05-0.1W) but some bugs, like youtube videos are frozen when full-screen
i915.enable_execlists=0 : no effect measured
i915.enable_psr=1 : no effect measured
i915.preliminary_hw_support : no effect measured (I assume this was needed in older kernels, 4.4 doesn't need it)
i915.enable_guc_submission=Y : not sure what it does but increases power consumption by 1W+
As noted earlier, nvme power saving mode does not change power consumption either.
thanks man
xps13@late2015x16gbx512g
Offline
Hey Davi, you can use following link: https://01.org/linuxgraphics/intel-linu … -firmwares you will see 2 downloads for our architecture, when unzip you will see install.sh script .. just run them
Wait, what? Aren't these in linux-firmware already?
[bw@xps13 ~]$ pkgfile -l linux-firmware | grep dmc
core/linux-firmware /usr/lib/firmware/i915/bxt_dmc_ver1.bin
core/linux-firmware /usr/lib/firmware/i915/bxt_dmc_ver1_04.bin
core/linux-firmware /usr/lib/firmware/i915/bxt_dmc_ver1_05.bin
core/linux-firmware /usr/lib/firmware/i915/skl_dmc_ver1.bin
core/linux-firmware /usr/lib/firmware/i915/skl_dmc_ver1_19.bin
core/linux-firmware /usr/lib/firmware/i915/skl_dmc_ver1_20.bin
core/linux-firmware /usr/lib/firmware/i915/skl_dmc_ver1_21.bin
[bw@xps13 ~]$ pkgfile -l linux-firmware | grep guc
core/linux-firmware /usr/lib/firmware/i915/skl_guc_ver1.bin
core/linux-firmware /usr/lib/firmware/i915/skl_guc_ver1_1059.bin
core/linux-firmware /usr/lib/firmware/i915/skl_guc_ver4.bin
core/linux-firmware /usr/lib/firmware/i915/skl_guc_ver4_3.bin
http://lists.freedesktop.org/archives/i … 68167.html
Or is it some kind of newer version?
Offline
I would say so bart_vv, can you paste the md5sums so we can compare?
Thanks!
Offline
Wait, what? Aren't these in linux-firmware already?
[bw@xps13 ~]$ pkgfile -l linux-firmware | grep dmc core/linux-firmware /usr/lib/firmware/i915/bxt_dmc_ver1.bin core/linux-firmware /usr/lib/firmware/i915/bxt_dmc_ver1_04.bin core/linux-firmware /usr/lib/firmware/i915/bxt_dmc_ver1_05.bin core/linux-firmware /usr/lib/firmware/i915/skl_dmc_ver1.bin core/linux-firmware /usr/lib/firmware/i915/skl_dmc_ver1_19.bin core/linux-firmware /usr/lib/firmware/i915/skl_dmc_ver1_20.bin core/linux-firmware /usr/lib/firmware/i915/skl_dmc_ver1_21.bin [bw@xps13 ~]$ pkgfile -l linux-firmware | grep guc core/linux-firmware /usr/lib/firmware/i915/skl_guc_ver1.bin core/linux-firmware /usr/lib/firmware/i915/skl_guc_ver1_1059.bin core/linux-firmware /usr/lib/firmware/i915/skl_guc_ver4.bin core/linux-firmware /usr/lib/firmware/i915/skl_guc_ver4_3.bin
http://lists.freedesktop.org/archives/i … 68167.html
Or is it some kind of newer version?
yep they are new version, they use ln
xps13@late2015x16gbx512g
Offline
@vilavil
where is yours
i915.enable_rc6=7
xps13@late2015x16gbx512g
Offline
few measurements against kernel params
#################
pcie_aspm=force i915.enable_rc6=7 i915.enable_execlists=0 i915.enable_psr=1 i915.enable_fbc=1
Time User Nice Sys Idle IO Run Ctxt/s IRQ/s Fork Exec Exit Watts dram uncore core pkg-0
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Average 0.3 0.0 0.2 99.4 0.0 1.0 182.5 100.2 0.1 0.0 0.2 2.23 0.48 0.06 0.03 2.23
StdDev 0.3 0.0 0.2 0.4 0.1 0.2 72.5 33.2 0.5 0.1 0.6 0.20 0.01 0.12 0.05 0.20
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Minimum 0.0 0.0 0.0 98.3 0.0 1.0 119.0 64.0 0.0 0.0 0.0 2.09 0.47 0.00 0.01 2.09
Maximum 1.0 0.0 0.7 100.0 0.5 2.0 511.0 232.0 3.0 1.0 4.0 3.29 0.50 0.73 0.28 3.29
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Summary:
2.23 Watts on average with standard deviation 0.20
#################
pcie_aspm=force i915.enable_rc6=7 i915.enable_execlists=0 i915.enable_psr=1 i915.enable_fbc=1 elevator=noop
Time User Nice Sys Idle IO Run Ctxt/s IRQ/s Fork Exec Exit Watts dram uncore core pkg-0
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Average 0.3 0.0 0.2 99.5 0.0 1.0 186.9 206.8 0.1 0.0 0.1 2.21 0.48 0.05 0.04 2.21
StdDev 0.3 0.0 0.2 0.4 0.1 0.1 93.6 633.1 0.5 0.1 0.6 0.11 0.01 0.06 0.04 0.11
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Minimum 0.0 0.0 0.0 97.7 0.0 1.0 111.0 62.0 0.0 0.0 0.0 2.09 0.47 0.01 0.01 2.09
Maximum 0.8 0.0 1.3 100.0 0.3 2.0 815.0 4771.0 3.0 1.0 4.0 2.61 0.51 0.21 0.17 2.61
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Summary:
2.21 Watts on average with standard deviation 0.11
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Average 0.4 0.0 0.3 99.3 0.1 1.0 186.1 101.2 0.1 0.0 0.1 2.23 0.48 0.07 0.05 2.23
StdDev 0.3 0.0 0.2 0.4 0.1 0.0 52.5 25.6 0.4 0.0 0.3 0.13 0.01 0.08 0.04 0.13
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Minimum 0.0 0.0 0.0 97.2 0.0 1.0 132.0 69.0 0.0 0.0 0.0 2.11 0.47 0.01 0.01 2.11
Maximum 2.0 0.0 0.8 100.0 0.5 1.0 465.0 219.0 3.0 0.0 2.0 2.76 0.50 0.40 0.19 2.76
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Summary:
2.23 Watts on average with standard deviation 0.13
#################
pcie_aspm=force i915.enable_rc6=7 i915.enable_execlists=0 i915.enable_psr=1 i915.enable_fbc=1 elevator=noop i915.preliminary_hw_support=1
Time User Nice Sys Idle IO Run Ctxt/s IRQ/s Fork Exec Exit Watts dram uncore core pkg-0
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Average 0.5 0.0 0.3 99.2 0.0 1.0 300.7 753.4 0.1 0.0 0.2 2.26 0.48 0.06 0.05 2.26
StdDev 0.6 0.0 0.3 0.9 0.1 0.0 361.6 1910.5 0.5 0.1 0.6 0.20 0.02 0.11 0.08 0.20
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Minimum 0.0 0.0 0.0 94.6 0.0 1.0 118.0 64.0 0.0 0.0 0.0 2.10 0.47 0.01 0.01 2.10
Maximum 3.8 0.0 1.5 100.0 0.3 1.0 2224.0 9199.0 3.0 1.0 4.0 3.41 0.57 0.82 0.34 3.41
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------ ------ ------ ------ ------
Summary:
2.26 Watts on average with standard deviation 0.20
xps13@late2015x16gbx512g
Offline
zetxx, what are you trying to measure? i915.preliminary_hw_support=1 is not needed for kernels 4.3+ for skylake support, elevator=noop makes no sense because:
cat /sys/block/nvme0n1/queue/scheduler
none
Offline
zetxx, what are you trying to measure? i915.preliminary_hw_support=1 is not needed for kernels 4.3+ for skylake support, elevator=noop makes no sense because:
cat /sys/block/nvme0n1/queue/scheduler none
preliminary_hw_support was just for test
elevator=noop
i didnt know what is this opt for ..
xps13@late2015x16gbx512g
Offline
zetxx, what are you trying to measure? i915.preliminary_hw_support=1 is not needed for kernels 4.3+ for skylake support, elevator=noop makes no sense because:
cat /sys/block/nvme0n1/queue/scheduler none
Thanks for this. Made me search around for nvme schedulers and realized that having none is the best way to go. Any scheduler for our pcie ssd won't provide any benefits. However, for those that selected the base option and do not have a pcie ssd, then choose a scheduler.
Last edited by frank604 (2015-11-28 20:24:47)
Offline
Thanks for this. Made me search around for nvme schedulers and realized that having none is the best way to go. Any scheduler for our pcie ssd won't provide any benefits. However, for those that selected the base option and do not have a pcie ssd, then choose a scheduler.
the best way to apply a scheduler for your system, by using udev:
/etc/udev/rules.d/60-schedulers.rules
# set none scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="none"
but NVMe is SSD only interface, a scheduler here doesn't make sense.
Last edited by ksim (2015-11-29 09:46:39)
Offline
frank604 wrote:Thanks for this. Made me search around for nvme schedulers and realized that having none is the best way to go. Any scheduler for our pcie ssd won't provide any benefits. However, for those that selected the base option and do not have a pcie ssd, then choose a scheduler.
the best way to apply a scheduler for your system, by using udev:
/etc/udev/rules.d/60-schedulers.rules # set none scheduler for non-rotating disks ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="none"
but NVMe is SSD only interface, a scheduler here doesn't make sense.
Thanks ksim
xps13@late2015x16gbx512g
Offline
Good news the audio patch has been include in rc3 : https://lkml.org/lkml/2015/11/29/293
Also some fixes on the intel_pstate driver.
Last edited by SheepOnMeth (2015-11-30 12:33:02)
Offline
Thanks SheepOnMeth, I have flashed the new BIOS (glad it's possible to do that without Windows). No changes there for me but I've seen reports of it solving some flickering problems.
New kernel rc3 does indeed solve the noise problem with headphones (and I've disabled the lustre module too, compiles fine now thanks!). Apart from that I didn't notice any changes on power consumption compared to rc2.
Hey vilavil,
Did you just compile a vanilla 4.4-rc2 kernel? Did you include any extra patches?
I did not quite understand the reason for building in i915 instead of having it as a module (the same applies to the NVME).
Another one: where are we supposed to copy the firmware (GuC and DMC), under /lib/firmware/ ?
And the last one, did you take notes on how much power saving each feature enables? It would be nice to have an idea to better understand what's going on in thereThanks a lot for your efforts guys!
Yes, no extra patches, it works fine if you disable the lustre module as SheepOnMeth pointed out.
I compiled NVME into kernel so that the SSD gets mounted early in the booting process and it can find potential firmware files (like for i915) on disk and you don't have to bother including them in initramfs. i915 was just a default setting that I didn't modify, not sure what is best here.
(the firmware goes to /lib/firmware/i915/ like the included bash script does for you)
For all the i915 options I listed, I did note down if there was a difference in power saving, but I didn't try removing i915.enable_rc6=7, I'm pretty sure you'd be worse off by doing that.
Offline
@sheep, wow you are on the ball. Every week is like christmas for us on rc release mondays
Offline
@frank604 (Y)
xps13@late2015x16gbx512g
Offline
I compiled NVME into kernel so that the SSD gets mounted early
you should not do that in theory because loaded modules should be detected on initramfs build and nvme should be added automatically to initramfs image
in the booting process and it can find potential firmware files (like for i915) on disk and you don't have to bother including them in initramfs
Again, mkinicpio does that automatically if you have i915 in MODULES section, no one should be bothered
ᐅ lsinitcpio /boot/initramfs-linux-bcm4350.img | grep i915
./usr/lib/firmware/i915
./usr/lib/firmware/i915/skl_dmc_ver1.bin
./usr/lib/modules/4.3.0-2-bcm4350/kernel/i915.ko
./etc/modprobe.d/i915.conf
ᐅ lsinitcpio /boot/initramfs-linux-mainline.img | grep i915
./usr/lib/firmware/i915
./usr/lib/firmware/i915/skl_guc_ver4.bin
./usr/lib/firmware/i915/skl_dmc_ver1.bin
./usr/lib/firmware/i915/bxt_dmc_ver1.bin
./usr/lib/modules/4.4.0-rc3-mainline/kernel/i915.ko
./etc/modprobe.d/i915.conf
(the firmware goes to /lib/firmware/i915/ like the included bash script does for you)
this firmwares already in linux-firmware package, the same latest version.
I am using linux-mainline without any patches and without any manual modifications. only i915 included in MODULES in mkinitcpio.
Offline