Bug 100971 - Doing a CLFLUSH on GTT-mapped memory causes a system reboot
Summary: Doing a CLFLUSH on GTT-mapped memory causes a system reboot
Status: CLOSED NOTOURBUG
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: Other All
: medium critical
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-05-08 15:08 UTC by Jason Ekstrand
Modified: 2017-07-27 16:41 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Jason Ekstrand 2017-05-08 15:08:25 UTC
Hardware: BXT laptop

Kernel: 4.11.something.  I think it's one of Rob or Lionel's OA branches.  I'll let Ken provide a few more details.

I was trying to figure out how to force the CPU to flush it's write-combine buffers (the kernel wasn't flushing them when EXEC_OBJECT_ASYNC is set).  This prompted me to start experimenting with different operations on GTT-mapped BOs and see if I could do something to uncached memory that would trigger a WC flush in the CPU from userspace.  I never succeeded, but I did manage to get some interesting behavior.

The moment I added a CLFLUSH (which is an unprivileged command) to flush a cache line that's mapped from the GTT, I immediately got system reboots.  It seems 100% reproducable.  I've pushed a Vulkan driver branch here which reproduces it:

https://cgit.freedesktop.org/~jekstrand/mesa/log/?h=bug/bxt-reboot

However, I think you could probably reproduce with an utterly trivial IGT test if you don't want the full Vulkan driver.  I'm fairly sure the culprit is the CLFLUSH of GTT-mapped memory.
Comment 1 Chris Wilson 2017-05-08 20:38:52 UTC
This doesn't appear to be the appropriate forum for this; we need to raise this internally (assuming it isn't already known).


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.