Jump to content

Dell XPS 7390: High CPU usage/horrible battery life

Go to solution Solved by Hervé,

Recommended Posts

Hey, I've had this issue since I've started hackintoshing this laptop, heck even on Linux. There is a bug in the laptop's UEFI Firmware that is causing itself to eat CPU cycles for no reason, resulting in hot temps and horrible battery life on anything that isn't Windows. I was able to fix it in linux easily with a one liner command 

echo "disable" > /sys/firmware/acpi/interrupts/gpe6F

My problem is somehow making a SSDT doing the exact thing.

I found a post elsewhere with the exact same issue and was able to edit his DSDT to make the required changes, I just don't know how I would execute the same thing with a SSDT. 


The DSDT fix in question:


Fix: Removed Method "_L6F" 


My unpatched DSDT, it has a method _L6F which has many similarities to that of the post I found:



Link to comment
Share on other sites

  • Administrators
  • Solution

I looked at the patch you took inspiration from and can only make the following comments:

  • it's something dating back to 2016
  • it's something that applied to an Asrock Skylake desktop motherboard

I'm not entirely convinced that the patch that consists of simply removing the entire method _L6F is fully applicable to your Dell Comet Lake laptop but Ok if you've established your high CPU utilisation derived from the same problem of having kernel_task process running at 100% CPU load of course. Did you see a similar ACPI _L6F related error message in your boot log? I really must ask what makes you so sure about your statement  re: bugged UEFI firmware...


Anyway, as a simpler alternative to DSDT patching, I would suggest that, in you Bootloader config, you simply rename method _L6F to XL6F (or _L6X) through the following ACPI patch/renaming:

Find (Hex):    5F4C364600
Replace (Hex): 584C364600 (or 5F4C365800)

because _Lxx methods are for interrupts xx (in hex).


The only way you could remove method _L6F from ACPI through an SSDT would be to replace the entire _GPE scope that contained the method by a new one that would not contain it. It's feasible of course but really complicated (several instances of Scope (_GPE) in your DSDT, need to rename all methods and/or variables the scopes contain, etc.) when you may simply isolate/void method _L6F through the above renaming. Of course, you could also consider renaming _L6F to, say, XXXX to be more radical:

Find (Hex):    5F4C364600
Replace (Hex): 5858585800


Failing that, just use a patched DSDT where method _L6F has been removed.

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Create New...