Your message dated Mon, 30 Mar 2020 01:49:34 +0100 with message-id <466abaa4a1e687e8ce8c0bb6d36cdbd1b9aa30c8.camel@decadent.org.uk> and subject line Re: Bug#954817: linux-image-5.4.0-4-amd64: NULL pointer dereference in i915_active_acquire since Linux 5.4 has caused the Debian Bug report #954817, regarding linux-image-5.4.0-4-amd64: NULL pointer dereference in i915_active_acquire since Linux 5.4 to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 954817: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=954817 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: linux-image-5.4.0-4-amd64: NULL pointer dereference in i915_active_acquire since Linux 5.4
- From: Tom Yang <wyh.aaron@gmail.com>
- Date: Mon, 23 Mar 2020 19:32:05 -0400
- Message-id: <[🔎] 158500632594.258117.1063792338911403240.reportbug@Server>
Package: src:linux Version: 5.4.19-1 Severity: important Tags: patch Dear Maintainer, Since kernel 5.4.x I am getting crashes during some graphic rendering poccess like playing videos. I found the following patch might fix this problem. The patch already got into kernel 5.5.x but still not into 5.4.x. Could you patch it into kernel 5.4.x? Or release the kernel 5.5 version? Thanks! Patchwork: https://patchwork.freedesktop.org/patch/345789/?series=70930&rev=3 See also: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.5.y&id=e85ade1f50aae464ce196672faa7a099fd1721ed -- Package-specific info: ** Version: Linux version 5.4.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 9.2.1 20200203 (Debian 9.2.1-28)) #1 SMP Debian 5.4.19-1 (2020-02-13) ** Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-4-amd64 root=UUID=bc9fa405-daee-4f2a-a27a-44e1c0513187 ro quiet ** Tainted: OE (12288) * externally-built ("out-of-tree") module was loaded * unsigned module was loaded ** Kernel log: Mar 16 18:39:24 Server kernel: [606320.517436] BUG: kernel NULL pointer dereference, address: 0000000000000040 Mar 16 18:39:24 Server kernel: [606320.517453] #PF: supervisor read access in kernel mode Mar 16 18:39:24 Server kernel: [606320.517454] #PF: error_code(0x0000) - not-present page Mar 16 18:39:24 Server kernel: [606320.517455] PGD 0 P4D 0 Mar 16 18:39:24 Server kernel: [606320.517461] Oops: 0000 [#1] SMP PTI Mar 16 18:39:24 Server kernel: [606320.517469] CPU: 3 PID: 2072967 Comm: xfwm4 Tainted: G OE 5.4.0-4-amd64 #1 Debian 5.4.19-1 Mar 16 18:39:24 Server kernel: [606320.517471] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./H310M-ITX/ac, BIOS P3.10 09/27> Mar 16 18:39:24 Server kernel: [606320.517745] RIP: 0010:i915_active_acquire+0x9/0x70 [i915] Mar 16 18:39:24 Server kernel: [606320.517751] Code: 00 00 00 48 c7 46 58 00 00 00 00 c7 46 38 00 00 00 00 48 c7 c6 0a a0 65 c0 e9 33 90 7> Mar 16 18:39:24 Server kernel: [606320.517753] RSP: 0018:ffffa06400e07a40 EFLAGS: 00010286 Mar 16 18:39:24 Server kernel: [606320.517757] RAX: 0000000000000000 RBX: ffff8da74554f480 RCX: 0000000000000000 Mar 16 18:39:24 Server kernel: [606320.517759] RDX: ffff8da642d61200 RSI: ffff8da74554f480 RDI: 0000000000000008 Mar 16 18:39:24 Server kernel: [606320.517760] RBP: ffff8da642d61200 R08: ffff8da74a4db988 R09: ffff8da74a4db988 Mar 16 18:39:24 Server kernel: [606320.517761] R10: 000000000000a000 R11: 0000000000000000 R12: 0000000000000008 Mar 16 18:39:24 Server kernel: [606320.517763] R13: 0000000000000004 R14: ffff8da642d61200 R15: 000000004000001c Mar 16 18:39:24 Server kernel: [606320.517765] FS: 00007f5f29303f00(0000) GS:ffff8da8a5f80000(0000) knlGS:0000000000000000 Mar 16 18:39:24 Server kernel: [606320.517767] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Mar 16 18:39:24 Server kernel: [606320.517767] CR2: 0000000000000040 CR3: 0000000079d4a006 CR4: 00000000003606e0 Mar 16 18:39:24 Server kernel: [606320.517768] Call Trace: Mar 16 18:39:24 Server kernel: [606320.517910] i915_active_ref+0x21/0x210 [i915] Mar 16 18:39:24 Server kernel: [606320.518049] ? intel_fbc_deactivate+0x38/0x60 [i915] Mar 16 18:39:24 Server kernel: [606320.518182] i915_vma_move_to_active+0x6e/0xf0 [i915] Mar 16 18:39:24 Server kernel: [606320.518371] i915_gem_do_execbuffer+0xc62/0x1520 [i915] Mar 16 18:39:24 Server kernel: [606320.518404] ? _cond_resched+0x15/0x30 Mar 16 18:39:24 Server kernel: [606320.518416] ? mutex_lock+0xe/0x30 Mar 16 18:39:24 Server kernel: [606320.518439] ? unix_stream_read_generic+0x1f7/0x8f0 Mar 16 18:39:24 Server kernel: [606320.518456] ? __kmalloc_node+0x1f5/0x300 Mar 16 18:39:24 Server kernel: [606320.518636] i915_gem_execbuffer2_ioctl+0x1df/0x3d0 [i915] Mar 16 18:39:24 Server kernel: [606320.518764] ? i915_gem_madvise_ioctl+0x13a/0x290 [i915] Mar 16 18:39:24 Server kernel: [606320.518874] ? i915_gem_execbuffer_ioctl+0x2e0/0x2e0 [i915] Mar 16 18:39:24 Server kernel: [606320.518904] drm_ioctl_kernel+0xaa/0xf0 [drm] Mar 16 18:39:24 Server kernel: [606320.518912] drm_ioctl+0x208/0x390 [drm] Mar 16 18:39:24 Server kernel: [606320.518936] ? i915_gem_execbuffer_ioctl+0x2e0/0x2e0 [i915] Mar 16 18:39:24 Server kernel: [606320.518941] do_vfs_ioctl+0x40e/0x670 Mar 16 18:39:24 Server kernel: [606320.518944] ksys_ioctl+0x5e/0x90 Mar 16 18:39:24 Server kernel: [606320.518945] __x64_sys_ioctl+0x16/0x20 Mar 16 18:39:24 Server kernel: [606320.518947] do_syscall_64+0x52/0x160 Mar 16 18:39:24 Server kernel: [606320.518950] entry_SYSCALL_64_after_hwframe+0x44/0xa9 Mar 16 18:39:24 Server kernel: [606320.518953] RIP: 0033:0x7f5f2a7dd497 Mar 16 18:39:24 Server kernel: [606320.518955] Code: 00 00 90 48 8b 05 f9 79 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1> Mar 16 18:39:24 Server kernel: [606320.518956] RSP: 002b:00007ffc4b8c1ef8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 Mar 16 18:39:24 Server kernel: [606320.518958] RAX: ffffffffffffffda RBX: 00007ffc4b8c1f40 RCX: 00007f5f2a7dd497 Mar 16 18:39:24 Server kernel: [606320.518958] RDX: 00007ffc4b8c1f40 RSI: 0000000040406469 RDI: 000000000000000b Mar 16 18:39:24 Server kernel: [606320.518959] RBP: 0000000040406469 R08: 000055d08ff688d0 R09: 0000000000000000 Mar 16 18:39:24 Server kernel: [606320.518960] R10: 0000000000000000 R11: 0000000000000246 R12: 000055d090290780 Mar 16 18:39:24 Server kernel: [606320.518960] R13: 000000000000000b R14: ffffffffffffffff R15: 00007f5f23530e08 Mar 16 18:39:24 Server kernel: [606320.518962] Modules linked in: nls_utf8 isofs uas usb_storage udf crc_itu_t loop nfsv3 nfs_acl rpcsec_g> Mar 16 18:39:24 Server kernel: [606320.518989] libarc4 snd_intel_nhlt bluetooth snd_hda_codec intel_cstate nls_ascii iwlwifi nls_cp437 in> Mar 16 18:39:24 Server kernel: [606320.519013] CR2: 0000000000000040 Mar 16 18:39:24 Server kernel: [606320.519016] ---[ end trace 0ddb98fda379e40e ]--- Mar 16 18:39:24 Server kernel: [606320.756814] RIP: 0010:i915_active_acquire+0x9/0x70 [i915] Mar 16 18:39:24 Server kernel: [606320.756817] Code: 00 00 00 48 c7 46 58 00 00 00 00 c7 46 38 00 00 00 00 48 c7 c6 0a a0 65 c0 e9 33 90 7> Mar 16 18:39:24 Server kernel: [606320.756818] RSP: 0018:ffffa06400e07a40 EFLAGS: 00010286 Mar 16 18:39:24 Server kernel: [606320.756819] RAX: 0000000000000000 RBX: ffff8da74554f480 RCX: 0000000000000000 Mar 16 18:39:24 Server kernel: [606320.756820] RDX: ffff8da642d61200 RSI: ffff8da74554f480 RDI: 0000000000000008 Mar 16 18:39:24 Server kernel: [606320.756820] RBP: ffff8da642d61200 R08: ffff8da74a4db988 R09: ffff8da74a4db988 Mar 16 18:39:24 Server kernel: [606320.756821] R10: 000000000000a000 R11: 0000000000000000 R12: 0000000000000008 Mar 16 18:39:24 Server kernel: [606320.756822] R13: 0000000000000004 R14: ffff8da642d61200 R15: 000000004000001c Mar 16 18:39:24 Server kernel: [606320.756823] FS: 00007f5f29303f00(0000) GS:ffff8da8a5f80000(0000) knlGS:0000000000000000 Mar 16 18:39:24 Server kernel: [606320.756823] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Mar 16 18:39:24 Server kernel: [606320.756824] CR2: 0000000000000040 CR3: 0000000079d4a006 CR4: 00000000003606e0 ** Model information sys_vendor: To Be Filled By O.E.M. product_name: To Be Filled By O.E.M. product_version: To Be Filled By O.E.M. chassis_vendor: To Be Filled By O.E.M. chassis_version: To Be Filled By O.E.M. bios_vendor: American Megatrends Inc. bios_version: P3.10 board_vendor: ASRock board_name: H310M-ITX/ac board_version: ** Loaded modules: nfnetlink_queue nfnetlink_log fuse btrfs xor zstd_compress raid6_pq zstd_decompress ufs qnx4 hfsplus hfs minix msdos jfs xfs dm_mod ipheth wireguard(OE) ip6_udp_tunnel udp_tunnel ctr ccm intel_rapl_msr intel_rapl_common nft_counter cmac x86_pkg_temp_thermal intel_powerclamp coretemp bnep kvm_intel nft_chain_nat kvm xt_MASQUERADE xt_nat nf_nat irqbypass snd_sof_pci nf_conntrack snd_sof_intel_hda_common crct10dif_pclmul nf_defrag_ipv6 nf_defrag_ipv4 ghash_clmulni_intel snd_sof_intel_hda libcrc32c snd_sof_intel_byt snd_sof_intel_ipc xt_tcpudp snd_sof snd_sof_xtensa_dsp snd_soc_skl nft_compat snd_soc_hdac_hda snd_hda_ext_core snd_hda_codec_hdmi snd_soc_sst_ipc nf_tables snd_soc_sst_dsp snd_soc_acpi_intel_match snd_soc_acpi snd_hda_codec_realtek btusb btrtl snd_hda_codec_generic btbcm ledtrig_audio nfnetlink iwlmvm snd_soc_core btintel aesni_intel snd_compress binfmt_misc snd_hda_intel crypto_simd cryptd snd_intel_nhlt glue_helper snd_hda_codec efi_pstore bluetooth intel_cstate mac80211 libarc4 nls_ascii snd_hda_core intel_uncore snd_hwdep snd_pcm nls_cp437 iwlwifi intel_rapl_perf snd_timer drbg vfat fat iTCO_wdt pcspkr efivars wmi_bmof iTCO_vendor_support snd ansi_cprng cfg80211 watchdog soundcore ecdh_generic ecc mei_me joydev rfkill sg mei ie31200_edac intel_pch_thermal evdev acpi_pad sunrpc efivarfs ip_tables x_tables autofs4 ext4 crc16 mbcache jbd2 crc32c_generic hid_logitech_hidpp hid_logitech_dj hid_generic usbhid hid sd_mod i915 i2c_algo_bit drm_kms_helper xhci_pci crc32_pclmul xhci_hcd nvme ahci crc32c_intel e1000e libahci usbcore drm libata ptp pps_core usb_common i2c_i801 scsi_mod nvme_core wmi video button ** Network interface configuration: *** /etc/network/interfaces: source /etc/network/interfaces.d/* auto lo iface lo inet loopback ** Network status: *** IP interfaces and addresses: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether 70:85:c2:b4:99:ac brd ff:ff:ff:ff:ff:ff 3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 98:3b:8f:d1:8d:f5 brd ff:ff:ff:ff:ff:ff inet 192.168.0.20/24 brd 192.168.0.255 scope global noprefixroute wlp2s0 valid_lft forever preferred_lft forever inet6 fe80::9a3b:8fff:fed1:8df5/64 scope link noprefixroute valid_lft forever preferred_lft forever 6: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.168.2.1/24 scope global wg0 valid_lft forever preferred_lft forever *** Device statistics: Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed wlp2s0: 117719250075 145133917 0 1 0 0 0 0 73843678019 107656070 0 0 0 0 0 0 lo: 215542570 2159901 0 0 0 0 0 0 215542570 2159901 0 0 0 0 0 0 wg0: 6847080624 4732400 0 0 0 0 0 0 54052748 616589 0 912 0 0 0 0 eno1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 *** Protocol statistics: Ip: Forwarding: 1 113674471 total packets received 12 with invalid headers 30040542 forwarded 0 incoming packets discarded 83633906 incoming packets delivered 96973634 requests sent out 147864 outgoing packets dropped 859 dropped because of missing route 6 reassemblies required 3 packets reassembled ok 1 fragments received ok 2 fragments created Icmp: 144841 ICMP messages received 119 input ICMP message failed ICMP input histogram: destination unreachable: 4049 timeout in transit: 89 echo requests: 9610 echo replies: 131093 370582 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 28796 redirect: 72935 echo requests: 259241 echo replies: 9610 IcmpMsg: InType0: 131093 InType3: 4049 InType8: 9610 InType11: 89 OutType0: 9610 OutType3: 28796 OutType5: 72935 OutType8: 259241 Tcp: 188309 active connection openings 27398 passive connection openings 28936 failed connection attempts 4096 connection resets received 16 connections established 35215325 segments received 37901943 segments sent out 993346 segments retransmitted 8518 bad segments received 52814 resets sent InCsumErrors: 7892 Udp: 48145113 packets received 30734 packets to unknown port received 37882 packet receive errors 39783713 packets sent 37882 receive buffer errors 130804 send buffer errors IgnoredMulti: 49855 UdpLite: TcpExt: 1 SYN cookies sent 1 invalid SYN cookies received 3256 resets received for embryonic SYN_RECV sockets 1365 packets pruned from receive queue because of socket buffer overrun 110150 TCP sockets finished time wait in fast timer 670 packetes rejected in established connections because of timestamp 201156 delayed acks sent 217 delayed acks further delayed because of locked socket Quick ack mode was activated 73144 times 29 SYNs to LISTEN sockets dropped 18279191 packet headers predicted 6442301 acknowledgments not containing data payload received 6730259 predicted acknowledgments 1 times recovered from packet loss due to fast retransmit TCPSackRecovery: 356326 TCPSACKReneging: 217 Detected reordering 137223 times using SACK Detected reordering 5 times using reno fast retransmit Detected reordering 135 times using time stamp 250 congestion windows fully recovered without slow start 88 congestion windows partially recovered using Hoe heuristic TCPDSACKUndo: 8819 5281 congestion windows recovered without slow start after partial ack TCPLostRetransmit: 156262 9 timeouts after reno fast retransmit TCPSackFailures: 387 7907 timeouts in loss state 683976 fast retransmits 86264 retransmits in slow start TCPTimeouts: 179753 TCPLossProbes: 143541 TCPLossProbeRecovery: 10327 TCPSackRecoveryFail: 42852 6403 packets collapsed in receive queue due to low socket buffer TCPBacklogCoalesce: 36017 TCPDSACKOldSent: 84733 TCPDSACKOfoSent: 2648 TCPDSACKRecv: 70266 TCPDSACKOfoRecv: 28914 3034 connections reset due to unexpected data 469 connections reset due to early user close 755 connections aborted due to timeout TCPDSACKIgnoredOld: 183 TCPDSACKIgnoredNoUndo: 34032 TCPSpuriousRTOs: 2931 TCPSackShifted: 849902 TCPSackMerged: 1465633 TCPSackShiftFallback: 870758 TCPReqQFullDoCookies: 1 TCPRcvCoalesce: 6540652 TCPOFOQueue: 693923 TCPOFOMerge: 2206 TCPChallengeACK: 1125 TCPSYNChallenge: 1073 TCPFastOpenActive: 4781 TCPFastOpenActiveFail: 14858 TCPFastOpenBlackhole: 8 TCPSpuriousRtxHostQueues: 18 TCPAutoCorking: 265327 TCPFromZeroWindowAdv: 5000 TCPToZeroWindowAdv: 5008 TCPWantZeroWindowAdv: 40770 TCPSynRetrans: 70021 TCPOrigDataSent: 25750011 TCPHystartTrainDetect: 24 TCPHystartTrainCwnd: 543 TCPHystartDelayDetect: 510 TCPHystartDelayCwnd: 22358 TCPACKSkippedSynRecv: 3 TCPACKSkippedPAWS: 254 TCPACKSkippedSeq: 4571 TCPACKSkippedTimeWait: 2 TCPACKSkippedChallenge: 42 TCPWinProbe: 5795 TCPKeepAlive: 16248 TCPDelivered: 26001902 TCPAckCompressed: 455354 IpExt: InMcastPkts: 202084 OutMcastPkts: 2867 InBcastPkts: 25480 OutBcastPkts: 156 InOctets: 120763272223 OutOctets: 79231137243 InMcastOctets: 67565132 OutMcastOctets: 155191 InBcastOctets: 1735042 OutBcastOctets: 12456 InNoECTPkts: 151867505 InECT1Pkts: 10 InECT0Pkts: 10962 InCEPkts: 377 ** PCI devices: 00:00.0 Host bridge [0600]: Intel Corporation 8th Gen Core 4-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S] [8086:3e1f] (rev 08) DeviceName: Onboard - Other Subsystem: ASRock Incorporation 8th Gen Core 4-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S] [1849:3e1f] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx- Latency: 0 Capabilities: [e0] Vendor Specific Information: Len=10 <?> Kernel driver in use: skl_uncore Kernel modules: ie31200_edac 00:02.0 VGA compatible controller [0300]: Intel Corporation 8th Gen Core Processor Gaussian Mixture Model [8086:3e91] (prog-if 00 [VGA controller]) DeviceName: Onboard - Video Subsystem: ASRock Incorporation 8th Gen Core Processor Gaussian Mixture Model [1849:3e91] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 128 Region 0: Memory at a0000000 (64-bit, non-prefetchable) [size=16M] Region 2: Memory at 90000000 (64-bit, prefetchable) [size=256M] Region 4: I/O ports at 3000 [size=64] Expansion ROM at 000c0000 [virtual] [disabled] [size=128K] Capabilities: [40] Vendor Specific Information: Len=0c <?> Capabilities: [70] Express (v2) Root Complex Integrated Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0 ExtTag- RBE+ FLReset+ DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- FLReset- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend- DevCap2: Completion Timeout: Not Supported, TimeoutDis-, NROPrPrP-, LTR- 10BitTagComp-, 10BitTagReq-, OBFF Not Supported, ExtFmt-, EETLPPrefix- EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS- AtomicOpsCap: 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled AtomicOpsCtl: ReqEn- Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable- 64bit- Address: fee00018 Data: 0000 Capabilities: [d0] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [100 v1] Process Address Space ID (PASID) PASIDCap: Exec- Priv-, Max PASID Width: 14 PASIDCtl: Enable- Exec- Priv- Capabilities: [200 v1] Address Translation Service (ATS) ATSCap: Invalidate Queue Depth: 00 ATSCtl: Enable-, Smallest Translation Unit: 00 Capabilities: [300 v1] Page Request Interface (PRI) PRICtl: Enable- Reset- PRISta: RF- UPRGI- Stopped+ Page Request Capacity: 00008000, Page Request Allocation: 00000000 Kernel driver in use: i915 Kernel modules: i915 00:12.0 Signal processing controller [1180]: Intel Corporation Cannon Lake PCH Thermal Controller [8086:a379] (rev 10) DeviceName: Onboard - Other Subsystem: ASRock Incorporation Cannon Lake PCH Thermal Controller [1849:a379] Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 16 Region 0: Memory at a133d000 (64-bit, non-prefetchable) [size=4K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Kernel driver in use: intel_pch_thermal Kernel modules: intel_pch_thermal 00:14.0 USB controller [0c03]: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller [8086:a36d] (rev 10) (prog-if 30 [XHCI]) DeviceName: Onboard - Other Subsystem: ASRock Incorporation Cannon Lake PCH USB 3.1 xHCI Host Controller [1849:a36d] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin ? routed to IRQ 127 Region 0: Memory at a1320000 (64-bit, non-prefetchable) [size=64K] Capabilities: [70] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+ Address: 00000000fee002d8 Data: 0000 Capabilities: [90] Vendor Specific Information: Len=14 <?> Kernel driver in use: xhci_hcd Kernel modules: xhci_pci 00:14.2 RAM memory [0500]: Intel Corporation Cannon Lake PCH Shared SRAM [8086:a36f] (rev 10) DeviceName: Onboard - Other Subsystem: ASRock Incorporation Cannon Lake PCH Shared SRAM [1849:a36f] Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Region 0: Memory at a1336000 (64-bit, non-prefetchable) [disabled] [size=8K] Region 2: Memory at a133c000 (64-bit, non-prefetchable) [disabled] [size=4K] Capabilities: [80] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- 00:16.0 Communication controller [0780]: Intel Corporation Cannon Lake PCH HECI Controller [8086:a360] (rev 10) DeviceName: Onboard - Other Subsystem: ASRock Incorporation Cannon Lake PCH HECI Controller [1849:a360] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 133 Region 0: Memory at a133b000 (64-bit, non-prefetchable) [size=4K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee00378 Data: 0000 Capabilities: [a4] Vendor Specific Information: Len=14 <?> Kernel driver in use: mei_me Kernel modules: mei_me 00:17.0 SATA controller [0106]: Intel Corporation Cannon Lake PCH SATA AHCI Controller [8086:a352] (rev 10) (prog-if 01 [AHCI 1.0]) DeviceName: Onboard - SATA Subsystem: ASRock Incorporation Cannon Lake PCH SATA AHCI Controller [1849:a352] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 125 Region 0: Memory at a1334000 (32-bit, non-prefetchable) [size=8K] Region 1: Memory at a133a000 (32-bit, non-prefetchable) [size=256] Region 2: I/O ports at 3090 [size=8] Region 3: I/O ports at 3080 [size=4] Region 4: I/O ports at 3060 [size=32] Region 5: Memory at a1339000 (32-bit, non-prefetchable) [size=2K] Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit- Address: fee00298 Data: 0000 Capabilities: [70] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004 Kernel driver in use: ahci Kernel modules: ahci 00:1c.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #5 [8086:a33c] (rev f0) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 122 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: [disabled] Memory behind bridge: a1200000-a12fffff [size=1M] Prefetchable memory behind bridge: [disabled] Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR- BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16+ MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0 ExtTag- RBE+ DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend- LnkCap: Port #5, Speed 5GT/s, Width x4, ASPM not supported ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s (ok), Width x4 (ok) TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise- Slot #8, PowerLimit 25.000W; Interlock- NoCompl+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock- Changed: MRL- PresDet- LinkState+ RootCap: CRSVisible- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- DevCap2: Completion Timeout: Range ABC, TimeoutDis+, NROPrPrP-, LTR+ 10BitTagComp-, 10BitTagReq-, OBFF Not Supported, ExtFmt-, EETLPPrefix- EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS-, LN System CLS Not Supported, TPHComp-, ExtTPHComp-, ARIFwd+ AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd- AtomicOpsCtl: ReqEn- EgressBlck- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit- Address: fee00218 Data: 0000 Capabilities: [90] Subsystem: ASRock Incorporation Cannon Lake PCH PCI Express Root Port [1849:a33c] Capabilities: [a0] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [100 v0] Null Capabilities: [140 v1] Access Control Services ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans- ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans- Capabilities: [150 v1] Precision Time Measurement PTMCap: Requester:- Responder:+ Root:+ PTMClockGranularity: 4ns PTMControl: Enabled:+ RootSelected:+ PTMEffectiveGranularity: Unknown Capabilities: [200 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ PortCommonModeRestoreTime=40us PortTPowerOnTime=44us L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ T_CommonMode=40us LTR1.2_Threshold=81920ns L1SubCtl2: T_PwrOn=44us Capabilities: [250 v1] Downstream Port Containment DpcCap: INT Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP PIO Log 4, DL_ActiveErr+ DpcCtl: Trigger:0 Cmpl- INT- ErrCor- PoisonedTLP- SwTrigger- DL_ActiveErr- DpcSta: Trigger- Reason:00 INT- RPBusy- TriggerExt:00 RP PIO ErrPtr:1f Source: 0000 Kernel driver in use: pcieport 00:1d.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #11 [8086:a332] (rev f0) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin C routed to IRQ 123 Bus: primary=00, secondary=02, subordinate=02, sec-latency=0 I/O behind bridge: [disabled] Memory behind bridge: a1100000-a11fffff [size=1M] Prefetchable memory behind bridge: [disabled] Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR- BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16+ MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0 ExtTag- RBE+ DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend- LnkCap: Port #11, Speed 5GT/s, Width x1, ASPM not supported ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s (downgraded), Width x1 (ok) TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise- Slot #14, PowerLimit 10.000W; Interlock- NoCompl+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock- Changed: MRL- PresDet- LinkState+ RootCap: CRSVisible- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- DevCap2: Completion Timeout: Range ABC, TimeoutDis+, NROPrPrP-, LTR+ 10BitTagComp-, 10BitTagReq-, OBFF Not Supported, ExtFmt-, EETLPPrefix- EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS-, LN System CLS Not Supported, TPHComp-, ExtTPHComp-, ARIFwd+ AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd- AtomicOpsCtl: ReqEn- EgressBlck- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit- Address: fee00258 Data: 0000 Capabilities: [90] Subsystem: ASRock Incorporation Cannon Lake PCH PCI Express Root Port [1849:a332] Capabilities: [a0] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [100 v0] Null Capabilities: [140 v1] Access Control Services ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans- ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans- Capabilities: [150 v1] Precision Time Measurement PTMCap: Requester:- Responder:+ Root:+ PTMClockGranularity: 4ns PTMControl: Enabled:+ RootSelected:+ PTMEffectiveGranularity: Unknown Capabilities: [200 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ PortCommonModeRestoreTime=40us PortTPowerOnTime=44us L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ T_CommonMode=40us LTR1.2_Threshold=81920ns L1SubCtl2: T_PwrOn=60us Capabilities: [250 v1] Downstream Port Containment DpcCap: INT Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP PIO Log 4, DL_ActiveErr+ DpcCtl: Trigger:0 Cmpl- INT- ErrCor- PoisonedTLP- SwTrigger- DL_ActiveErr- DpcSta: Trigger- Reason:00 INT- RPBusy- TriggerExt:00 RP PIO ErrPtr:1f Source: 0000 Kernel driver in use: pcieport 00:1f.0 ISA bridge [0601]: Intel Corporation Device [8086:a303] (rev 10) DeviceName: Onboard - Other Subsystem: ASRock Incorporation Device [1849:a303] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 00:1f.3 Audio device [0403]: Intel Corporation Cannon Lake PCH cAVS [8086:a348] (rev 10) DeviceName: Onboard - Sound Subsystem: ASRock Incorporation Cannon Lake PCH cAVS [1849:288a] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 135 Region 0: Memory at a1330000 (64-bit, non-prefetchable) [size=16K] Region 4: Memory at a1000000 (64-bit, non-prefetchable) [size=1M] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [80] Vendor Specific Information: Len=14 <?> Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee003b8 Data: 0000 Kernel driver in use: snd_hda_intel Kernel modules: snd_hda_intel, snd_soc_skl, snd_sof_pci 00:1f.4 SMBus [0c05]: Intel Corporation Cannon Lake PCH SMBus Controller [8086:a323] (rev 10) DeviceName: Onboard - Other Subsystem: ASRock Incorporation Cannon Lake PCH SMBus Controller [1849:a323] Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 16 Region 0: Memory at a1338000 (64-bit, non-prefetchable) [size=256] Region 4: I/O ports at efa0 [size=32] Kernel driver in use: i801_smbus Kernel modules: i2c_i801 00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller [8086:a324] (rev 10) DeviceName: Onboard - Other Subsystem: ASRock Incorporation Cannon Lake PCH SPI Controller [1849:a324] Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Region 0: Memory at fe010000 (32-bit, non-prefetchable) [size=4K] 00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (7) I219-V [8086:15bc] (rev 10) DeviceName: Onboard - Ethernet Subsystem: ASRock Incorporation Ethernet Connection (7) I219-V [1849:15bc] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 124 Region 0: Memory at a1300000 (32-bit, non-prefetchable) [size=128K] Capabilities: [c8] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=1 PME- Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee00278 Data: 0000 Kernel driver in use: e1000e Kernel modules: e1000e 01:00.0 Non-Volatile memory controller [0108]: Intel Corporation SSD Pro 7600p/760p/E 6100p Series [8086:f1a6] (rev 03) (prog-if 02 [NVM Express]) Subsystem: Intel Corporation SSD Pro 7600p/760p/E 6100p Series [8086:390b] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 16 NUMA node: 0 Region 0: Memory at a1200000 (64-bit, non-prefetchable) [size=16K] Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [50] MSI: Enable- Count=1/8 Maskable+ 64bit+ Address: 0000000000000000 Data: 0000 Masking: 00000000 Pending: 00000000 Capabilities: [70] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 25.000W DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+ RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop- FLReset- MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend- LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L1 <8us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+ ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s (downgraded), Width x4 (ok) TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, NROPrPrP-, LTR+ 10BitTagComp-, 10BitTagReq-, OBFF Not Supported, ExtFmt-, EETLPPrefix- EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS-, TPHComp-, ExtTPHComp- AtomicOpsCap: 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled AtomicOpsCtl: ReqEn- LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [b0] MSI-X: Enable+ Count=16 Masked- Vector table: BAR=0 offset=00002000 PBA: BAR=0 offset=00002100 Capabilities: [100 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn- MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 00000000 00000000 00000000 00000000 Capabilities: [158 v1] Secondary PCI Express LnkCtl3: LnkEquIntrruptEn-, PerformEqu- LaneErrStat: 0 Capabilities: [178 v1] Latency Tolerance Reporting Max snoop latency: 3145728ns Max no snoop latency: 3145728ns Capabilities: [180 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ PortCommonModeRestoreTime=10us PortTPowerOnTime=10us L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ T_CommonMode=0us LTR1.2_Threshold=81920ns L1SubCtl2: T_PwrOn=44us Kernel driver in use: nvme Kernel modules: nvme 02:00.0 Network controller [0280]: Intel Corporation Dual Band Wireless-AC 3168NGW [Stone Peak] [8086:24fb] (rev 10) Subsystem: Intel Corporation Dual Band Wireless-AC 3168NGW [Stone Peak] [8086:2110] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 134 Region 0: Memory at a1100000 (64-bit, non-prefetchable) [size=8K] Capabilities: [c8] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee00398 Data: 0000 Capabilities: [40] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 unlimited ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq- RlxdOrd+ ExtTag- PhantFunc- AuxPwr+ NoSnoop+ FLReset- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L1, Exit Latency L1 <32us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+ ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s (ok), Width x1 (ok) TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range B, TimeoutDis+, NROPrPrP-, LTR+ 10BitTagComp-, 10BitTagReq-, OBFF Via WAKE#, ExtFmt-, EETLPPrefix- EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS-, TPHComp-, ExtTPHComp- AtomicOpsCap: 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 16ms to 55ms, TimeoutDis-, LTR+, OBFF Disabled AtomicOpsCtl: ReqEn- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [100 v1] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr+ BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ AERCap: First Error Pointer: 14, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn- MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 40000001 0000000f a1100460 00000000 Capabilities: [140 v1] Device Serial Number 98-3b-8f-ff-ff-d1-8d-f5 Capabilities: [14c v1] Latency Tolerance Reporting Max snoop latency: 3145728ns Max no snoop latency: 3145728ns Capabilities: [154 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ PortCommonModeRestoreTime=30us PortTPowerOnTime=60us L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ T_CommonMode=0us LTR1.2_Threshold=81920ns L1SubCtl2: T_PwrOn=60us Kernel driver in use: iwlwifi Kernel modules: iwlwifi ** USB devices: Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 046d:c534 Logitech, Inc. Unifying Receiver Bus 001 Device 003: ID 8087:0aa7 Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub -- System Information: Debian Release: bullseye/sid APT prefers testing APT policy: (500, 'testing'), (90, 'unstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.4.0-4-amd64 (SMP w/4 CPU cores) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages linux-image-5.4.0-4-amd64 depends on: ii initramfs-tools [linux-initramfs-tool] 0.136 ii kmod 27-2 ii linux-base 4.6 Versions of packages linux-image-5.4.0-4-amd64 recommends: ii apparmor 2.13.3-7 ii firmware-linux-free 20200122-1 Versions of packages linux-image-5.4.0-4-amd64 suggests: pn debian-kernel-handbook <none> ii grub-efi-amd64 2.04-5 pn linux-doc-5.4 <none> Versions of packages linux-image-5.4.0-4-amd64 is related to: pn firmware-amd-graphics <none> pn firmware-atheros <none> pn firmware-bnx2 <none> pn firmware-bnx2x <none> pn firmware-brcm80211 <none> pn firmware-cavium <none> pn firmware-intel-sound <none> pn firmware-intelwimax <none> pn firmware-ipw2x00 <none> pn firmware-ivtv <none> ii firmware-iwlwifi 20190717-2 pn firmware-libertas <none> pn firmware-linux-nonfree <none> pn firmware-misc-nonfree <none> pn firmware-myricom <none> pn firmware-netxen <none> pn firmware-qlogic <none> pn firmware-realtek <none> pn firmware-samsung <none> pn firmware-siano <none> pn firmware-ti-connectivity <none> pn xen-hypervisor <none> -- no debconf informationdiff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 64e4bfb0dfc9..e18ee1f17d6e 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -15186,7 +15186,7 @@ intel_prepare_plane_fb(struct drm_plane *plane, return ret; fb_obj_bump_render_priority(obj); - intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_DIRTYFB); + i915_gem_object_flush_frontbuffer(obj, ORIGIN_DIRTYFB); if (!new_plane_state->uapi.fence) { /* implicit fencing */ struct dma_fence *fence; diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c b/drivers/gpu/drm/i915/display/intel_frontbuffer.c index 84b164f31895..6cb02c912acc 100644 --- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c +++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c @@ -229,11 +229,11 @@ static void frontbuffer_release(struct kref *ref) vma->display_alignment = I915_GTT_MIN_ALIGNMENT; spin_unlock(&obj->vma.lock); - obj->frontbuffer = NULL; + RCU_INIT_POINTER(obj->frontbuffer, NULL); spin_unlock(&to_i915(obj->base.dev)->fb_tracking.lock); i915_gem_object_put(obj); - kfree(front); + kfree_rcu(front, rcu); } struct intel_frontbuffer * @@ -242,11 +242,7 @@ intel_frontbuffer_get(struct drm_i915_gem_object *obj) struct drm_i915_private *i915 = to_i915(obj->base.dev); struct intel_frontbuffer *front; - spin_lock(&i915->fb_tracking.lock); - front = obj->frontbuffer; - if (front) - kref_get(&front->ref); - spin_unlock(&i915->fb_tracking.lock); + front = __intel_frontbuffer_get(obj); if (front) return front; @@ -262,13 +258,13 @@ intel_frontbuffer_get(struct drm_i915_gem_object *obj) i915_active_may_sleep(frontbuffer_retire)); spin_lock(&i915->fb_tracking.lock); - if (obj->frontbuffer) { + if (rcu_access_pointer(obj->frontbuffer)) { kfree(front); - front = obj->frontbuffer; + front = rcu_dereference_protected(obj->frontbuffer, true); kref_get(&front->ref); } else { i915_gem_object_get(obj); - obj->frontbuffer = front; + rcu_assign_pointer(obj->frontbuffer, front); } spin_unlock(&i915->fb_tracking.lock); diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.h b/drivers/gpu/drm/i915/display/intel_frontbuffer.h index adc64d61a4a5..6d41f5394425 100644 --- a/drivers/gpu/drm/i915/display/intel_frontbuffer.h +++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.h @@ -27,10 +27,10 @@ #include <linux/atomic.h> #include <linux/kref.h> +#include "gem/i915_gem_object_types.h" #include "i915_active.h" struct drm_i915_private; -struct drm_i915_gem_object; enum fb_op_origin { ORIGIN_GTT, @@ -45,6 +45,7 @@ struct intel_frontbuffer { atomic_t bits; struct i915_active write; struct drm_i915_gem_object *obj; + struct rcu_head rcu; }; void intel_frontbuffer_flip_prepare(struct drm_i915_private *i915, @@ -54,6 +55,35 @@ void intel_frontbuffer_flip_complete(struct drm_i915_private *i915, void intel_frontbuffer_flip(struct drm_i915_private *i915, unsigned frontbuffer_bits); +void intel_frontbuffer_put(struct intel_frontbuffer *front); + +static inline struct intel_frontbuffer * +__intel_frontbuffer_get(const struct drm_i915_gem_object *obj) +{ + struct intel_frontbuffer *front; + + if (likely(!rcu_access_pointer(obj->frontbuffer))) + return NULL; + + rcu_read_lock(); + do { + front = rcu_dereference(obj->frontbuffer); + if (!front) + break; + + if (unlikely(!kref_get_unless_zero(&front->ref))) + continue; + + if (likely(front == rcu_access_pointer(obj->frontbuffer))) + break; + + intel_frontbuffer_put(front); + } while (1); + rcu_read_unlock(); + + return front; +} + struct intel_frontbuffer * intel_frontbuffer_get(struct drm_i915_gem_object *obj); @@ -119,6 +149,4 @@ void intel_frontbuffer_track(struct intel_frontbuffer *old, struct intel_frontbuffer *new, unsigned int frontbuffer_bits); -void intel_frontbuffer_put(struct intel_frontbuffer *front); - #endif /* __INTEL_FRONTBUFFER_H__ */ diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c index 2a44b3be2600..6097594468a9 100644 --- a/drivers/gpu/drm/i915/display/intel_overlay.c +++ b/drivers/gpu/drm/i915/display/intel_overlay.c @@ -279,12 +279,21 @@ static void intel_overlay_flip_prepare(struct intel_overlay *overlay, struct i915_vma *vma) { enum pipe pipe = overlay->crtc->pipe; + struct intel_frontbuffer *from, *to; WARN_ON(overlay->old_vma); - intel_frontbuffer_track(overlay->vma ? overlay->vma->obj->frontbuffer : NULL, - vma ? vma->obj->frontbuffer : NULL, - INTEL_FRONTBUFFER_OVERLAY(pipe)); + if (overlay->vma) + from = intel_frontbuffer_get(overlay->vma->obj); + if (vma) + to = intel_frontbuffer_get(vma->obj); + + intel_frontbuffer_track(from, to, INTEL_FRONTBUFFER_OVERLAY(pipe)); + + if (to) + intel_frontbuffer_put(to); + if (from) + intel_frontbuffer_put(from); intel_frontbuffer_flip_prepare(overlay->i915, INTEL_FRONTBUFFER_OVERLAY(pipe)); @@ -764,7 +773,7 @@ static int intel_overlay_do_put_image(struct intel_overlay *overlay, ret = PTR_ERR(vma); goto out_pin_section; } - intel_frontbuffer_flush(new_bo->frontbuffer, ORIGIN_DIRTYFB); + i915_gem_object_flush_frontbuffer(new_bo, ORIGIN_DIRTYFB); if (!overlay->active) { u32 oconfig; diff --git a/drivers/gpu/drm/i915/gem/i915_gem_clflush.c b/drivers/gpu/drm/i915/gem/i915_gem_clflush.c index 5448efa77710..34be4c0ee7c5 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_clflush.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_clflush.c @@ -20,7 +20,8 @@ static void __do_clflush(struct drm_i915_gem_object *obj) { GEM_BUG_ON(!i915_gem_object_has_pages(obj)); drm_clflush_sg(obj->mm.pages); - intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU); + + i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU); } static int clflush_work(struct dma_fence_work *base) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_domain.c b/drivers/gpu/drm/i915/gem/i915_gem_domain.c index 65f1851e2863..0cc40e77bbd2 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_domain.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_domain.c @@ -558,7 +558,7 @@ i915_gem_set_domain_ioctl(struct drm_device *dev, void *data, i915_gem_object_unlock(obj); if (write_domain) - intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU); + i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU); out_unpin: i915_gem_object_unpin_pages(obj); @@ -678,7 +678,7 @@ int i915_gem_object_prepare_write(struct drm_i915_gem_object *obj, } out: - intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU); + i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU); obj->mm.dirty = true; /* return with the pages pinned */ return 0; diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c index 16d611db9ca6..ddc82a7a34ff 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c @@ -313,7 +313,7 @@ i915_gem_object_flush_write_domain(struct drm_i915_gem_object *obj, } spin_unlock(&obj->vma.lock); - intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU); + i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU); break; case I915_GEM_DOMAIN_WC: @@ -333,6 +333,30 @@ i915_gem_object_flush_write_domain(struct drm_i915_gem_object *obj, obj->write_domain = 0; } +void __i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj, + enum fb_op_origin origin) +{ + struct intel_frontbuffer *front; + + front = __intel_frontbuffer_get(obj); + if (front) { + intel_frontbuffer_flush(front, origin); + intel_frontbuffer_put(front); + } +} + +void __i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object *obj, + enum fb_op_origin origin) +{ + struct intel_frontbuffer *front; + + front = __intel_frontbuffer_get(obj); + if (front) { + intel_frontbuffer_invalidate(front, origin); + intel_frontbuffer_put(front); + } +} + void i915_gem_init__objects(struct drm_i915_private *i915) { INIT_WORK(&i915->mm.free_work, __i915_gem_free_work); diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h index a1eb7c0b23ac..858f8bf49a04 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h @@ -13,8 +13,8 @@ #include <drm/i915_drm.h> +#include "display/intel_frontbuffer.h" #include "i915_gem_object_types.h" - #include "i915_gem_gtt.h" void i915_gem_init__objects(struct drm_i915_private *i915); @@ -471,4 +471,25 @@ int i915_gem_object_wait_priority(struct drm_i915_gem_object *obj, unsigned int flags, const struct i915_sched_attr *attr); +void __i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj, + enum fb_op_origin origin); +void __i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object *obj, + enum fb_op_origin origin); + +static inline void +i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj, + enum fb_op_origin origin) +{ + if (unlikely(rcu_access_pointer(obj->frontbuffer))) + __i915_gem_object_flush_frontbuffer(obj, origin); +} + +static inline void +i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object *obj, + enum fb_op_origin origin) +{ + if (unlikely(rcu_access_pointer(obj->frontbuffer))) + __i915_gem_object_invalidate_frontbuffer(obj, origin); +} + #endif diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h index 2d404e6f63df..88e268633fdc 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h @@ -173,7 +173,7 @@ struct drm_i915_gem_object { */ u16 write_domain; - struct intel_frontbuffer *frontbuffer; + struct intel_frontbuffer __rcu *frontbuffer; /** Current tiling stride for the object, if it's tiled. */ unsigned int tiling_and_stride; diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 5eeef1ef7448..f19c678ebefc 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -200,7 +200,7 @@ i915_gem_phys_pwrite(struct drm_i915_gem_object *obj, * We manually control the domain here and pretend that it * remains coherent i.e. in the GTT domain, like shmem_pwrite. */ - intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU); + i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU); if (copy_from_user(vaddr, user_data, args->size)) return -EFAULT; @@ -208,7 +208,7 @@ i915_gem_phys_pwrite(struct drm_i915_gem_object *obj, drm_clflush_virt_range(vaddr, args->size); intel_gt_chipset_flush(&to_i915(obj->base.dev)->gt); - intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU); + i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU); return 0; } @@ -628,7 +628,7 @@ i915_gem_gtt_pwrite_fast(struct drm_i915_gem_object *obj, goto out_unpin; } - intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU); + i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU); user_data = u64_to_user_ptr(args->data_ptr); offset = args->offset; @@ -672,7 +672,7 @@ i915_gem_gtt_pwrite_fast(struct drm_i915_gem_object *obj, } intel_gt_flush_ggtt_writes(ggtt->vm.gt); - intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU); + i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU); i915_gem_object_unlock_fence(obj, fence); out_unpin: @@ -761,7 +761,7 @@ i915_gem_shmem_pwrite(struct drm_i915_gem_object *obj, offset = 0; } - intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU); + i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU); i915_gem_object_unlock_fence(obj, fence); return ret; diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c index 62670459ee8e..c5330f36687d 100644 --- a/drivers/gpu/drm/i915/i915_vma.c +++ b/drivers/gpu/drm/i915/i915_vma.c @@ -1148,8 +1148,14 @@ int i915_vma_move_to_active(struct i915_vma *vma, return err; if (flags & EXEC_OBJECT_WRITE) { - if (intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CS)) - i915_active_add_request(&obj->frontbuffer->write, rq); + struct intel_frontbuffer *front; + + front = __intel_frontbuffer_get(obj); + if (unlikely(front)) { + if (intel_frontbuffer_invalidate(front, ORIGIN_CS)) + i915_active_add_request(&front->write, rq); + intel_frontbuffer_put(front); + } dma_resv_add_excl_fence(vma->resv, &rq->fence); obj->write_domain = I915_GEM_DOMAIN_RENDER;
--- End Message ---
--- Begin Message ---
- To: 954817-done@bugs.debian.org
- Subject: Re: Bug#954817: linux-image-5.4.0-4-amd64: NULL pointer dereference in i915_active_acquire since Linux 5.4
- From: Ben Hutchings <ben@decadent.org.uk>
- Date: Mon, 30 Mar 2020 01:49:34 +0100
- Message-id: <466abaa4a1e687e8ce8c0bb6d36cdbd1b9aa30c8.camel@decadent.org.uk>
- In-reply-to: <[🔎] 158500632594.258117.1063792338911403240.reportbug@Server>
- References: <[🔎] 158500632594.258117.1063792338911403240.reportbug@Server>
On Mon, 2020-03-23 at 19:32 -0400, Tom Yang wrote: [...] > Since kernel 5.4.x I am getting crashes during some graphic rendering > poccess like playing videos. I found the following patch might fix > this problem. > The patch already got into kernel 5.5.x but still not into 5.4.x. > Could you patch it into kernel 5.4.x? Or release the kernel 5.5 > version? Thanks! > > Patchwork: https://patchwork.freedesktop.org/patch/345789/?series=70930&rev=3 [...] The upstream commit was: commit e85ade1f50aae464ce196672faa7a099fd1721ed Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Wed Dec 18 10:40:43 2019 +0000 drm/i915: Hold reference to intel_frontbuffer as we track activity I'm closing this with the current version in experimental, and a later version will go into unstable Real Soon Now. Ben. -- Ben Hutchings It is impossible to make anything foolproof because fools are so ingenious.Attachment: signature.asc
Description: This is a digitally signed message part
--- End Message ---