[Bug 1247607] Re: Libdrm compiled with gcc 4.8 makes card hang on resume from s2disk

Maarten Lankhorst maarten.lankhorst at canonical.com
Mon Nov 11 12:04:15 UTC 2013


** Description changed:

- My initial bugreport was here:
- https://bugs.freedesktop.org/show_bug.cgi?id=71116
+ [Impact] 
+  * Relocations on nv04-nv4f are completely broken, any kind of memory stress will result in userspace failure.
+ 
+ [Test Case]
+  * Suspend on a system with an affected nvidia card.
+  * Resume should complete without any errors in FIFO.
+  * Other test is to run max-texture-size from piglit, system should survive.
+  * For m-a same change: confirm libdrm-dev:amd64 and libdrm-dev:i386 coinstall.
+ 
+ [Regression Potential] 
+  * Original bug report was caused by undefined behavior in gcc:
+    - *push->cur++ = pushbuf_krel(push) 
+    - pushbuf_krel uses (push->cur - push->bgn) to calculate offset.
+    - It's undefined whether push->cur is incremented before calling pushbuf_krel or not.
+    - New gcc changed the order, causing the bug.
+    - Fixed by calling push->cur++ in a separate statement.
+  * Bug reports will be watched for any new problems that may pop up.
+ 
+ [Original bug report]
+ My initial bugreport was here: https://bugs.freedesktop.org/show_bug.cgi?id=71116
  
  - Recompiling libdrm with gcc 4.7 fixed the bug.
  
  Upstream GCC mail thread here: http://gcc.gnu.org/ml/gcc-
  help/2013-07/msg00103.html
  
  This was fixed thanks to Emil Velikov from the nouveau project.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to libdrm in Ubuntu.
https://bugs.launchpad.net/bugs/1247607

Title:
  Libdrm compiled with gcc 4.8 makes card hang on resume from s2disk

Status in The GNU Compiler Collection:
  New
Status in Accelerated Xorg driver for nVidia cards:
  Fix Released
Status in “libdrm” package in Ubuntu:
  Fix Released
Status in “libdrm” source package in Saucy:
  In Progress

Bug description:
  [Impact] 
   * Relocations on nv04-nv4f are completely broken, any kind of memory stress will result in userspace failure.

  [Test Case]
   * Suspend on a system with an affected nvidia card.
   * Resume should complete without any errors in FIFO.
   * Other test is to run max-texture-size from piglit, system should survive.
   * For m-a same change: confirm libdrm-dev:amd64 and libdrm-dev:i386 coinstall.

  [Regression Potential] 
   * Original bug report was caused by undefined behavior in gcc:
     - *push->cur++ = pushbuf_krel(push) 
     - pushbuf_krel uses (push->cur - push->bgn) to calculate offset.
     - It's undefined whether push->cur is incremented before calling pushbuf_krel or not.
     - New gcc changed the order, causing the bug.
     - Fixed by calling push->cur++ in a separate statement.
   * Bug reports will be watched for any new problems that may pop up.

  [Original bug report]
  My initial bugreport was here: https://bugs.freedesktop.org/show_bug.cgi?id=71116

  - Recompiling libdrm with gcc 4.7 fixed the bug.

  Upstream GCC mail thread here: http://gcc.gnu.org/ml/gcc-
  help/2013-07/msg00103.html

  This was fixed thanks to Emil Velikov from the nouveau project.

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc/+bug/1247607/+subscriptions



More information about the foundations-bugs mailing list