Bug 13807 - xorg intel driver 2.2.0 stops working beyond kernel 2.6.24-rc1
Summary: xorg intel driver 2.2.0 stops working beyond kernel 2.6.24-rc1
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: 7.3 (2007.09)
Hardware: Other Linux (All)
: medium normal
Assignee: Wang Zhenyu
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-12-24 09:25 UTC by Harald Welte
Modified: 2007-12-26 05:27 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Xorg.0.log on 2.6.24-rc1 EXA enabled (default), working (32.75 KB, text/plain)
2007-12-24 09:27 UTC, Harald Welte
no flags Details
Xorg.0.log on 2.6.24-rc6 EXA enabled (default), NOT working (34.66 KB, text/plain)
2007-12-24 09:28 UTC, Harald Welte
no flags Details
Xorg.0.log on 2.6.24-rc1 EXA disabled (NoAccel), working (32.10 KB, text/plain)
2007-12-24 09:29 UTC, Harald Welte
no flags Details
Xorg.0.log on 2.6.24-rc6 EXA disabled (NoAccel), bogus screen display in bottom two thirds (32.38 KB, text/plain)
2007-12-24 09:29 UTC, Harald Welte
no flags Details
diff between Xorg.0.log on -rc1 and -rc6 (noaccel) (2.13 KB, text/plain)
2007-12-24 09:30 UTC, Harald Welte
no flags Details
kernel boot log on 2.6.24-rc1 (working) (42.62 KB, text/plain)
2007-12-24 09:31 UTC, Harald Welte
no flags Details
xorg.conf (1.78 KB, text/plain)
2007-12-24 09:32 UTC, Harald Welte
no flags Details
kernel .config 2.6.24-rc1 (71.32 KB, text/plain)
2007-12-25 02:31 UTC, Harald Welte
no flags Details
Kernel .config 2.6.24-rc6 (72.22 KB, text/plain)
2007-12-25 02:32 UTC, Harald Welte
no flags Details
Kernel boot log on 2.6.24-rc6 (not working) (35.11 KB, text/plain)
2007-12-25 02:35 UTC, Harald Welte
no flags Details

Description Harald Welte 2007-12-24 09:25:21 UTC
This is a regression with linux kernels > 2.6.24-rc1 on a x86_64 system on an Intel DQ35JO mainboard using a Q6600 quad-core CPU.  The bug has been observed with all BIOS versions that I've tried (07.31, 07.17 and 06.96).

The system runs a Debian unstable distribution with packages xserver-xorg-1:7.3+8 and xserver-xorg-video-intel 2:2.2.0-1

If the system is booted with 2.6.23.x or 2.6.24-rc1, Xorg in the abovementioned configuration is working fine.  Both accelerated (EXA) and unaccelerated (NoAccel) are working as desired.

As soon as the system is booted into 2.6.24-rc2 or later (tested up to -rc6), the Xserver crashes when EXA acceleration is enabled.  

If NoAccel is used in xorg.cof, the Xserver starts up, but framebuffer memory allocations somehow go wrong.  Only the top third of screen real estate still shows a proper image, the lower half seems to display some unrelated memory areas.  If the mouse cursor is moved, it is superimposed on the unrelated memory contents on the bottom. 

The division between correct and incorrect memory depends on the selected resolution.  If a lower resolution is selected, a bigger part of the screen is displayed correctly.

A visible impression can be seen at http://ganesha.gnumonks.org/~laforge/tmp/2624rc_xorg_intel.jpg (this is at a 1600x1200 screen)

This issue has also been reported to lkml (http://lkml.org/lkml/2007/12/21/269), and successively a kernel.org bugzilla entry is created at http://bugzilla.kernel.org/show_bug.cgi?id=9618.  Initial feedback from the kernel lists claim there were no relevant changes to the intel agpgart code.

The issue is 100% reproducible, and all tests have been performed on a clean boot.

I'll attach Xorg.0.log from the various configurations, as well as xorg.conf and kernel boot log.

lspci shows:

00:00.0 Host bridge: Intel Corporation Unknown device 29b0 (rev 02)
        Subsystem: Intel Corporation Unknown device 4f4a
        Flags: bus master, fast devsel, latency 0
        Capabilities: [e0] Vendor Specific Information

00:02.0 VGA compatible controller: Intel Corporation Unknown device 29b2 (rev 02) (prog-if 00 [VGA])
        Subsystem: Intel Corporation Unknown device 4f4a
        Flags: bus master, fast devsel, latency 0, IRQ 11
        Memory at e0380000 (32-bit, non-prefetchable) [size=512K]
        I/O ports at 2430 [size=8]
        Memory at d0000000 (32-bit, prefetchable) [size=256M]
        Memory at e0200000 (32-bit, non-prefetchable) [size=1M]
        Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-
        Capabilities: [d0] Power Management version 2

00:02.1 Display controller: Intel Corporation Unknown device 29b3 (rev 02)
        Subsystem: Intel Corporation Unknown device 4f4a
        Flags: bus master, fast devsel, latency 0
        Memory at e0300000 (32-bit, non-prefetchable) [size=512K]
        Capabilities: [d0] Power Management version 2
Comment 1 Harald Welte 2007-12-24 09:25:38 UTC
change OS to linux
Comment 2 Harald Welte 2007-12-24 09:27:21 UTC
Created attachment 13339 [details]
Xorg.0.log on 2.6.24-rc1 EXA enabled (default), working

This is the Xorg.0.log on 2.6.24-rc1 with EXA enabled (no Option for the intel driver at all, just using defaults)
Comment 3 Harald Welte 2007-12-24 09:28:19 UTC
Created attachment 13340 [details]
Xorg.0.log on 2.6.24-rc6 EXA enabled (default), NOT working

This is the Xorg.0.log on 2.6.24-rc6 with EXA enabled (no Option for the intel driver at all, just using defaults). The Xserver crashes
Comment 4 Harald Welte 2007-12-24 09:29:05 UTC
Created attachment 13341 [details]
Xorg.0.log on 2.6.24-rc1 EXA disabled (NoAccel), working
Comment 5 Harald Welte 2007-12-24 09:29:45 UTC
Created attachment 13342 [details]
Xorg.0.log on 2.6.24-rc6 EXA disabled (NoAccel), bogus screen display in bottom two thirds
Comment 6 Harald Welte 2007-12-24 09:30:45 UTC
Created attachment 13343 [details]
diff between Xorg.0.log on -rc1 and -rc6 (noaccel)

as you can see there are some warnings about page table issues
Comment 7 Harald Welte 2007-12-24 09:31:44 UTC
Created attachment 13344 [details]
kernel boot log on 2.6.24-rc1 (working)
Comment 8 Harald Welte 2007-12-24 09:32:01 UTC
Created attachment 13345 [details]
xorg.conf
Comment 9 Gordon Jin 2007-12-24 17:45:02 UTC
I'm not seeing this issue with the same configuration: 2.6.24-rc5 + 2.2.0 + Q35.
Comment 10 Wang Zhenyu 2007-12-24 18:34:29 UTC
Between rc1..rc6 only one commit to agp tree is
commit 966396d3a05c8049fce5c81c49138e5ee1b05443
Author: Joerg Roedel <joerg.roedel@amd.com>
Date:   Wed Oct 24 12:49:48 2007 +0200

    x86 gart: rename CONFIG_IOMMU to CONFIG_GART_IOMMU

    This patch renames the IOMMU config option to GART_IOMMU because in fact it
    means the GART and not general support for an IOMMU on x86.

    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    Acked-by: Muli Ben-Yehuda <muli@il.ibm.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

:100644 100644 f22c253... ccb1fa8... M  drivers/char/agp/Kconfig
:100644 100644 d95662e... d8200ac... M  drivers/char/agp/amd64-agp.c

I don't think kernel takes any difference here.

How about use defaults (no options) in xorg.conf on rc6?

Could you try with lastest driver on git tip?
(git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel)


Comment 11 Wang Zhenyu 2007-12-24 19:32:30 UTC
Could you send non-working kernel rc6 boot log?

I might be asking for too many question in one time :)
but how about disable VT-d in bios?
Comment 12 Harald Welte 2007-12-25 02:19:14 UTC
defaults (no options) with 2.6.24-rc6 provides the result as indicated in attachment 13340 [details] (i.e. xserver crash).

I'm attaching the .config for 2.6.24-rc1 and -rc6 to this bug report now.

Testing of the latest xorg-video-intel driver will be done later today or tomorrow.

Thanks for your quick response.

Gordon: Can you please also attach your .config for the -rc6 that is working on Q35 for you?

Also: Could the problem relate to BIOS settings regarding AGP aperture size / DVMT size ?

Comment 13 Harald Welte 2007-12-25 02:31:51 UTC
Created attachment 13351 [details]
kernel .config 2.6.24-rc1
Comment 14 Harald Welte 2007-12-25 02:32:47 UTC
Created attachment 13352 [details]
Kernel .config 2.6.24-rc6
Comment 15 Harald Welte 2007-12-25 02:35:44 UTC
Created attachment 13353 [details]
Kernel boot log on 2.6.24-rc6 (not working)

there is one disturbing message about 'PTE Write access is not set' at the very bottom (repeated 375 times) that might be related to the issue.
Comment 16 Wang Zhenyu 2007-12-25 16:54:04 UTC
(In reply to comment #14)
> Created an attachment (id=13352) [details]
> Kernel .config 2.6.24-rc6
> 

oh, in rc6 config you disable CONFIG_DMAR_GFX_WA option, which should be the cause
that lead to your problem. You must turn it on for graphics device to work properly for now.

That DMAR (a.k.a intel iommu) graphics workaround option is to setup 1:1 mapping
on graphics dma remapping engine. So graphics driver can still work with origin
behavior without change, that means it must be enabled for now.

I have sent patches to lkml to not depend on this option by enable dma mapping 
in kernel agpgart module, see http://lkml.org/lkml/2007/12/18/3

Pls turn on that option and retest, thanks.
Comment 17 Harald Welte 2007-12-26 05:27:22 UTC
(In reply to comment #16)
> oh, in rc6 config you disable CONFIG_DMAR_GFX_WA option, which should be the
> cause
> that lead to your problem. You must turn it on for graphics device to work
> properly for now.

Indeed, this seems to have caused the problem. Xorg is working just fine if this option is enabled.  I'm a bit surprised how the option was turned off, since there's a "default y" in Kconfig, and I even remember having turned it on explicitly at some point. Might have been lost during various trial-and-error attempts again.

I hope your patches to do this at runtime will get merged before the 2.6.24 release, otherwise I see many people falling into the same trap..

Thanks for your great support.


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.