syscl / XPS9350-macOS

macOS patches for Dell XPS 13 9350 (Skylake)
916 stars 73 forks source link

[9360] Very strange power management issue after applying deep-sleep patches #63

Open bozma88 opened 7 years ago

bozma88 commented 7 years ago

Dear @syscl, I call for your help.

I implemented your deep-idle patches, specifically:

Now the system has 2 serious issues:

The most worrying thing is that I am unable to revert back. I tried to:

Nothing solves it. It seems that maybe some code in that DSDT wrote to a permanent device register, maybe something that puts the PCI lanes into "extreme power saving mode", that could explain both the SSD whining and the extremely reduced audio amp shutdown delay. As a side note, battery life seems worsened by 10-20% compared to before these patches.

I know that I'm manually picking some of your fixes and using them on a different system, but please help me shed some light on this, I don't know what to do.

Thank you.

syscl commented 7 years ago

@bozma88 No that's not deep-sleep patches cause the problem. I've experienced exactly the same problem then I sent my XPS 13 back to Dell, they've replaced my motherboard and NVMe, then problem solved(Same problem happens on my Dell Precision M3800 then I got a replacement brand new laptop).

If you found the coin whine intolerance(like me), it's time to contact Dell as soon as possible!

syscl

syscl commented 7 years ago

BTW, XPS 13 9360 is pretty much the same as XPS 13 9350, I am planning to merge two projects in one single deploy but I need testers' feedback. Otherwise I can do nothing on XPS 13 9360.

syscl

bozma88 commented 7 years ago

Thank you for the reply. I think there's something more. The issues appeared suddenly after a dsdt patch (maybe I applied some other patches to experiment that I don't remember). There's also the audio POP and all this make me think that, for some reason, macOS enabled some flags in PCI registers to enable L0s ASPM states in some PCIe devices. I see that because, if you look at hidden BIOS variables in BIOS dump, there are a lot of tunable ASPM settings. I think that MacOS, after some DSDT patches that made the OS recognise some low-level devices, decided to write something to enable ASPM. I found on 9350 Linux forums documentation that tells that, for example, amps shutdown delay is configurable via registers. I'll do more research, because it's too of a coincidence, and the coil-whine is totally unrelated to the audio pop delay that started happening at the same time.

mircoianese commented 7 years ago

Hi. My laptop suffer from coil whine too, maybe that's related to Power Management, I had that on Windows too. Regarding the AMP pop I'm not experiencing that on XPS13 9350 (only with headsets but I think that's ok).

furrybanana commented 7 years ago

On the coil whining I noticed it is more present on Windows 10 and most time when using the trackpad. The positioning of your hands on the palm rests and how your wrists ground you on the desk is what makes the difference. You can test this when using just one hand on your touchpad, you'll hear static coil whining. This increases when charging the laptop. While on macOS I only get coil when charging it. Some machines will be louder but I only notice it when on Windows working at night, when it is really really quiet in my working environment.

sorry on hijacking the thread.

This said, I am more concerned as to why Dell is not interested in fixing it. Their new model has the same issue. There is something about this laptop, that doesn't feel like it's a premium item. Furthermore They fucked up the 1080p screen and it is impossible to get a repair. Seems they even did the same thing on the new 9360 FHD model: they built in the same panel, which in itself is fine looking, matte display with good brightness. But fuck that CABC. I planned to upgrade to the i7 with more RAM but ain't got no usage of a touch screen with that resolution just to work at night with stupid auto screen dimming. It is more present while using f.lux.

syscl commented 7 years ago

@bozma88 Please provide your full ACPI(origin folder, including all AML files).

FYI, XPS 13 9350 doesn't support ASPM, I double if 9360 supports ASPM or not. But, I don't know anything until I look into your ACPI tables.

syscl

bozma88 commented 7 years ago

@syscl I attach you two files: 1 - ACPI dump, latest bios 1.3.2 [XPS 9360] 2 - Bios config variables dump

899407D7-99FE-43D8-9A21-79EC328CAC21_383 IFR.txt origin.zip

In the BIOS config variables dump, you can see that there are hidden vars for ASPM. aspm

Since I am very very sensitive to changes, I am pretty sure that something happened during my last experimentations with HWP and DSDTs. Before that, the SSD was dead silent, and the audio AMPS never shut down so abruptly. I can assure you that I am not wrong about this. Since I keep archive of my EFI folder changes (here my 9360 guide), I tried to reinstall the whole system with an old EFI config, and the issues persist. This HAS something to do with a persistent low-level setting. For example, you can edit the keyboard backlight shutdown via Windows, and the settings is persistent and works even in MacOS, and it persisted a BIOS upgrade and a BIOS factory reset.

Things that I'll do this evening: 1 - Querying these BIOS hidden ASPM vars value to check they are disabled 2 - Install Windows and Dell Power Commander and try to play with power saving settings, in the hope they write back to these permanent registers (if they exist). 3 - Play with ASPM hidden vars and brick my system (hope not to)

I want to solve this, we could finally gain control of this dreadful whine!

syscl commented 7 years ago

@bozma88 Thank you for your valuable information.

Sorry, my XPS 13 is lying in my house, but I use my X205ta(Ubuntu 16.04.02 LTS) to look into your ACPI tables. ASPM is not supported on XPS 9360 either.

Look at FACP.aml from your origin ACPI tables

PCIe ASPM Not Supported (V4) : 1

On a real MacBook ACPI or M3800's FACP

PCIe ASPM Not Supported (V4) : 0

syscl

nos1609 commented 7 years ago

@bozma88 can you help me extracting bios vars for 9350? I stil cant get the txt file out of the setup.efi one.

Concerning the coil whine I got rid off it only by logic board replacement. Not totally but it really got better. I'm also with Toshiba SSD, but with a higher CPU with iris. I suppose the problem is the combination of high power drain and overheat, it's not normal for a cpu to operate on temperatures above 90 degrees for a long period of time. I can hear coil whine from ssd now only when there is no fan rotation at all and they are huge amounts of data being transferred through the disk. Especially you might hear it very loudly at boot for 2 or 3 seconds, when it loads the system or by running a benchmark. But I've also tweaked the cooling design. Our toshiba nvme has 5 power states, going from 6 W to 6 mW, according to toshiba whitepaper. When the device overheats, it switches to the second power level, which is limited 2.4 W, that is the mode which is preserved nearly the majority of the time while the system is booted up, because comapring to samsung 960 pro we do NOT have heat-spreading surface under the label on top of the ssd. That is why you might hear the SSD whining under heavy load. It is normal, as our power scheme on xps 93xx-series is not designed for such power drain which occurs under skylake and kabylake coupled with NVMe.

Basically there is not so much different since 9343, based on Core i7-5500U. If you skim through the specs, you might pay attention that the cpu is combined to a simple HD Graphics, not the Iris one, and the TDP is 15 W. That is all. There is NO TDP-Up or any other power-consuming features. If you look at the ssd used - exactly the same picture, it is a sata one, the PM851. Accordingly to the datasheet we get 0.2 W under load.

Now back to the 9350/60, they are pretty much the same in terms of design, simply replaced cpu. no other differences, since even the socket is the same. Even taking the basic models based on i5 there is a sharp contrast compairng to previous models - first, the ssd. Considering the earlier ones, the PM951 which is now rated as 6 W under load, and 4.2 W when overheated. by simple math in disk system we have a 2.2-4 W more power to drain from the same electric design. I am not taking into account the growth of battery capacity trough generations. Looking at the processing part, here comes the disaster. The entre-level model is based on Core i5-6200U. Basically it is also rated 15 W TDP, BUT it now can be pushed to its TDP-Up levelled at 25W, which it basically remains in our system. 25 W are drained under load by the CPU and GPU core on 9350/9360, you can easely check it up under osx or windows. Now maths, again. 25 W of maximum load + 6 W of maximum load we do get 31 Watts of power. Drained out of a 15.2 W designed logic board. Sure they are speakes, Wlan, Bt, Display, but they are constants and they do not drain 15 W more, since even on the most battery-hungry 9350\6560U you get 2 hours out of 54Whr-battery.

Sorry for such along explication, but I want to be got right. They decided "uplift" the xps 9343 model, but haven't assumed the consequences the end-users gonna be faced up with. You might have to accept that the coil whine on that system would never go away and it would never behave so silently as macbook air's did. By the way I agree with @syscl and many other people that you have not to suffer from this crapy noise. On my personnal experience I can conclude one thing, there is a way to discover that your logic board is defective. You have to push your laptop's fan up to 5.5k speed. It is possible switching the Command Power Manager into Maximum performance mode. Then, run FurMark on your laptop for about 15-20 minutes. If then You can easely hear the coil whine 10 meters away from, your laptop in a room, then you're set. Otherwise You'll hear only the fan trying to ease the pain of the overheated laptop ;) Both the two states I experienced when I came to the dell repair shop for wlan/da200 intolerance. Like many other cases there was a tiny crack on the mobo, so I got it replaced for free. And since then it is hard to catch the coil whine noise issued by the laptop. I "overcooled" it and now I can distinguish subtle whine in browsing mode when there is no fan rotation at all.

Just in case here you can see the 5 power states of two of the most frequent NVMe's installed in our laptops.

Everything above is my so-called "huble opinion" and a didn't have the point to offend anybody, so sorry just in case ;)

bozma88 commented 7 years ago

Thank you for your opinions @nos1609. Despite your calculations are correct, I think you are oversimplifying a bit the development cycle of a product. Even if you see a new iteration that seems mostly unvaried, it doesn't mean that the manufacturer slammed a new CPU and SSD on the same motherboard. Surely they made their calculations and the DC-DCs are able to handle that current. I agree on thermal throttling, could be solved by applying thermal pads on NVME chips to make them touch the back aluminum shell. Much has been written on coil whine, it's a mixture of bad engineering and low quality components, eventually mixed with bad thermal management. I don't want to digress much and I'd want to remain in-topic: we are discussing the fact that, suddenly, after experimenting with low-power ACPI patches (and eventually HWP), my system started exhibiting coil whine in MacOS and from that moment I was unable to revert to a non-whining state.

Today I reached another milestone in understanding this:

Before update - after update battery life seemed almost identical.

nos1609 commented 7 years ago

@bozma88 Those Dell drivers are for 1501 build of the on-board shipped w10. Anniversairy update fixed lot of things and I got the perfect install when installed no dell drivers at all, everithing pullled from windows update catalog. Also note that there are different methods to get rid of coil whine under windows and linux, but there is one in common - using integrated gpu without powersaving-optimized features. Then there is less frequency scaling and less noise out of it. Lastest updates from @syscl accordingly to commits contain fixes for graphics power management, that is what could lead to a freshly appeared sound. I skimed through your ifr file, and they are some amp delays and powersaving options. So when you have installed dell chipset driver you got activated the Intel ME management on your system. It also relates to thermal and power configs of the hardware...

Take a look especially at MSR 0xE2

R1MnTnA commented 7 years ago

As for the Coil Whine issue, Dell has been keeping me up to date with a new version of the motherboard and they emailed me today and noted that and I quote- "The motherboard for the 9350 will be coming out within the next 2 weeks and with regards to the 9360, the motherboard for that one is expected to be available by mid March 2017"

furrybanana commented 7 years ago

@R1MnTnA Please let us know if they fixed your problem when they exchange your board. I would like to hear Dell is able to fix this finally.

R1MnTnA commented 7 years ago

Will do. Although I do have a 9360 model so hopefully it's a similar situation.

R1MnTnA commented 7 years ago

@syscl @furrybanana @bozma88 @nos1609 @ZombieTheBest UPDATE: I wanted to let you all know that I will be getting the newer version of the board for my 9360 within a week. Quote from dell support I just chatted with.

"Ok, so yes, your research is correct, the whining noise has been resolved with motherboard revision. And, yes, your manufacture is just before that revision date. So, looks like motherboard replace is in order. 10:19:17 AM Agent *ProSupport John Carson
As well as our next business day onsite service, we now also have the option of using our Advanced Resolution Center, where our ProSupport engineers service and repair, with overnight shipping both ways. If you're able to have the system out of hand for 3-4 business days, this is our most thorough repair option. Which will be best for you?"

bozma88 commented 7 years ago

Let us know how it goes. Thank you.

bozma88 commented 7 years ago

Also, how do you know your motherboard revision? Is it reported somewhere in BIOS setup or written on the board?

R1MnTnA commented 7 years ago

@bozma88 I used the HWiNFO64.exe app/tool in Windows to pull the data and it lists the current 9360 motherboard as Name: 0839Y6 Version: A00

R1MnTnA commented 7 years ago

Also interesting enough the board name and Dell show up in ioreg under FakeSMCKeyStore when I did a search.

furrybanana commented 7 years ago

@R1MnTnA thank you! fyi: XPS13 9350 (i5 6200u): Name: 07TYC2 Version: A00