Bug 570142

Summary: nouveau fills log with "DMAR:[DMA Read] Request device [02:00.0] fault addr 0" messages
Product: [Fedora] Fedora Reporter: Stefan Becker <chemobejk>
Component: xorg-x11-drv-nouveauAssignee: Ben Skeggs <bskeggs>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 12CC: airlied, ajax, anton, bailey, Bert.Deknuydt, bskeggs, dougsland, gansalmon, itamar, jonathan, kernel-maint, mhlavink
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-03-11 19:13:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Stefan Becker 2010-03-03 13:24:12 UTC
Description of problem:

After switching from current F12 2.6.31 to the .32 testing kernels, noveau starts to fill the log with the following messages:

DRHD: handling fault status reg 602
DMAR:[DMA Read] Request device [02:00.0] fault addr 0 
DMAR:[fault reason 06] PTE Read access is not set

Several messages per second are generated.

Version-Release number of selected component (if applicable):
kernel-2.6.32.9-67.fc12.x86_64
libdrm-2.4.17-1.fc12.x86_64
mesa-libGL-7.7-4.fc12.x86_64
xorg-x11-server-Xorg-1.7.5-5.fc12.x86_64
xorg-x11-drv-nouveau-0.0.15-20.20091105gite1c2efd.fc12.x86_64

How reproducible: always

Steps to Reproduce:
1. boot up machine to X
2. check "dmesg" while working on X
  
Additional info:

I'm using KMS.

$ uname -a
Linux XXXX 2.6.32.9-67.fc12.x86_64 #1 SMP Sat Feb 27 09:26:40 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux

$ lspci -nn -s 02:00.0
02:00.0 VGA compatible controller [0300]: nVidia Corporation Device [10de:0659] (rev a1)

$ xrandr --query
Screen 0: minimum 320 x 200, current 2560 x 1600, maximum 8192 x 8192
DVI-I-0 connected 2560x1600+0+0 (normal left inverted right x axis y axis) 646mm x 406mm
   2560x1600      59.9* 
   1280x800       59.9  
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)

Comment 1 Chuck Ebbert 2010-03-03 19:05:59 UTC
Try adding 'intel_iommu=off' to the kernel boot options.

Comment 2 Chuck Ebbert 2010-03-04 00:09:17 UTC
'intel_iommu=igfx_off' should be enough to stop this from happening.

Comment 3 Stefan Becker 2010-03-04 09:02:25 UTC
'intel_iommu=igfx_off' didn't help, only "off" fixed the problem.


From /var/log/messages:

WITHOUT intel_iommu -> errors

Mar  3 15:11:02 XXXXX kernel: Linux version 2.6.32.9-67.fc12.x86_64 (mockbuild.fedoraproject.org) (gcc version 4.4.3 20100127 (Red Hat 4.4.3-4) (GCC) ) #1 SMP Sat Feb 27 09:26:40 UTC 2010
Mar  3 15:11:02 XXXXX kernel: Command line: ro root=/dev/mapper/VolGroup00-LogVol00 rhgb quiet SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=fi
Mar  3 15:11:02 XXXXX kernel: ACPI: DMAR 00000000000fd3b7 000B8 (v01 DELL    B10K    00000015 ASL  00000061)
Mar  3 15:11:02 XXXXX kernel: Kernel command line: ro root=/dev/mapper/VolGroup00-LogVol00 rhgb quiet SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=fi
Mar  3 15:11:02 XXXXX kernel: DMAR: Host address width 36
Mar  3 15:11:02 XXXXX kernel: DMAR: DRHD base: 0x000000fedc0000 flags: 0x1
Mar  3 15:11:02 XXXXX kernel: IOMMU fedc0000: ver 1:0 cap c90780106f0462 ecap f020f6
Mar  3 15:11:02 XXXXX kernel: DMAR: RMRR base: 0x000000bfe58000 end: 0x000000bfe6ffff
Mar  3 15:11:02 XXXXX kernel: DMAR: ATSR flags: 0x0
Mar  3 15:11:02 XXXXX kernel: IOMMU 0xfedc0000: using Queued invalidation
Mar  3 15:11:02 XXXXX kernel: IOMMU: Setting RMRR:
Mar  3 15:11:02 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1d.0 [0xbfe58000 - 0xbfe70000]
Mar  3 15:11:02 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1d.1 [0xbfe58000 - 0xbfe70000]
Mar  3 15:11:02 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1d.2 [0xbfe58000 - 0xbfe70000]
Mar  3 15:11:02 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1d.7 [0xbfe58000 - 0xbfe70000]
Mar  3 15:11:02 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1a.0 [0xbfe58000 - 0xbfe70000]
Mar  3 15:11:02 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1a.1 [0xbfe58000 - 0xbfe70000]
Mar  3 15:11:02 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1a.2 [0xbfe58000 - 0xbfe70000]
Mar  3 15:11:02 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1a.7 [0xbfe58000 - 0xbfe70000]
Mar  3 15:11:02 XXXXX kernel: IOMMU: Prepare 0-16MiB unity mapping for LPC
Mar  3 15:11:02 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0x1000000]
Mar  3 15:11:23 XXXXX kernel: DRHD: handling fault status reg 2
Mar  3 15:11:23 XXXXX kernel: DMAR:[DMA Read] Request device [02:00.0] fault addr 0 
Mar  3 15:11:23 XXXXX kernel: DMAR:[fault reason 06] PTE Read access is not set

WITH intel_iommu=igfx_off -> errors

Mar  4 10:11:52 XXXXX kernel: Linux version 2.6.32.9-67.fc12.x86_64 (mockbuild.fedoraproject.org) (gcc version 4.4.3 20100127 (Red Hat 4.4.3-4) (GCC) ) #1 SMP Sat Feb 27 09:26:40 UTC 2010
Mar  4 10:11:52 XXXXX kernel: Command line: ro root=/dev/mapper/VolGroup00-LogVol00 rhgb quiet SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=fi intel_iommu=igfx_off
Mar  4 10:11:52 XXXXX kernel: ACPI: DMAR 00000000000fd3b7 000B8 (v01 DELL    B10K    00000015 ASL  00000061)
Mar  4 10:11:52 XXXXX kernel: Kernel command line: ro root=/dev/mapper/VolGroup00-LogVol00 rhgb quiet SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=fi intel_iommu=igfx_off
Mar  4 10:11:52 XXXXX kernel: Intel-IOMMU: disable GFX device mapping
Mar  4 10:11:52 XXXXX kernel: DMAR: Host address width 36
Mar  4 10:11:52 XXXXX kernel: DMAR: DRHD base: 0x000000fedc0000 flags: 0x1
Mar  4 10:11:52 XXXXX kernel: IOMMU fedc0000: ver 1:0 cap c90780106f0462 ecap f020f6
Mar  4 10:11:52 XXXXX kernel: DMAR: RMRR base: 0x000000bfe58000 end: 0x000000bfe6ffff
Mar  4 10:11:52 XXXXX kernel: DMAR: ATSR flags: 0x0
Mar  4 10:11:52 XXXXX kernel: IOMMU 0xfedc0000: using Queued invalidation
Mar  4 10:11:52 XXXXX kernel: IOMMU: Setting RMRR:
Mar  4 10:11:52 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1d.0 [0xbfe58000 - 0xbfe70000]
Mar  4 10:11:52 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1d.1 [0xbfe58000 - 0xbfe70000]
Mar  4 10:11:52 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1d.2 [0xbfe58000 - 0xbfe70000]
Mar  4 10:11:52 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1d.7 [0xbfe58000 - 0xbfe70000]
Mar  4 10:11:52 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1a.0 [0xbfe58000 - 0xbfe70000]
Mar  4 10:11:52 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1a.1 [0xbfe58000 - 0xbfe70000]
Mar  4 10:11:52 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1a.2 [0xbfe58000 - 0xbfe70000]
Mar  4 10:11:52 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1a.7 [0xbfe58000 - 0xbfe70000]
Mar  4 10:11:52 XXXXX kernel: IOMMU: Prepare 0-16MiB unity mapping for LPC
Mar  4 10:11:52 XXXXX kernel: IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0x1000000]
Mar  4 10:12:15 XXXXX kernel: DRHD: handling fault status reg 2
Mar  4 10:12:15 XXXXX kernel: DMAR:[DMA Read] Request device [02:00.0] fault addr 0 
Mar  4 10:12:15 XXXXX kernel: DMAR:[fault reason 06] PTE Read access is not set

WITH intel_iommu=off -> no errors

Mar  4 10:22:43 XXXXX kernel: Linux version 2.6.32.9-67.fc12.x86_64 (mockbuild.fedoraproject.org) (gcc version 4.4.3 20100127 (Red Hat 4.4.3-4) (GCC) ) #1 SMP Sat Feb 27 09:26:40 UTC 2010
Mar  4 10:22:43 XXXXX kernel: Command line: ro root=/dev/mapper/VolGroup00-LogVol00 rhgb quiet SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=fi intel_iommu=off
Mar  4 10:22:43 XXXXX kernel: ACPI: DMAR 00000000000fd3b7 000B8 (v01 DELL    B10K    00000015 ASL  00000061)
Mar  4 10:22:43 XXXXX kernel: Kernel command line: ro root=/dev/mapper/VolGroup00-LogVol00 rhgb quiet SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=fi intel_iommu=off
Mar  4 10:22:43 XXXXX kernel: Intel-IOMMU: disabled
Mar  4 10:22:43 XXXXX kernel: DMAR: Host address width 36
Mar  4 10:22:43 XXXXX kernel: DMAR: DRHD base: 0x000000fedc0000 flags: 0x1
Mar  4 10:22:43 XXXXX kernel: IOMMU fedc0000: ver 1:0 cap c90780106f0462 ecap f020f6
Mar  4 10:22:43 XXXXX kernel: DMAR: RMRR base: 0x000000bfe58000 end: 0x000000bfe6ffff
Mar  4 10:22:43 XXXXX kernel: DMAR: ATSR flags: 0x0

As far as I understand the intel_iommu kernel documentation using (igfx_)off points out a bug. Is it OK that I reported the problem here or do I need to post to LKML too?

Comment 4 David Woodhouse 2010-03-04 15:10:00 UTC
You're right; if you have to turn the IOMMU protection off because a certain driver is doing bogus DMA to/from page zero, that's a bug. 

Reassigning to nouveau.

Chuck, 'igfx_off' only disables the dedicated IOMMU for the built-in Intel graphics, so it won't make any difference in this case.

Comment 5 Stefan Becker 2010-03-04 19:04:25 UTC
Poor Ben, another one of my bug reports ends up on your desk :-)

I've now installed the kernel on my second Nvidia machine, but the problem doesn't show up there. My guess is that the Intel Core Duo doesn't have the same IOMMU as the Xeon Quad Core on the Dell T3500 box.

Comment 6 Michal Hlavinka 2010-03-10 07:22:59 UTC
I guess this is duplicate of bug #561267

Comment 7 Stefan Becker 2010-03-11 19:13:40 UTC
Agreed, looks like the same problem.

*** This bug has been marked as a duplicate of bug 561267 ***