Bug 101995

Summary: xorg-server 1.19.3 InputThread stack overflow in VGA arbitration
Product: xorg Reporter: Marcin Pertek <kat.zygfryd>
Component: Server/Input/CoreAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
See Also: https://launchpad.net/bugs/1839174
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
gdb log of Xorg execution and crash stacktrace none

Description Marcin Pertek 2017-07-31 21:54:53 UTC
Created attachment 133165 [details]
gdb log of Xorg execution and crash stacktrace

Steps to reproduce:

1) Have an AMD GPU as your display device (radeon or modesetting, doesn't matter)
2) Have an Intel iGPU, unused
3) Start an X session, grab a window corner and keep moving your mouse for a couple minutes, or just use your computer normally for up to a couple hours.

Xorg was compiled using GCC 4.9.4 with CFLAGS="-march=core-avx2 -O2 -pipe -ggdb"
Comment 1 Keith Packard 2017-08-03 04:35:52 UTC
I've posted a proposed patch for this, although I have no way to test to see if it helps. What it does is prevent the main thread and input thread from scrambling the pointer private structures used by the VGA arbiter.
Comment 2 Adam Jackson 2017-12-13 17:48:17 UTC
commit cf7517675d988c2d1ff967d6d162a17acbdad466
Author: Keith Packard <keithp@keithp.com>
Date:   Wed Aug 2 21:34:52 2017 -0700

    xfree86: Hold input_lock across SPRITE functions in VGA arbiter
    
    Avoid scrambling the sprite functions wrapper.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101995
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.