You are not logged in.

#1 2019-11-10 14:41:08

ajc0
Member
Registered: 2015-03-16
Posts: 6

Wayland on Optimus laptop, secondary GPU output

Hi,

I've bought a laptop with a dedicated NVIDIA GPU, with mini display ports hardwired to the dedicated GPU. I had a similar setup working with Bumblebee and X11 on a previous laptop but now I'd like to use Wayland. Game performance is not important to me, but I'd like to be able to use external monitors, and use CUDA (from pytorch/tensorflow).

lspci -vv # Only the relevant sections
01:00.0 VGA compatible controller: NVIDIA Corporation TU116M [GeForce GTX 1660 Ti Mobile] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: Tongfang Hongkong Limited TU116M [GeForce GTX 1660 Ti Mobile]
	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 163
	Region 0: Memory at a5000000 (32-bit, non-prefetchable) [size=16M]
	Region 1: Memory at 90000000 (64-bit, prefetchable) [size=256M]
	Region 3: Memory at a0000000 (64-bit, prefetchable) [size=32M]
	Region 5: I/O ports at 6000 [size=128]
	Expansion ROM at a6000000 [disabled] [size=512K]
	Capabilities: <access denied>
	Kernel driver in use: nouveau
	Kernel modules: nouveau, nvidia_drm, nvidia

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile) (prog-if 00 [VGA controller])
	DeviceName: Onboard - Video
	Subsystem: Tongfang Hongkong Limited UHD Graphics 630 (Mobile)
	Flags: bus master, fast devsel, latency 0, IRQ 140
	Memory at a4000000 (64-bit, non-prefetchable) [size=16M]
	Memory at 80000000 (64-bit, prefetchable) [size=256M]
	I/O ports at 7000 [size=64]
	[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
	Capabilities: [40] Vendor Specific Information: Len=0c <?>
	Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
	Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable- 64bit-
	Capabilities: [d0] Power Management version 2
	Capabilities: [100] Process Address Space ID (PASID)
	Capabilities: [200] Address Translation Service (ATS)
	Capabilities: [300] Page Request Interface (PRI)
	Kernel driver in use: i915
	Kernel modules: i915

Here's what I've tried so far:

(All combinations used linux 5.3.8-arch1-1, and I start gnome with XDG_SESSION_TYPE=wayland dbus-run-session gnome-session)

Using the nvidia package (435.21-15) and the i915 module

laptop crashes and the following kernel Oops appears in the logs:

Nov 10 12:26:56 john-laptop-2 kernel: Oops: 0000 [#1] PREEMPT SMP PTI
Nov 10 12:26:56 john-laptop-2 kernel: CPU: 8 PID: 815 Comm: gnome-shell Tainted: P     U     OE     5.3.8-arch1-1 #1
Nov 10 12:26:56 john-laptop-2 kernel: Hardware name: TongFang GK5CP6Z/GK5CP6Z, BIOS N.1.03 06/27/2019
Nov 10 12:26:56 john-laptop-2 kernel: RIP: 0010:drm_gem_map_dma_buf+0x3f/0xe0 [drm]
Nov 10 12:26:56 john-laptop-2 kernel: Code: 00 00 83 fe 03 0f 84 07 cc 01 00 48 8b 87 38 01 00 00 41 89 f5 48 85 c0 74 5c 48 8b 40 38 e8 98 e7 d8 f3 49 89 c4 48 8b 7b 08 <41> 8b 54 24 08 49 8b 34 24 48 8b 87 20 02 00 00 48 85 c0 74 08 41
Nov 10 12:26:56 john-laptop-2 kernel: RSP: 0018:ffffabe300bab980 EFLAGS: 00010246
Nov 10 12:26:56 john-laptop-2 kernel: RAX: fffffffffffffdf4 RBX: ffff97653d2247c0 RCX: ffff97652510f800
Nov 10 12:26:56 john-laptop-2 kernel: RDX: ffff976556072200 RSI: 0000000000000000 RDI: ffff976558c240b0
Nov 10 12:26:56 john-laptop-2 kernel: RBP: 0000000000000000 R08: 0001000000000000 R09: 0000000000000000
Nov 10 12:26:56 john-laptop-2 kernel: R10: 000000008f05c484 R11: 0000000000001000 R12: fffffffffffffdf4
Nov 10 12:26:56 john-laptop-2 kernel: R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000029
Nov 10 12:26:56 john-laptop-2 kernel: FS:  00007f23d93fb100(0000) GS:ffff97655da00000(0000) knlGS:0000000000000000
Nov 10 12:26:56 john-laptop-2 kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Nov 10 12:26:56 john-laptop-2 kernel: CR2: fffffffffffffdfc CR3: 000000081ce28006 CR4: 00000000003606e0
Nov 10 12:26:56 john-laptop-2 kernel: Call Trace:
Nov 10 12:26:56 john-laptop-2 kernel:  dma_buf_map_attachment+0x53/0x80
Nov 10 12:26:56 john-laptop-2 kernel:  i915_gem_object_get_pages_dmabuf+0x17/0x60 [i915]
Nov 10 12:26:56 john-laptop-2 kernel:  __i915_gem_object_get_pages+0x54/0x60 [i915]
Nov 10 12:26:56 john-laptop-2 kernel:  __i915_vma_do_pin+0x294/0x450 [i915]
Nov 10 12:26:56 john-laptop-2 kernel:  eb_lookup_vmas+0x7ce/0xb10 [i915]
Nov 10 12:26:56 john-laptop-2 kernel:  i915_gem_do_execbuffer+0x60f/0x12f0 [i915]
Nov 10 12:26:56 john-laptop-2 kernel:  i915_gem_execbuffer2_ioctl+0x1d3/0x3c0 [i915]
Nov 10 12:26:56 john-laptop-2 kernel:  ? i915_gem_execbuffer_ioctl+0x2d0/0x2d0 [i915]
Nov 10 12:26:56 john-laptop-2 kernel:  drm_ioctl_kernel+0xb8/0x100 [drm]
Nov 10 12:26:56 john-laptop-2 kernel:  drm_ioctl+0x23d/0x3d0 [drm]
Nov 10 12:26:56 john-laptop-2 kernel:  ? i915_gem_execbuffer_ioctl+0x2d0/0x2d0 [i915]
Nov 10 12:26:56 john-laptop-2 kernel:  do_vfs_ioctl+0x43d/0x6c0
Nov 10 12:26:56 john-laptop-2 kernel:  ? syscall_trace_enter+0x1f2/0x2e0
Nov 10 12:26:56 john-laptop-2 kernel:  ksys_ioctl+0x5e/0x90
Nov 10 12:26:56 john-laptop-2 kernel:  __x64_sys_ioctl+0x16/0x20
Nov 10 12:26:56 john-laptop-2 kernel:  do_syscall_64+0x5f/0x1c0
Nov 10 12:26:56 john-laptop-2 kernel:  entry_SYSCALL_64_after_hwframe+0x44/0xa9
Nov 10 12:26:56 john-laptop-2 kernel: RIP: 0033:0x7f23e0d9c25b
Nov 10 12:26:56 john-laptop-2 kernel: Code: 0f 1e fa 48 8b 05 25 9c 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d f5 9b 0c 00 f7 d8 64 89 01 48
Nov 10 12:26:56 john-laptop-2 kernel: RSP: 002b:00007fff2c1350c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
Nov 10 12:26:56 john-laptop-2 kernel: RAX: ffffffffffffffda RBX: 00007fff2c135110 RCX: 00007f23e0d9c25b
Nov 10 12:26:56 john-laptop-2 kernel: RDX: 00007fff2c135110 RSI: 0000000040406469 RDI: 000000000000000a
Nov 10 12:26:56 john-laptop-2 kernel: RBP: 0000000040406469 R08: 000055d271e8f080 R09: 0000000000000000
Nov 10 12:26:56 john-laptop-2 kernel: R10: 0000000000000000 R11: 0000000000000246 R12: 000055d271e52b00
Nov 10 12:26:56 john-laptop-2 kernel: R13: 000000000000000a R14: ffffffffffffffff R15: 00007f2387f34d68
Nov 10 12:26:56 john-laptop-2 kernel: Modules linked in: fuse ccm intel_rapl_msr intel_rapl_common sof_pci_dev snd_sof_intel_hda_common snd_sof_intel_hda snd_sof_intel_byt snd_sof_intel_ipc snd_sof snd_sof_xtensa_dsp snd_soc_skl joydev m>
Nov 10 12:26:56 john-laptop-2 kernel:  intel_cstate realtek intel_uncore snd_timer ecdh_generic ipmi_devintf tpm_tis intel_rapl_perf input_leds pcspkr i2c_i801 mc rfkill idma64 libphy snd ecc tpm_tis_core mei_me ipmi_msghandler intel_lps>
Nov 10 12:26:56 john-laptop-2 kernel: CR2: fffffffffffffdfc
Nov 10 12:26:56 john-laptop-2 kernel: ---[ end trace d88ff7b82251ad48 ]---
Nov 10 12:26:56 john-laptop-2 kernel: RIP: 0010:drm_gem_map_dma_buf+0x3f/0xe0 [drm]
Nov 10 12:26:56 john-laptop-2 kernel: Code: 00 00 83 fe 03 0f 84 07 cc 01 00 48 8b 87 38 01 00 00 41 89 f5 48 85 c0 74 5c 48 8b 40 38 e8 98 e7 d8 f3 49 89 c4 48 8b 7b 08 <41> 8b 54 24 08 49 8b 34 24 48 8b 87 20 02 00 00 48 85 c0 74 08 41
Nov 10 12:26:56 john-laptop-2 kernel: RSP: 0018:ffffabe300bab980 EFLAGS: 00010246
Nov 10 12:26:56 john-laptop-2 kernel: RAX: fffffffffffffdf4 RBX: ffff97653d2247c0 RCX: ffff97652510f800
Nov 10 12:26:56 john-laptop-2 kernel: RDX: ffff976556072200 RSI: 0000000000000000 RDI: ffff976558c240b0
Nov 10 12:26:56 john-laptop-2 kernel: RBP: 0000000000000000 R08: 0001000000000000 R09: 0000000000000000
Nov 10 12:26:56 john-laptop-2 kernel: R10: 000000008f05c484 R11: 0000000000001000 R12: fffffffffffffdf4
Nov 10 12:26:56 john-laptop-2 kernel: R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000029
Nov 10 12:26:56 john-laptop-2 kernel: FS:  00007f23d93fb100(0000) GS:ffff97655da00000(0000) knlGS:0000000000000000
Nov 10 12:26:56 john-laptop-2 kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Nov 10 12:26:56 john-laptop-2 kernel: CR2: fffffffffffffdfc CR3: 000000081ce28006 CR4: 00000000003606e0

Adding the kernel parameter i915.enable_guc=2 or i915.modeset=1 doesn't fix the problem.

Using the nvidia package and blacklisting the i915 module at boot
Gnome starts successfully with the external monitor plugged into the mDP port. Gnome displays correctly on the external monitor! However, no gui is visible on the laptop's internal screen, just the terminal I used to launch gnome.

Using the nouveau package and the i915 module
When starting gnome with the external monitor plugged into the mDP port, the laptop freezes and I get the following kernel Oops:

Nov 10 13:20:30 john-laptop-2 kernel: ------------[ cut here ]------------
Nov 10 13:20:30 john-laptop-2 kernel: WARNING: CPU: 3 PID: 1 at drivers/gpu/drm/nouveau/nouveau_bo.c:141 nouveau_bo_del_ttm.cold+0xc/0x13 [nouveau]
Nov 10 13:20:30 john-laptop-2 kernel: Modules linked in: nouveau ttm fuse ccm sof_pci_dev snd_sof_intel_hda_common snd_sof_intel_hda snd_sof_intel_byt snd_sof_intel_ipc snd_sof snd_sof_xtensa_dsp snd_soc_skl snd_soc_hdac_hda snd_hda_ext_>
Nov 10 13:20:30 john-laptop-2 kernel:  mei_me realtek input_leds snd pcspkr ecdh_generic ipmi_devintf i2c_i801 tpm_crb mc rfkill ecc libphy idma64 ipmi_msghandler mei soundcore intel_lpss_pci tpm_tis i2c_nvidia_gpu intel_pch_thermal inte>
Nov 10 13:20:30 john-laptop-2 kernel: CPU: 3 PID: 1 Comm: systemd Not tainted 5.3.8-arch1-1 #1
Nov 10 13:20:30 john-laptop-2 kernel: Hardware name: TongFang GK5CP6Z/GK5CP6Z, BIOS N.1.03 06/27/2019
Nov 10 13:20:30 john-laptop-2 kernel: RIP: 0010:nouveau_bo_del_ttm.cold+0xc/0x13 [nouveau]
Nov 10 13:20:30 john-laptop-2 kernel: Code: e8 f3 63 fb ff 4c 89 ef e8 0b 71 fb ff 41 c7 84 24 f0 05 00 00 01 00 00 00 e9 ed a5 fb ff 48 c7 c7 a0 da 4d c1 e8 ec 33 0e c1 <0f> 0b e9 92 a8 fb ff 48 c7 c7 a0 da 4d c1 e8 d9 33 0e c1 0f 0b 31
Nov 10 13:20:30 john-laptop-2 kernel: RSP: 0018:ffff93a240033de0 EFLAGS: 00010246
Nov 10 13:20:30 john-laptop-2 kernel: RAX: 0000000000000024 RBX: ffff8d2ae415c82c RCX: 0000000000000000
Nov 10 13:20:30 john-laptop-2 kernel: RDX: 0000000000000000 RSI: ffff8d2b1d8d7708 RDI: 00000000ffffffff
Nov 10 13:20:30 john-laptop-2 kernel: RBP: ffff8d2ae415c800 R08: 0000000000000402 R09: 0000000000000001
Nov 10 13:20:30 john-laptop-2 kernel: R10: 0000000000000000 R11: 0000000000000001 R12: ffff8d2b15b6c800
Nov 10 13:20:30 john-laptop-2 kernel: R13: 0000000000030880 R14: ffff8d2b19a24600 R15: ffff8d2ae3b559c0
Nov 10 13:20:30 john-laptop-2 kernel: FS:  00007f441e7c5100(0000) GS:ffff8d2b1d8c0000(0000) knlGS:0000000000000000
Nov 10 13:20:30 john-laptop-2 kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Nov 10 13:20:30 john-laptop-2 kernel: CR2: 00007f2ee1913000 CR3: 00000008544de005 CR4: 00000000003606e0
Nov 10 13:20:30 john-laptop-2 kernel: Call Trace:
Nov 10 13:20:30 john-laptop-2 kernel:  ttm_bo_release_list+0x10c/0x170 [ttm]
Nov 10 13:20:30 john-laptop-2 kernel:  nouveau_gem_object_del+0x76/0xa0 [nouveau]
Nov 10 13:20:30 john-laptop-2 kernel:  drm_gem_dmabuf_release+0x16/0x20 [drm]
Nov 10 13:20:30 john-laptop-2 kernel:  dma_buf_release+0x55/0x130
Nov 10 13:20:30 john-laptop-2 kernel:  __fput+0xae/0x240
Nov 10 13:20:30 john-laptop-2 kernel:  task_work_run+0x93/0xb0
Nov 10 13:20:30 john-laptop-2 kernel:  exit_to_usermode_loop+0xda/0x110
Nov 10 13:20:30 john-laptop-2 kernel:  do_syscall_64+0x189/0x1c0
Nov 10 13:20:30 john-laptop-2 kernel:  entry_SYSCALL_64_after_hwframe+0x44/0xa9
Nov 10 13:20:30 john-laptop-2 kernel: RIP: 0033:0x7f442040cc5b
Nov 10 13:20:30 john-laptop-2 kernel: Code: 03 00 00 00 0f 05 48 3d 00 f0 ff ff 77 41 c3 48 83 ec 18 89 7c 24 0c e8 d3 4e f9 ff 8b 7c 24 0c 41 89 c0 b8 03 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 2f 44 89 c7 89 44 24 0c e8 11 4f f9 ff 8b 44
Nov 10 13:20:30 john-laptop-2 kernel: RSP: 002b:00007ffc306c7a00 EFLAGS: 00000293 ORIG_RAX: 0000000000000003
Nov 10 13:20:30 john-laptop-2 kernel: RAX: 0000000000000000 RBX: 00007f441e7c5080 RCX: 00007f442040cc5b
Nov 10 13:20:30 john-laptop-2 kernel: RDX: 0000555ccd63ad10 RSI: 0000000000000007 RDI: 0000000000000038
Nov 10 13:20:30 john-laptop-2 kernel: RBP: 0000000000000038 R08: 0000000000000000 R09: 0000000000000006
Nov 10 13:20:30 john-laptop-2 kernel: R10: 0000000000000000 R11: 0000000000000293 R12: 0000000000000000
Nov 10 13:20:30 john-laptop-2 kernel: R13: 0000000000000000 R14: 0000555ccd60a620 R15: 0000555ccb7e40c8
Nov 10 13:20:30 john-laptop-2 kernel: ---[ end trace 8608798128e2067d ]---

[EDIT: I also use the following kernel parameter with nvidia: nvidia-drm.modeset=1]

I realise that this feature is barely supported: https://fedoraproject.org/wiki/Wayland_ … ndary_GPUs but is there any more detailed information on it out there?
Does anyone have Wayland running on an Optimus laptop (with or without the integrated GPU) and external monitors attached to the dedicated GPU?
Does anyone know anything I can try to get external monitors + internal monitors working, short of going back to X11 and Bumblebee?

Thankyou!

Last edited by ajc0 (2019-11-11 20:52:22)

Offline

Board footer

Powered by FluxBB