Bug 101995 - xorg-server 1.19.3 InputThread stack overflow in VGA arbitration
Summary: xorg-server 1.19.3 InputThread stack overflow in VGA arbitration
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/Input/Core (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-31 21:54 UTC by Marcin Pertek
Modified: 2019-08-07 08:34 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
gdb log of Xorg execution and crash stacktrace (57.92 KB, text/plain)
2017-07-31 21:54 UTC, Marcin Pertek
no flags Details

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.