在 Macbook 4,1 上运行 Ubuntu 16.04 时,显卡经常冻结。
根据我在系统日志中找到的信息,它看起来与图形驱动程序卡在这里有关:
[drm:drm_atomic_helper_commit_cleanup_done [drm_kms_helper]]
*ERROR* [CRTC:34:pipe B] flip_done timed out
完整日志在此:
[ 1015.776238] [drm:drm_atomic_helper_commit_cleanup_done [drm_kms_helper]] *ERROR* [CRTC:34:pipe B] flip_done timed out
[ 1015.880308] ------------[ cut here ]------------
[ 1015.880360] WARNING: CPU: 0 PID: 1017 at /home/kernel/COD/linux/drivers/gpu/drm/drm_irq.c:1237 drm_wait_one_vblank+0x1aa/0x1b0 [drm]
[ 1015.880362] vblank wait timed out on crtc 1
[ 1015.880365] Modules linked in: rfcomm bnep btusb btrtl btbcm btintel bluetooth joydev isight_firmware nls_utf8 hfsplus applesmc input_polldev snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_seq_midi snd_seq_midi_event snd_rawmidi coretemp kvm_intel kvm irqbypass snd_seq wl(POE) snd_seq_device snd_timer input_leds appletouch cfg80211 snd lpc_ich soundcore shpchp sbs sbshc mac_hid apple_bl parport_pc ppdev lp parport autofs4 hid_apple hid_appleir hid_generic usbhid hid i915 i2c_algo_bit drm_kms_helper ahci syscopyarea sysfillrect firewire_ohci libahci sysimgblt firewire_core pata_acpi crc_itu_t fb_sys_fops sky2 drm fjes video
[ 1015.880479] CPU: 0 PID: 1017 Comm: Xorg Tainted: P W OE 4.10.0-041000-generic #201702191831
[ 1015.880482] Hardware name: Apple Inc. MacBook4,1/Mac-F22788A9, BIOS MB41.88Z.00C1.B00.0802091535 02/09/08
[ 1015.880484] Call Trace:
[ 1015.880497] dump_stack+0x63/0x81
[ 1015.880503] __warn+0xcb/0xf0
[ 1015.880507] warn_slowpath_fmt+0x5f/0x80
[ 1015.880514] ? finish_wait+0x56/0x70
[ 1015.880543] drm_wait_one_vblank+0x1aa/0x1b0 [drm]
[ 1015.880548] ? wake_atomic_t_function+0x60/0x60
[ 1015.880583] ? drm_atomic_state_clear+0x30/0x30 [drm]
[ 1015.880690] intel_get_load_detect_pipe+0x5ff/0x650 [i915]
[ 1015.880765] intel_tv_detect+0x158/0x550 [i915]
[ 1015.880789] drm_helper_probe_single_connector_modes+0x2c4/0x520 [drm_kms_helper]
[ 1015.880820] ? drm_mode_object_get_properties+0xdd/0x100 [drm]
[ 1015.880826] ? mutex_lock+0x12/0x40
[ 1015.880858] drm_mode_getconnector+0x372/0x3c0 [drm]
[ 1015.880864] ? enqueue_hrtimer+0x3d/0x80
[ 1015.880893] drm_ioctl+0x21b/0x4c0 [drm]
[ 1015.880899] ? __set_task_blocked+0x3c/0xa0
[ 1015.880930] ? drm_mode_connector_property_set_ioctl+0x60/0x60 [drm]
[ 1015.880938] do_vfs_ioctl+0xa3/0x600
[ 1015.880943] SyS_ioctl+0x79/0x90
[ 1015.880948] entry_SYSCALL_64_fastpath+0x1e/0xad
[ 1015.880953] RIP: 0033:0x7f583ce33357
[ 1015.880956] RSP: 002b:00007fff98dafbd8 EFLAGS: 00003246 ORIG_RAX: 0000000000000010
[ 1015.880961] RAX: ffffffffffffffda RBX: 0000564866c13550 RCX: 00007f583ce33357
[ 1015.880964] RDX: 00007fff98dafc10 RSI: 00000000c05064a7 RDI: 000000000000000b
[ 1015.880967] RBP: 00007fff98dafc10 R08: 0000564866c13600 R09: 0000000000000000
[ 1015.880969] R10: 0000000000000000 R11: 0000000000003246 R12: 00000000c05064a7
[ 1015.880972] R13: 000000000000000b R14: 00007fff98dafc10 R15: 000000000000000b
[ 1015.881001] ---[ end trace fbecb82af1682910 ]---
[ 1016.065870] ------------[ cut here ]------------
[ 1016.065905] WARNING: CPU: 0 PID: 1017 at /home/kernel/COD/linux/drivers/gpu/drm/drm_irq.c:1237 drm_wait_one_vblank+0x1aa/0x1b0 [drm]
[ 1016.065907] vblank wait timed out on crtc 1
[ 1016.065908] Modules linked in: rfcomm bnep btusb btrtl btbcm btintel bluetooth joydev isight_firmware nls_utf8 hfsplus applesmc input_polldev snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_seq_midi snd_seq_midi_event snd_rawmidi coretemp kvm_intel kvm irqbypass snd_seq wl(POE) snd_seq_device snd_timer input_leds appletouch cfg80211 snd lpc_ich soundcore shpchp sbs sbshc mac_hid apple_bl parport_pc ppdev lp parport autofs4 hid_apple hid_appleir hid_generic usbhid hid i915 i2c_algo_bit drm_kms_helper ahci syscopyarea sysfillrect firewire_ohci libahci sysimgblt firewire_core pata_acpi crc_itu_t fb_sys_fops sky2 drm fjes video
[ 1016.065971] CPU: 0 PID: 1017 Comm: Xorg Tainted: P W OE 4.10.0-041000-generic #201702191831
[ 1016.065972] Hardware name: Apple Inc. MacBook4,1/Mac-F22788A9, BIOS MB41.88Z.00C1.B00.0802091535 02/09/08
[ 1016.065973] Call Trace:
[ 1016.065979] dump_stack+0x63/0x81
[ 1016.065982] __warn+0xcb/0xf0
[ 1016.065983] warn_slowpath_fmt+0x5f/0x80
[ 1016.065986] ? finish_wait+0x56/0x70
[ 1016.065995] drm_wait_one_vblank+0x1aa/0x1b0 [drm]
[ 1016.065997] ? wake_atomic_t_function+0x60/0x60
[ 1016.066043] intel_pre_plane_update+0x10a/0x150 [i915]
[ 1016.066068] intel_atomic_commit_tail+0xe8/0xfe0 [i915]
[ 1016.066093] intel_atomic_commit+0x3bc/0x4e0 [i915]
[ 1016.066095] ? finish_wait+0x56/0x70
[ 1016.066106] drm_atomic_commit+0x4b/0x50 [drm]
[ 1016.066131] intel_release_load_detect_pipe+0x50/0xb0 [i915]
[ 1016.066155] intel_tv_detect+0x38e/0x550 [i915]
[ 1016.066166] drm_helper_probe_single_connector_modes+0x2c4/0x520 [drm_kms_helper]
[ 1016.066177] ? drm_mode_object_get_properties+0xdd/0x100 [drm]
[ 1016.066179] ? mutex_lock+0x12/0x40
[ 1016.066190] drm_mode_getconnector+0x372/0x3c0 [drm]
[ 1016.066192] ? enqueue_hrtimer+0x3d/0x80
[ 1016.066202] drm_ioctl+0x21b/0x4c0 [drm]
[ 1016.066204] ? __set_task_blocked+0x3c/0xa0
[ 1016.066215] ? drm_mode_connector_property_set_ioctl+0x60/0x60 [drm]
[ 1016.066218] do_vfs_ioctl+0xa3/0x600
[ 1016.066219] SyS_ioctl+0x79/0x90
[ 1016.066221] entry_SYSCALL_64_fastpath+0x1e/0xad
[ 1016.066223] RIP: 0033:0x7f583ce33357
[ 1016.066224] RSP: 002b:00007fff98dafbd8 EFLAGS: 00003246 ORIG_RAX: 0000000000000010
[ 1016.066226] RAX: ffffffffffffffda RBX: 0000564866c13550 RCX: 00007f583ce33357
[ 1016.066227] RDX: 00007fff98dafc10 RSI: 00000000c05064a7 RDI: 000000000000000b
[ 1016.066228] RBP: 00007fff98dafc10 R08: 0000564866c13600 R09: 0000000000000000
[ 1016.066229] R10: 0000000000000000 R11: 0000000000003246 R12: 00000000c05064a7
[ 1016.066230] R13: 000000000000000b R14: 00007fff98dafc10 R15: 000000000000000b
[ 1016.066231] ---[ end trace fbecb82af1682911 ]---
通过打开系统设置可以轻松重现冻结。有什么想法吗?