Bug 194721
Summary: | Reading /sys/bus/pci/devices/0000:01:00.0/config wakes up Radeon dGPU | ||
---|---|---|---|
Product: | Drivers | Reporter: | Eugene Shalygin (eugene.shalygin) |
Component: | Video(DRI - non Intel) | Assignee: | drivers_video-dri |
Status: | NEW --- | ||
Severity: | normal | CC: | mathieu.westphal |
Priority: | P1 | ||
Hardware: | x86-64 | ||
OS: | Linux | ||
Kernel Version: | 4.8 and newer | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Attachments: | dmesg |
This is https://bugs.freedesktop.org/show_bug.cgi?id=98502 . I suspect reading the config file always powered up the GPU, but Mesa only recently started reading the file. Excuse me, but as it is written in the bug report, this was never the case before, and does not happen on my second (almost identical) laptop which runs Gentoo and kernel 4.10.0 right now. Are both laptops using the same version of Mesa? Yes, 17.0.0. But does it matter? The problem manifests itself when I do $ cat /sys/bus/pci/devices/0000:01:00.0/config or lspci does read this file. And the second problem is even worse: if the dGPU was disabled using acpi_call, any read from that file hangs the reading process somewhere in the kernel. This also was neither the case before nor happen on the Gentoo machine or in Arch Linux with kernel version < 4.8. I reproduce this bug as well. lspci hangs and freeze the system. |
Created attachment 254957 [details] dmesg In ArchLinux with kernel 4.8 and newer accessing file /sys/bus/pci/devices/0000:01:00.0/config wakes up dGPU (like DRI_PRIME=1 glxinfo would do). Since many program read that file at startup, this is highly annoying. $ lspci 00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06) 00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06) 00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06) 00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05) 00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04) 00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05) 00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05) 00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5) 00:1c.1 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 (rev d5) 00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5) 00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d5) 00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05) 00:1f.0 ISA bridge: Intel Corporation HM87 Express LPC Controller (rev 05) 00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05) 00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05) 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Neptune XT [Radeon HD 8970M] 03:00.0 PCI bridge: Texas Instruments XIO2213A/B/XIO2221 PCI Express to PCI Bridge [Cheetah Express] (rev 01) 04:00.0 FireWire (IEEE 1394): Texas Instruments XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (rev 01) 05:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411 PCI Express Card Reader (rev 01) 05:00.2 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0a) 06:00.0 Network controller: Intel Corporation Wireless 7260 (rev bb) At the same time on the almost identical machine running Gentoo: $ diff -U 1 lspci.txt lspci.txt.gentoo --- lspci.txt 2017-02-27 09:55:03.885457274 +0100 +++ lspci.txt.gentoo 2017-02-27 09:55:21.978499749 +0100 @@ -16,3 +16,3 @@ 00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05) -01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Neptune XT [Radeon HD 8970M] +01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Neptune XT [Radeon HD 8970M] (rev ff) 03:00.0 PCI bridge: Texas Instruments XIO2213A/B/XIO2221 PCI Express to PCI Bridge [Cheetah Express] (rev 01) @@ -21,2 +21,2 @@ 05:00.2 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0a) -06:00.0 Network controller: Intel Corporation Wireless 7260 (rev bb) +06:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73) this does not happen. Rebuilding kernel with copied from the Gentoo machine config changed nothing. The attached dmesg output contains several such events at the end of the file. When the dGPU is disabled using acpi_call and its example turn_off_gpu.sh script, accessing the /sys/bus/pci/devices/0000:01:00.0/config hangs a process (it does not react to SIGKILL).