[regression] Corrupted screen and sluggish performance after suspend with 295.40 drivers

Bug #983323 reported by Darrick J. Wong on 2012-04-16
This bug affects 11 people
Affects Status Importance Assigned to Milestone
nvidia-graphics-drivers (Ubuntu)

Bug Description

On Ubuntu 12.04 beta2 with the 295.33-0ubuntu1 driver, I could suspend the system and resume it just fine. The graphics system came back up and I could continue working.

With the new 295.40-0ubuntu1 driver package, if I suspend the system and resume it, the lock screen asks for my password. Once I give it that, the lock screen goes away and the screen fills with garbage. I can interact with the open programs as if everything is fine, but instead of window contents all I see is junk moving around the screen. After about 15 seconds of this, the display becomes extremely slow to respond. I can get the display back to a usable state if I hop out to the Alt-F1 shell, restart lightdm, and log in again.

This seems to happen with both Unity 3d and GNOME3 shell. It does _not_ happen with Unity 2d. This makes me suspect something related to GL textures.

Updating the system to the latest software (as of 16 April 2012) doesn't fix anything, but reverting to the 295.33-0ubuntu1 package makes the suspend/resume cycle work again. I also built a new 3.3.2 kernel to see if that might fix it, but it does not.

When the screen gets garbled and the display becomes really slow, I see a whole lot of this in dmesg:

NVRM: Xid (0000:01:00): 13, 0002 beef3097 00004097 00001fd8 00000001 00000020
NVRM: os_schedule: Attempted to yield the CPU while in atomic or interrupt context

Also, .xsession-errors shows a whole lot of these:

compiz (decor) - Warn: failed to bind pixmap to texture

CVE References

Darrick J. Wong (djwong-ibm) wrote :

To clarify: I am not experiencing the problems listed in bugs #982710, #982485, and #982762. Unity3d is quick and smooth from a fresh boot, and only gets slow and corrupty after suspend.

description: updated
description: updated
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in nvidia-graphics-drivers (Ubuntu):
status: New → Confirmed
djwong (djwong) wrote :

This patch fixes the problem for me, although I suspect that it probably re-breaks CVE-2012-0946. Hard to tell with a closed source project. :(

Anyway, I slipped in a printk to print the offending offset and size. On a GeForce 7300GT (~2006 iMac) it looks like something in the driver is trying to map 0x1000 0x1000 (which is explicitly checked by the IS_BLACKLISTED_REG_OFFSET macro). I have no idea what registers are in there, but for that system the ability to create the memory mapping is crucial to restarting graphics during resume.

I wonder if this will fix the other people who can't even get Unity3d started, but that's pure speculation.

djwong (djwong) wrote :

Yes, the patch does re-break CVE-2012-0946.

It sounds like nvidia are working on the corruption and stuttering issues and in the meantime they'd rather we not use 295.40:

The attachment "revert-295.40-security-fix.patch" of this bug report has been identified as being a patch. The ubuntu-reviewers team has been subscribed to the bug report so that they can review the patch. In the event that this is in fact not a patch you can resolve this situation by removing the tag 'patch' from the bug report and editing the attachment so that it is not flagged as a patch. Additionally, if you are member of the ubuntu-reviewers team please also unsubscribe the team from this bug report.

[This is an automated message performed by a Launchpad user owned by Brian Murray. Please contact him regarding any issues with the action taken in this bug report.]

tags: added: patch
Bryce Harrington (bryce) wrote :

Hmm, no where have I seen nvidia say "they'd rather we not use 295.40." It appears they're aware of the issue and working on a fix, and only suggest testing on the .33 version or use it as a temporary workaround.

tags: removed: patch
Bryce Harrington (bryce) wrote :

Thanks for providing a patch, but as it reopens the CVE, I don't think it is appropriate to include as an SRU.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers