Bug 100971

Summary: Doing a CLFLUSH on GTT-mapped memory causes a system reboot
Product: DRI Reporter: Jason Ekstrand <jason>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: CLOSED NOTOURBUG QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: critical    
Priority: medium CC: intel-gfx-bugs, kenneth
Version: XOrg git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

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.