[Bug 771524] New: GPU reset and pipeline hangs randomly when using low-power tune
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Fri Sep 16 10:08:14 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=771524
Bug ID: 771524
Summary: GPU reset and pipeline hangs randomly when using
low-power tune
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gstreamer-vaapi
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: florent.thiery at ubicast.eu
QA Contact: gstreamer-bugs at lists.freedesktop.org
CC: bsreerenj at gmail.com, vjaquez at igalia.com
GNOME version: ---
OS: Arch
Kernel: 4.7.3-2-ARCH
libdrm 2.4.70
libva: 1.7.1
libva-intel-driver: 1.7.1
GPU: Intel Iris Pro 580 (Skull Canyon NUC)
Running headless (no xorg)
gstreamer-vaapi commit: 9afa0ce47169cc91aa212dcf7db375a64244c0ba
Running the following pipeline twice in a row (quickly) will result in the
pipeline hanging randomly:
gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw\,\
format\=\(string\)I420\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\
framerate\=\(fraction\)30/1 ! vaapih264enc tune=low-power ! fakesink
silent=false -v
When this happens, the following gstreamer error is displayed:
vaapiencode gstvaapiencode.c:210:gst_vaapiencode_default_alloc_buffer: invalid
GstVaapiCodedBuffer size (0 bytes)
And in the kernel logs:
[ 6130.436724] [drm] stuck on bsd2 ring
[ 6130.437427] [drm] GPU HANG: ecode 9:3:0xcb79ffc4, in encoder:src [912],
reason: Engine(s) hung, action: reset
[ 6130.437431] [drm] GPU hangs can indicate a bug anywhere in the entire gfx
stack, including userspace.
[ 6130.437433] [drm] Please file a _new_ bug report on bugs.freedesktop.org
against DRI -> DRM/Intel
[ 6130.437436] [drm] drm/i915 developers can then reassign to the right
component if it's not a kernel issue.
[ 6130.437438] [drm] The gpu crash dump is required to analyze gpu hangs, so
please always attach it.
[ 6130.437440] [drm] GPU crash dump saved to /sys/class/drm/card0/error
[ 6130.438994] drm/i915: Resetting chip after gpu hang
[ 6132.423434] [drm] RC6 on
[fthiery at skull gstreamer-benchmarks]$ gst-launch-1.0 videotestsrc
num-buffers=100 ! video/x-raw\,\ format\=\(string\)I420\,\
width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1 !
vaapih264enc tune=low-power ! fakesink silent=false -v
libva info: VA-API version 0.39.2
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
libva info: VA-API version 0.39.2
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
Setting pipeline to PAUSED ...
libva info: VA-API version 0.39.2
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
Pipeline is PREROLLING ...
Got context from element 'vaapiencodeh264-0': gst.vaapi.Display=context,
gst.vaapi.Display=(GstVaapiDisplay)NULL;
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstVaapiEncodeH264:vaapiencodeh264-0.GstPad:sink: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event *******
(fakesink0:sink) E (type: stream-start (10254), GstEventStreamStart,
stream-id=(string)f19a7558e50ff7c63fc4b3831013cb76,
flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)0;) 0xda30f0
/GstPipeline:pipeline0/GstVaapiEncodeH264:vaapiencodeh264-0.GstPad:src: caps =
video/x-h264, stream-format=(string)byte-stream, alignment=(string)au,
width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1,
framerate=(fraction)30/1
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event *******
(fakesink0:sink) E (type: caps (12814), GstEventCaps,
caps=(GstCaps)"video/x-h264\,\ stream-format\=\(string\)byte-stream\,\
alignment\=\(string\)au\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)30/1";)
0x7f3de8002830
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-h264,
stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920,
height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event *******
(fakesink0:sink) E (type: segment (17934), GstEventSegment,
segment=(GstSegment)"GstSegment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE,
rate=(double)1, applied-rate=(double)1, format=(GstFormat)GST_FORMAT_TIME,
base=(guint64)0, offset=(guint64)0, start=(guint64)0,
stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)0,
duration=(guint64)18446744073709551615;";) 0x7f3de80028a0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = preroll *******
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (77009 bytes, dts: 0:00:00.000000000, pts: none, duration:
0:00:00.033333333, offset: -1, offset_end: -1, flags: 00000040 discont )
0x7f3df00236d0
...
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (77091 bytes, dts: 0:00:01.500000000, pts: 0:00:01.499999999,
duration: 0:00:00.033333333, offset: -1, offset_end: -1, flags: 00002000
delta-unit ) 0x7f3df002a240
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:00.832002271
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
[fthiery at skull gstreamer-benchmarks]$ gst-launch-1.0 videotestsrc
num-buffers=100 ! video/x-raw\,\ format\=\(string\)I420\,\
width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1 !
vaapih264enc tune=low-power ! fakesink silent=false -v
libva info: VA-API version 0.39.2
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
Setting pipeline to PAUSED ...
libva info: VA-API version 0.39.2
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
Pipeline is PREROLLING ...
Got context from element 'vaapiencodeh264-0': gst.vaapi.Display=context,
gst.vaapi.Display=(GstVaapiDisplay)NULL;
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstVaapiEncodeH264:vaapiencodeh264-0.GstPad:sink: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1
^Chandling interrupt.
Interrupt: Stopping pipeline ...
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list