Created attachment 144963 [details]
GPU Crash dump
Skylake GPU hang while using GStreamer in a WebRTC call.
It means GStreamer is simultaneously encoding and decoding VP8 (in 1080p) using VAAPI. The hang occurs very quickly (less than 5 minutes) when the bandwidth is limited and packets are lost.
Issue seems similar to #110394 but this time related to VP8.
Also it is very easy to reproduce (few minutes only).
Linux distribution: CentOS 7.4 http://archive.kernel.org/centos-vault/7.4.1708/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso
Display connector: thunderbolt
GStreamer version: 1.16.0
libva: commit 457470987cc9df5976ce8c72ffd4bfbd9baaf0f9
libva-intel-driver: commit f1d9ceddc0e84ed8d44dd59017b0e19b75dd5dcd
xf86-video-intel: commit 6f4972d5c368c30e971a23c1dc370d3e43761282
We are working on a way to dump and replay the network traffic to isolate this issue and make it easily reproducible.
Created attachment 144964 [details]
The end of dmesg when the GPU hang occurs
Created attachment 144965 [details]
The entire kernel log in case it is usefull
Created attachment 144966 [details]
Finger currently points towards libva, haven't seen anything in there that indicates a kernel bug. If you can get hold of an upstream kernel, just to rule out the frankenkernel that would be reassuring.
Reporter, can you verify the issue the issue with drmtip and give the feedback (https://cgit.freedesktop.org/drm-tip)?
Created attachment 144989 [details]
Reproduced the same issue with drm.debug
I have also updated libva and intel-vaapi-driver to version 2.3.0 as per 2018Q1 Intel Graphics stack recipe
Created attachment 144990 [details]
Matching GPU crash dump
Understood I have to try drm-tip kernel...
But I think before trying to change any piece of software I will try to investigate deeper and isolate the issue first.
Do you think the following bug is totally unrelated?
Created attachment 145033 [details]
VP8 stream recorded with gstwebrtcbin
Attached is a VP8 recording done through the GstWebRTCBin.
To make this recording, I started a WebRTC call and make sure the network bandwidth is not sufficient to convey the video.
The incoming VP8 stream is recorded in a .webm file
The file can be replayed with the following GStreamer pipeline:
gst-launch-1.0 filesrc location=vp8_recording.webm ! matroskademux ! video/x-vp8 ! vaapivp8dec ! queue ! videoconvert ! xvimagesink
GPU hang occurs after 33 seconds when the video gets corrupted...
Even simpler pipeline can be used (without visual feedback):
gst-launch-1.0 filesrc location=/home/proex/vp8_recording.webm ! matroskademux ! video/x-vp8 ! vaapivp8dec ! fakesink
In this case the GPU hangs in less than 5 seconds.
We were able to reproduce the issue on Intel(R) Core(TM) i7-7500U
Software stack is:
This issue seems to be a libva issue. Can you please report this issue here https://github.com/intel/libva/issues.
As of now, we don't see anything that needs a fix from kernel side.Closing this issue as NOTOURBUG.