[i945gm] Xorg crashed after external monitor in drm_intel_bo_reference() from i830_set_pixmap_bo - no dri for virtual > 2048 (UXA bug)

Bug #351756 reported by Martin Konecny on 2009-03-30
128
This bug affects 7 people
Affects Status Importance Assigned to Milestone
xf86-video-intel
Fix Released
High
linux (Ubuntu)
High
Andy Whitcroft
xserver-xorg-video-intel (Ubuntu)
High
Unassigned

Bug Description

Connected external monitor, and the monitors 1600x1200 resolution was detected (finally!!). However, upon restarting X to complete the new settings it crashed.

Here is a screenshot of the error received after restarting X.
http://dl.getdropbox.com/u/256410/IMG_0479.JPG

Here is the xorg.conf that doesnt crash my system:

# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# Note that some configuration settings that could be done previously
# in this file, now are automatically configured by the server and settings
# here are ignored.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg

Section "Device"
 Identifier "Configured Video Device"
 Option "AccelMethod" "uxa"
EndSection

Section "Monitor"
 Identifier "Configured Monitor"
EndSection

Section "Screen"
 Identifier "Default Screen"
 Monitor "Configured Monitor"
 Device "Configured Video Device"
EndSection
####

Here is the xorg.conf that crashes my system:

# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# Note that some configuration settings that could be done previously
# in this file, now are automatically configured by the server and settings
# here are ignored.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg

Section "Monitor"
 Identifier "Configured Monitor"
EndSection

Section "Screen"
 Identifier "Default Screen"
 Monitor "Configured Monitor"
 Device "Configured Video Device"
 SubSection "Display"
  Virtual 3120 1050
 EndSubSection
EndSection

Section "Device"
 Identifier "Configured Video Device"
 Option "AccelMethod" "uxa"
EndSection

####

ProblemType: Crash
Architecture: i386
CrashCounter: 1
DistroRelease: Ubuntu 9.04
ExecutablePath: /usr/bin/Xorg
Package: xserver-xorg-core 2:1.6.0-0ubuntu6
ProcAttrCurrent: unconfined
ProcCmdline: /usr/X11R6/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
ProcEnviron:
 PATH=(custom, no user)
 LANG=en_US.UTF-8
ProcVersion: Linux version 2.6.28-11-generic (buildd@palmer) (gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ) #38-Ubuntu SMP Fri Mar 27 09:00:52 UTC 2009
Signal: 11
SourcePackage: xorg-server
StacktraceTop:
 drm_intel_bo_reference () from /usr/lib/libdrm_intel.so.1
 i830_set_pixmap_bo ()
 ?? () from /usr/lib/xorg/modules/drivers//intel_drv.so
 ?? ()
 xf86RandR12CreateScreenResources ()
Title: Xorg crashed with SIGSEGV in drm_intel_bo_reference()
Uname: Linux 2.6.28-11-generic i686
UserGroups:

[lspci]
00:00.0 Host bridge [0600]: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0] (rev 03)
     Subsystem: Dell Device [1028:01d8]
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] (rev 03)
     Subsystem: Dell Device [1028:01d8]

Martin Konecny (martin-konecny) wrote :

StacktraceTop:drm_intel_bo_reference () from /usr/lib/libdrm_intel.so.1
i830_set_pixmap_bo (pixmap=0x8465190, bo=0x0)
i830_xf86crtc_resize (scrn=0x83efef0, width=1152,
xf86RandR12ScreenSetSize (pScreen=0x843e350, width=1152,
xf86RandR12CreateScreenResources (pScreen=0x843e350)

Bryce Harrington (bryce) on 2009-04-02
tags: added: crash
Changed in xorg-server (Ubuntu):
status: New → Confirmed
description: updated
description: updated
Bryce Harrington (bryce) on 2009-04-07
visibility: private → public
summary: - Xorg crashed with SIGSEGV in drm_intel_bo_reference()
+ Xorg crashed with SIGSEGV in drm_intel_bo_reference() from
+ i830_set_pixmap_bo
summary: Xorg crashed with SIGSEGV in drm_intel_bo_reference() from
- i830_set_pixmap_bo
+ i830_set_pixmap_bo (UXA bug)
affects: xorg-server (Ubuntu) → xserver-xorg-video-intel (Ubuntu)
Changed in xserver-xorg-video-intel (Ubuntu):
importance: Undecided → High
status: Confirmed → Triaged
summary: - Xorg crashed with SIGSEGV in drm_intel_bo_reference() from
+ Xorg crashed after external monitor in drm_intel_bo_reference() from
i830_set_pixmap_bo (UXA bug)

Created an attachment (id=24805)
xorg.0.log

System Environment:
--------------------------
Host: x-aspire1
Arch: i386
Platform: acer aspire1
Kernel_version: 2.6.29.1
Libdrm: (master)07646002c6835537c6ae44ef9b3f8480762279b8
Mesa: (mesa_7_4_branch)de197cf991416f0cd65ad2e2d2ca9aa599b52075
Xserver: (server-1.6-branch)60c161545af80eb78eb790a05bde79409dfdf16e
Xf86_video_intel: (2.7)121bd7ff7cfd9a43fbb61fa56f06ba2d2b55035e
Kernel: (drm-intel-2.6.29)0aa7e8a61658193f90198d579c5ef8297b45be9b

Bug detailed description:
-------------------------
If I start X with the virtual size (>2048x2048) on i915 platfroms,it crashes with errors as below:

(EE) intel(0): Cannot support > 2048 vertical lines. disabling acceleration.
(EE) intel(0): Failed to init memory manager
Setting master
failed to add fb

Dmesg shows:
[drm:drm_mode_addfb] *ERROR* mode new framebuffer width not within limits

this issue happens on 855gm,915gm,945gm and aspire1. but works well on g45,gm965 and gm45.

reproduce steps:
------------------------
1.xinit&

Created an attachment (id=24806)
xorg conf file

and it exists with KMS and UMS.

Bryce Harrington (bryce) on 2009-04-21
description: updated
Bryce Harrington (bryce) on 2009-04-24
summary: - Xorg crashed after external monitor in drm_intel_bo_reference() from
- i830_set_pixmap_bo (UXA bug)
+ [i945gm] Xorg crashed after external monitor in drm_intel_bo_reference()
+ from i830_set_pixmap_bo (UXA bug)

For Karmic we're making UXA bugs like these a top priority, so I would like to forward this one upstream. First though, we need to verify the issue still exists with the latest upstream release. Would you please install and test the 2.7.0 driver and reproduce the bug, and let us know ASAP? A PPA with a Jaunty version of this driver is available at: https://edge.launchpad.net/~ubuntu-x-swat/+archive/x-updates/

Changed in xserver-xorg-video-intel (Ubuntu):
status: Triaged → Incomplete
Martin Konecny (martin-konecny) wrote :

I can confirm this bug with driver version 2:2.7.0-1ubuntu1~xup~1

One additional piece of information relating to this bug is that dual-screen works if I stack the monitors on top of each other when setting their relative positions.

For example, see this screenshot:
http://dl.getdropbox.com/u/256410/photos/intel_xorg_working_config.png

For some reason, this way of positioning the monitors does not ask to set a virtual resolution in my xorg.conf, and therefore it works.

When I set the positions of the monitors as in the following screenshot:
http://dl.getdropbox.com/u/256410/photos/intel_xorg_working_config.png

Then it asks to change the virtual resolution, tells me to restart X, and upon restarting it crashes ( http://dl.getdropbox.com/u/256410/IMG_0479.JPG )

Bryce Harrington (bryce) wrote :

Thanks, can you attach the xorg.conf and the Xorg.0.log from the crashing case with 2.7.0?

Changed in xserver-xorg-video-intel (Ubuntu):
status: Incomplete → Triaged

On Sat, May 02, 2009 at 08:03:36AM -0000, jellystones wrote:
>
> ** Attachment added: "xorg.conf.broken1"
> http://launchpadlibrarian.net/26241701/xorg.conf.broken1

Thanks, can you attach Xorg.0.log too?

*** Bug 21571 has been marked as a duplicate of this bug. ***

Bryce Harrington (bryce) on 2009-05-05
summary: [i945gm] Xorg crashed after external monitor in drm_intel_bo_reference()
- from i830_set_pixmap_bo (UXA bug)
+ from i830_set_pixmap_bo - no dri for virtual > 2048 (UXA bug)
Bryce Harrington (bryce) wrote :

Hi Martin,

Thanks for providing all this information. I've forwarded your issue upstream to https://bugs.freedesktop.org/show_bug.cgi?id=21571 - can you please subscribe to this bug report, in case they need further info or wish you to test something? Thanks ahead of time.

Also, in case they need you to test an even newer version of -intel, please check the xorg edgers ppa for a package: https://edge.launchpad.net/~xorg-edgers/+archive/ppa

Changed in xserver-xorg-video-intel:
status: Unknown → Confirmed
Bryce Harrington (bryce) on 2009-05-06
Changed in xserver-xorg-video-intel:
status: Confirmed → Unknown
Changed in xserver-xorg-video-intel:
status: Unknown → Confirmed

done

Bryce Harrington (bryce) on 2009-05-06
tags: added: dual-head

A backtrace is available here:
http://launchpadlibrarian.net/24551278/ThreadStacktrace.txt

briefly:

#0 0xb78e3309 in drm_intel_bo_reference () from /usr/lib/libdrm_intel.so.1
#1 0xb794588b in i830_set_pixmap_bo (pixmap=0x8465190, bo=0x0)
    at ../../src/i830_exa.c:772
 old_bo = <value optimized out>
#2 0xb7920ab8 in i830_xf86crtc_resize (scrn=0x83efef0, width=1152,
    height=864) at ../../src/i830_driver.c:1178
 new_front = <value optimized out>
 old_front = (i830_memory *) 0x843e810
 mem_box = {x1 = 0, y1 = 0, x2 = 2048, y2 = 864}
 screen = (ScreenPtr) 0x843e350
 old_x = 3120
 old_y = 1050
 old_width = 4096

Does this also happen if you just set the accelmethod to none in xorg.conf?

(In reply to comment #5)
> Does this also happen if you just set the accelmethod to none in xorg.conf?
>

yes,and it does happen without acceleration.

I've pushed driver fixes for this to master in patch:

d655a3ff423e69c19a5dc07140cbf3caaa32cb86 Remove NoAccel support.

There's an associated fix necessary in the kernel to bump the framebuffer limit from 2048 to 4096 for KMS which should land shortly.

(In reply to comment #7)
> I've pushed driver fixes for this to master in patch:
>
> d655a3ff423e69c19a5dc07140cbf3caaa32cb86 Remove NoAccel support.

Shouldn't the NoAccel option also be removed from man/intel.man then?

> Shouldn't the NoAccel option also be removed from man/intel.man then?

Not quite -- the i810/i815 portion of the driver still supports the NoAccel option.

Changed in xserver-xorg-video-intel:
status: Confirmed → Fix Released

(In reply to comment #7)
> I've pushed driver fixes for this to master in patch:
>
> d655a3ff423e69c19a5dc07140cbf3caaa32cb86 Remove NoAccel support.
>
> There's an associated fix necessary in the kernel to bump the framebuffer limit
> from 2048 to 4096 for KMS which should land shortly.

Keith, I see the xf86-video-intel fix, but I can't find the kernel fix in drm-intel-next.

X still fails to start (with 4096 set) with message: "failed to add fb"

I've seen the kernel fix in drm-intel-next:
drm/i915: Allow frame buffers up to 4096x4096 on 915/945 class hardware

And verified 945GM works with the fixes for both KMS and UMS.

But 8xx still suffers so I'm changing the summary and decreasing priority.

8xx cannot scanout from buffers wider that 8192 bytes, limiting it to 2048 pixels. Hence the limit must remain lower for 8xx chips.

Bryce Harrington (bryce) wrote :

According to the upstream bug report, this issue is solved by the following kernel patch, which has been tested and validated by Intel:

http://git.kernel.org/?p=linux/kernel/git/anholt/drm-intel.git;a=commit;h=5e4d6fa72619aeea271d2ad704757717b06e291a

Since this is a kernel patch, I'm reassigning to the kernel team for review. This would be a handy patch to get in since being limited to 2048x2048 on 915 and 945 kind of sucks.

Bryce Harrington (bryce) wrote :

Would be nice to see this included by alpha-3 but since that's coming up fairly soon I'm setting the milestone to A4 as a more realistic goal.

Changed in xserver-xorg-video-intel (Ubuntu):
milestone: none → karmic-alpha-4
Changed in linux (Ubuntu):
importance: Undecided → High
milestone: none → karmic-alpha-4
status: New → Confirmed
tags: added: xorg-needs-kernel-fix
Bryce Harrington (bryce) wrote :

Closing the DDX driver component since it's a kernel fix in this case and we have the patch identified now.

Changed in xserver-xorg-video-intel (Ubuntu):
status: Triaged → Fix Released
Bryce Harrington (bryce) wrote :

Leann - this one is fixed upstream and a patch is identified but not yet in the kernel; mind adding it to the queue for the kernel team? This would be a nice one to get sorted.

Hi Bryce, I'll get this on the team's radar. Thanks.

Changed in linux (Ubuntu):
status: Confirmed → Triaged
Andy Whitcroft (apw) on 2009-07-23
Changed in linux (Ubuntu):
assignee: nobody → Andy Whitcroft (apw)
status: Triaged → In Progress
Andy Whitcroft (apw) wrote :

This commit is expected to hit mainline, but as this is an area under development now for xorg it would be good to get this into the kernel earlier than later. Will propose it for inclusion.

Andy Whitcroft (apw) on 2009-07-23
Changed in linux (Ubuntu):
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 2.6.31-4.20

---------------
linux (2.6.31-4.20) karmic; urgency=low

  [ Andy Whitcroft ]

  * SAUCE: iscsitarget -- update to SVN revision r214
  * SAUCE: iscsitarget -- renable driver
  * [Config] consolidate lpia/lpia and i386/generic configs
  * [Config] enable CRYPTO modules for all architectures
  * [Config] enable cryptoloop
  * [Config] enable various filesystems for armel
  * [Config] sync i386 generic and generic-pae
  * [Config] add the 386 (486 processors and above) flavour
  * [Config] re-set DEFAULT_MMAP_MIN_ADDR
    - LP: #399914
  * add genconfigs/genportsconfigs to extract the built configs
  * updateconfigs -- alter concatenation order allow easier updates
  * intelfb -- INTELFB now conflicts with DRM_I915
  * printchanges -- rebase tree does not have stable tags use changelog
  * AppArmor: fix argument size missmatch on 64 bit builds

  [ Ike Panhc ]

  * Ship bnx2x firmware in nic-modules udeb
    - LP: #360966

  [ Jeff Mahoney ]

  * AppArmor: fix build failure on ia64

  [ John Johansen ]

  * AppArmour: ensure apparmor enabled parmater is off if AppArmor fails to
    initialize.
  * AppArmour: fix auditing of domain transitions to include target profile
    information
  * AppArmor: fix C99 violation
  * AppArmor: revert reporting of create to write permission.
  * SAUCE: Add config option to set a default LSM
  * [Config] enable AppArmor by default
  * AppArmor: Fix NULL pointer dereference oops in profile attachment.

  [ Keith Packard ]

  * SAUCE: drm/i915: Allow frame buffers up to 4096x4096 on 915/945 class
    hardware
    - LP: #351756

  [ Luke Yelavich ]

  * [Config] add .o files found in arch/powerpc/lib to all powerpc kernel
    header packages
    - LP: #355344

  [ Michael Casadevall ]

  * [Config] update SPARC config files to allow success build

  [ Scott James Remnant ]

  * SAUCE: trace: add trace_event for the open() syscall

  [ Stefan Bader ]

  * SAUCE: jfs: Fix early release of acl in jfs_get_acl
    - LP: #396780

  [ Tim Gardner ]

  * [Upstream] Fix Soltech TA12 volume hotkeys not sending key release
    - LP: #397499
  * [Upstream] USB Option driver - Add USB ID for Novatel MC727/U727/USB727
    refresh
    - LP: #365291
  * [Config] SSB/B44 are common across all arches/flavours.

  [ Upstream ]

  * Rebased to 2.6.31-rc4

 -- Andy Whitcroft <email address hidden> Thu, 23 Jul 2009 08:41:39 +0100

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released

*** Bug 23237 has been marked as a duplicate of this bug. ***

*** Bug 25075 has been marked as a duplicate of this bug. ***

In comment #7, it sounds like there is a fix needed for this to work with KMS enabled. With all components of the 2009Q3 release (but kernel 2.6.32-rc7) this still seems to be missing - with KMS enabled, xrandr tells me the screensize is limited to 2048x2048 still, but with KMS disabled, that goes up to 4096x4096.

Did that fix get left behind somewhere?

I ask partly because it appears framebuffer compression gets disabled (according to Xorg.0.log anyway) if KMS is not enabled, so it would appear that at the moment one has to choose between bigger screens (no KMS) or framebuffer compression (KMS).

For KMS, you need kernel patch 5e4d6fa72619aeea271d2ad704757717b06e291a5e4d6fa72619aeea271d2ad704757717b06e291a as well. That shipped in 2.6.31.

(In reply to comment #17)
> For KMS, you need kernel patch
> 5e4d6fa72619aeea271d2ad704757717b06e291a5e4d6fa72619aeea271d2ad704757717b06e291a
> as well. That shipped in 2.6.31.
>

Guess it's a Copy&Paste error.
should be 5e4d6fa72619aeea271d2ad704757717b06e291a

Sorry, I'm a moron. Thanks for the quick answers.

I got that backwards. It appears to me as though large screens only work if KMS is enabled, and framebuffer compression gets disabled if KMS is enabled.
(on a 945GME - in a dell mini-9).

(In reply to comment #19)
> Sorry, I'm a moron. Thanks for the quick answers.
>
> I got that backwards. It appears to me as though large screens only work if
> KMS is enabled,

That's expected.

> and framebuffer compression gets disabled if KMS is enabled.

That's probably bug#23767. I'm going to reopen it.

Changed in xserver-xorg-video-intel:
importance: Unknown → High
Changed in xserver-xorg-video-intel:
importance: High → Unknown
Changed in xserver-xorg-video-intel:
importance: Unknown → High
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.