I've been looking into this for the last few days and it turns out the
issue is definitely caused by PCI link power management: Using the
CONFIG_PCIEASPM_DEBUG config option of the kernel I was able to track
the issue down to the PCI ASPM L1.2 power saving state (set link_state
of the parent PCI bridge to 15 or 111 to enable everything except L1.2
[1]).

Not sure how to continue at this point, since PCIe ASPM is implemented
in hardware and debugging would require special equipment, I really hope
someone at Marvell steps up and has a look into this. It might also be
possible that L1.2 is disabled on Windows, but I haven't found tools to
read the L1 substates from the PCI configuration on Windows yet.

Another interesting fact is that the random command timeouts I'm looking
into here only seem to happen on some Surface devices using the 8897
chip via PCI, that is the Pro 4, Pro 2017, the Pro 6, Laptop 2 (see
comments in [2]), but not on the Surface Book 2 (according to owners of
the device). There are also multiple reports of the same issue on
completely different devices to be found on the internet ([3], [4]), but
those never got any attention by Marvell developers.

[1] https://github.com/torvalds/linux/blob/master/drivers/pci/pcie/aspm.c#L28
[2] https://github.com/jakeday/linux-surface/issues/163
[3] https://www.spinics.net/lists/linux-wireless/msg159776.html
[4] https://www.spinics.net/lists/linux-wireless/msg175943.html

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1730924

Title:
  Wifi does down "crash" in Surface Pro 4

Status in Linux:
  Confirmed
Status in linux package in Ubuntu:
  Incomplete

Bug description:
  I have a Surface Pro 4. The wifi works well in principle, but unfortunately 
it drops every x minutes. The only way to fix it I've found is to reboot the 
computer.
  lsb_release -rd
  Description:    Ubuntu 17.10
  Release:        17.10

  ProblemType: Bug
  DistroRelease: Ubuntu 17.10
  Package: linux-image-4.13.0-16-generic 4.13.0-16.19
  ProcVersionSignature: Ubuntu 4.13.0-16.19-generic 4.13.4
  Uname: Linux 4.13.0-16-generic x86_64
  ApportVersion: 2.20.7-0ubuntu3.1
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC0:  predatux   1537 F.... pulseaudio
  CurrentDesktop: KDE
  Date: Wed Nov  8 10:41:26 2017
  HibernationDevice: RESUME=UUID=147af4ba-a4ce-41fe-a176-b36a1f6a590b
  Lsusb:
   Bus 002 Device 002: ID 045e:090c Microsoft Corp. 
   Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
   Bus 001 Device 002: ID 045e:07e8 Microsoft Corp. 
   Bus 001 Device 003: ID 1286:204c Marvell Semiconductor, Inc. 
   Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  MachineType: Microsoft Corporation Surface Pro 4
  ProcFB: 0 inteldrmfb
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.13.0-16-generic 
root=UUID=125200b0-7377-4985-a217-15503781a525 ro quiet splash vt.handoff=7
  RelatedPackageVersions:
   linux-restricted-modules-4.13.0-16-generic N/A
   linux-backports-modules-4.13.0-16-generic  N/A
   linux-firmware                             1.169
  SourcePackage: linux
  UpgradeStatus: Upgraded to artful on 2017-10-22 (16 days ago)
  dmi.bios.date: 02/24/2017
  dmi.bios.vendor: Microsoft Corporation
  dmi.bios.version: 106.1624.768
  dmi.board.name: Surface Pro 4
  dmi.board.vendor: Microsoft Corporation
  dmi.chassis.type: 9
  dmi.chassis.vendor: Microsoft Corporation
  dmi.modalias: 
dmi:bvnMicrosoftCorporation:bvr106.1624.768:bd02/24/2017:svnMicrosoftCorporation:pnSurfacePro4:pvrD0B08F1C03P38:rvnMicrosoftCorporation:rnSurfacePro4:rvr:cvnMicrosoftCorporation:ct9:cvr:
  dmi.product.family: Surface
  dmi.product.name: Surface Pro 4
  dmi.product.version: D:0B:08F:1C:03P:38
  dmi.sys.vendor: Microsoft Corporation

To manage notifications about this bug go to:
https://bugs.launchpad.net/linux/+bug/1730924/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to