2006-10-18 15:03:44

by Sebastian Biallas

[permalink] [raw]
Subject: PCI-DMA: Disabling IOMMU

Bootdata ok (command line is root=/dev/sda3 reiserfs ro)
Linux version 2.6.18.1 (root@localhost) (gcc-Version 4.1.1 (Gentoo 4.1.1)) #2 SMP Tue Oct 17 15:58:36 CEST 2006
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000007bfb0000 (usable)
BIOS-e820: 000000007bfb0000 - 000000007bfc0000 (ACPI data)
BIOS-e820: 000000007bfc0000 - 000000007bff0000 (ACPI NVS)
BIOS-e820: 000000007bff0000 - 000000007c000000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fef00000 (reserved)
BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
DMI present.
ACPI: RSDP (v000 ACPIAM ) @ 0x00000000000fa1b0
ACPI: RSDT (v001 A M I OEMRSDT 0x07000610 MSFT 0x00000097) @ 0x000000007bfb0000
ACPI: FADT (v002 A M I OEMFACP 0x07000610 MSFT 0x00000097) @ 0x000000007bfb0200
ACPI: MADT (v001 A M I OEMAPIC 0x07000610 MSFT 0x00000097) @ 0x000000007bfb0390
ACPI: MCFG (v001 A M I OEMMCFG 0x07000610 MSFT 0x00000097) @ 0x000000007bfb0400
ACPI: OEMB (v001 A M I AMI_OEM 0x07000610 MSFT 0x00000097) @ 0x000000007bfc0040
ACPI: DSDT (v001 ALNF4 ALNF4008 0x00000008 INTL 0x02002026) @ 0x0000000000000000
Scanning NUMA topology in Northbridge 24
Number of nodes 1
Node 0 MemBase 0000000000000000 Limit 000000007bfb0000
NUMA: Using 63 for the hash shift.
Using node hash shift of 63
Bootmem setup node 0 0000000000000000-000000007bfb0000
On node 0 totalpages: 499728
DMA zone: 2886 pages, LIFO batch:0
DMA32 zone: 496842 pages, LIFO batch:31
Nvidia board detected. Ignoring ACPI timer override.
ACPI: PM-Timer IO Port: 0x4008
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 15:11 APIC version 16
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
Processor #1 15:11 APIC version 16
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: BIOS IRQ0 pin2 override ignored.
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 14 global_irq 14 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 15 global_irq 15 high edge)
ACPI: IRQ9 used by override.
ACPI: IRQ14 used by override.
ACPI: IRQ15 used by override.
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 80000000 (gap: 7c000000:82c00000)
Built 1 zonelists. Total pages: 499728
Kernel command line: root=/dev/sda3 reiserfs ro
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
Disabling vsyscall due to use of PM timer
time.c: Using 3.579545 MHz WALL PM GTOD PM timer.
time.c: Detected 2004.205 MHz processor.
Console: colour VGA+ 80x25
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Checking aperture...
CPU 0: aperture @ 935e000000 size 32 MB
Aperture too small (32 MB)
No AGP bridge found
Memory: 1995404k/2031296k available (2527k kernel code, 35504k reserved, 1002k data, 228k init)
Calibrating delay using timer specific routine.. 4012.90 BogoMIPS (lpj=8025803)
Mount-cache hash table entries: 256
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 0/0 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
Freeing SMP alternatives: 28k freed
ACPI: Core revision 20060707
Using local APIC timer interrupts.
result 12526300
Detected 12.526 MHz APIC timer.
Booting processor 1/2 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 4008.73 BogoMIPS (lpj=8017474)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU 1/1 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ stepping 02
CPU 1: Syncing TSC to CPU 0.
CPU 1: synchronized TSC with CPU 0 (last diff 0 cycles, maxerr 564 cycles)
Brought up 2 CPUs
testing NMI watchdog ... OK.
migration_cost=250
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: BIOS Bug: MCFG area at e0000000 is not E820-reserved
PCI: Not using MMCONFIG.
PCI: Using configuration type 1
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
Boot video device is 0000:00:05.0
PCI: Transparent bridge - 0000:00:10.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P9._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0PA._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P1._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 16 17 18 19) *11
ACPI: PCI Interrupt Link [LNKB] (IRQs 16 17 18 19) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 16 17 18 19) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs 16 17 18 19) *0, disabled.
ACPI: PCI Interrupt Link [LNEA] (IRQs 16 17 18 19) *0, disabled.
ACPI: PCI Interrupt Link [LNEB] (IRQs 16 17 18 19) *0, disabled.
ACPI: PCI Interrupt Link [LNEC] (IRQs 16 17 18 19) *11
ACPI: PCI Interrupt Link [LNED] (IRQs 16 17 18 19) *0, disabled.
ACPI: PCI Interrupt Link [LUB0] (IRQs 20 21 22 23) *11
ACPI: PCI Interrupt Link [LUB2] (IRQs 20 21 22 23) *11
ACPI: PCI Interrupt Link [LMAC] (IRQs 20 21 22 23) *11
ACPI: PCI Interrupt Link [LAZA] (IRQs 20 21 22 23) *11
ACPI: PCI Interrupt Link [LACI] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [LMC9] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [LSMB] (IRQs 20 21 22 23) *11
ACPI: PCI Interrupt Link [LPMU] (IRQs 20 21 22 23) *11
ACPI: PCI Interrupt Link [LSA0] (IRQs 20 21 22 23) *10
ACPI: PCI Interrupt Link [LSA1] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [LATA] (IRQs 20 21 22 23) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
pnp: PnP ACPI: found 18 devices
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report
PCI-DMA: Disabling IOMMU.
pnp: 00:0f: ioport range 0x290-0x29f has been reserved
PCI: Bridge: 0000:00:03.0
IO window: disabled.
MEM window: disabled.
PREFETCH window: disabled.
PCI: Bridge: 0000:00:04.0
IO window: disabled.
MEM window: disabled.
PREFETCH window: disabled.
PCI: Bridge: 0000:00:10.0
IO window: e000-efff
MEM window: disabled.
PREFETCH window: disabled.
PCI: Setting latency timer of device 0000:00:03.0 to 64
PCI: Setting latency timer of device 0000:00:04.0 to 64
PCI: Setting latency timer of device 0000:00:10.0 to 64
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
Total HugeTLB memory allocated, 0
Initializing Cryptographic API
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: Setting latency timer of device 0000:00:03.0 to 64
pcie_portdrv_probe->Dev[02fd:10de] has invalid IRQ. Check vendor BIOS
assign_interrupt_mode Found MSI capability
Allocate Port Service[0000:00:03.0:pcie00]
PCI: Setting latency timer of device 0000:00:04.0 to 64
pcie_portdrv_probe->Dev[02fb:10de] has invalid IRQ. Check vendor BIOS
assign_interrupt_mode Found MSI capability
Allocate Port Service[0000:00:04.0:pcie00]
ACPI: Power Button (FF) [PWRF]
ACPI: Power Button (CM) [PWRB]
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.101 (c) Dave Jones
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: loaded (max 8 devices)
ne2k-pci.c:v1.03 9/22/2003 D. Becker/P. Gortmaker
http://www.scyld.com/network/ne2k-pci.html
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 19
GSI 16 sharing vector 0xC9 and IRQ 16
ACPI: PCI Interrupt 0000:03:08.0[A] -> Link [LNKA] -> GSI 19 (level, low) -> IRQ 201
eth0: RealTek RTL-8029 found at 0xec00, IRQ 201, 00:40:05:E2:78:2C.
forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.56.
ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 23
GSI 17 sharing vector 0xD1 and IRQ 17
ACPI: PCI Interrupt 0000:00:14.0[A] -> Link [LMAC] -> GSI 23 (level, low) -> IRQ 209
PCI: Setting latency timer of device 0000:00:14.0 to 64
forcedeth: using HIGHDMA
eth1: forcedeth.c: subsystem: 01849:0269 bound to 0000:00:14.0
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <[email protected]>
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
NFORCE-MCP51: IDE controller at PCI slot 0000:00:0d.0
NFORCE-MCP51: chipset revision 161
NFORCE-MCP51: not 100% native mode: will probe irqs later
NFORCE-MCP51: BIOS didn't set cable bits correctly. Enabling workaround.
NFORCE-MCP51: 0000:00:0d.0 (rev a1) UDMA133 controller
ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:pio
Probing IDE interface ide0...
hda: AOPEN CD-RW CRW5232 1.02 20030718, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: SAMSUNG SP1614N, ATA DISK drive
ide1 at 0x170-0x177,0x376 on irq 15
hdc: max request size: 512KiB
hdc: 312581808 sectors (160041 MB) w/8192KiB Cache, CHS=19457/255/63, UDMA(100)
hdc: cache flushes supported
hdc: hdc1 hdc2 hdc3 hdc4 < hdc5 hdc6 >
hda: ATAPI 40X CD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
libata version 2.00 loaded.
sata_nv 0000:00:0e.0: version 2.0
ACPI: PCI Interrupt Link [LSA0] enabled at IRQ 22
GSI 18 sharing vector 0xD9 and IRQ 18
ACPI: PCI Interrupt 0000:00:0e.0[A] -> Link [LSA0] -> GSI 22 (level, low) -> IRQ 217
PCI: Setting latency timer of device 0000:00:0e.0 to 64
ata1: SATA max UDMA/133 cmd 0xD800 ctl 0xD482 bmdma 0xD000 irq 217
ata2: SATA max UDMA/133 cmd 0xD400 ctl 0xD082 bmdma 0xD008 irq 217
scsi0 : sata_nv
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1.00: ATA-7, max UDMA7, 488397168 sectors: LBA48 NCQ (depth 0/32)
ata1.00: ata1: dev 0 multi count 16
ata1.00: configured for UDMA/133
scsi1 : sata_nv
ata2: SATA link down (SStatus 0 SControl 300)
ATA: abnormal status 0x7F on port 0xD407
Vendor: ATA Model: SAMSUNG SP2504C Rev: VT10
Type: Direct-Access ANSI SCSI revision: 05
SCSI device sda: 488397168 512-byte hdwr sectors (250059 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: drive cache: write back
SCSI device sda: 488397168 512-byte hdwr sectors (250059 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: drive cache: write back
sda: sda1 sda2 sda3
sd 0:0:0:0: Attached scsi disk sda
sd 0:0:0:0: Attached scsi generic sg0 type 0
ieee1394: raw1394: /dev/raw1394 device initialized
usbmon: debugfs is not available
ACPI: PCI Interrupt Link [LUB2] enabled at IRQ 21
GSI 19 sharing vector 0xE1 and IRQ 19
ACPI: PCI Interrupt 0000:00:0b.1[B] -> Link [LUB2] -> GSI 21 (level, low) -> IRQ 225
PCI: Setting latency timer of device 0000:00:0b.1 to 64
ehci_hcd 0000:00:0b.1: EHCI Host Controller
ehci_hcd 0000:00:0b.1: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:0b.1: debug port 1
PCI: cache line size of 64 is not supported by device 0000:00:0b.1
ehci_hcd 0000:00:0b.1: irq 225, io mem 0xfebdfc00
ehci_hcd 0000:00:0b.1: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 8 ports detected
usbcore: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
PNP: PS/2 Controller [PNP0303:PS2K,PNP0f03:PS2M] at 0x60,0x64 irq 1,12
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
device-mapper: ioctl: 4.7.0-ioctl (2006-06-24) initialised: [email protected]
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
powernow-k8: Found 2 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ processors (version 2.00.00)
powernow-k8: 0 : fid 0xc (2000 MHz), vid 0xa
powernow-k8: 1 : fid 0xa (1800 MHz), vid 0xc
powernow-k8: 2 : fid 0x2 (1000 MHz), vid 0x12
ReiserFS: sda3: found reiserfs format "3.6" with standard journal
input: AT Translated Set 2 keyboard as /class/input/input0
input: ImExPS/2 Logitech Wheel Mouse as /class/input/input1
ReiserFS: sda3: using ordered data mode
ReiserFS: sda3: journal params: device sda3, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: sda3: checking transaction log (sda3)
ReiserFS: sda3: Using r5 hash to sort names
VFS: Mounted root (reiserfs filesystem) readonly.
Freeing unused kernel memory: 228k freed
ReiserFS: hdc6: found reiserfs format "3.6" with standard journal
ReiserFS: hdc6: using ordered data mode
ReiserFS: hdc6: journal params: device hdc6, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hdc6: checking transaction log (hdc6)
ReiserFS: hdc6: Using r5 hash to sort names
Adding 522104k swap on /dev/sda2. Priority:-1 extents:1 across:522104k
ACPI: PCI Interrupt Link [LNEC] enabled at IRQ 18
GSI 20 sharing vector 0xE9 and IRQ 20
ACPI: PCI Interrupt 0000:00:05.0[A] -> Link [LNEC] -> GSI 18 (level, low) -> IRQ 233
nvidiafb: Device ID: 10de0242
nvidiafb: CRTC0 analog not found
nvidiafb: CRTC1 analog found
nvidiafb: CRTC 0appears to have a CRT attached
nvidiafb: Using CRT on CRTC 0
nvidiafb: MTRR set to ON
nvidiafb: PCI nVidia NV24 framebuffer (64MB @ 0xD0000000)
ACPI: PCI Interrupt Link [LAZA] enabled at IRQ 20
GSI 21 sharing vector 0x32 and IRQ 21
ACPI: PCI Interrupt 0000:00:10.1[B] -> Link [LAZA] -> GSI 20 (level, low) -> IRQ 50
PCI: Setting latency timer of device 0000:00:10.1 to 64
hda_codec: Unknown model for ALC883, trying auto-probe from BIOS...
parport: PnPBIOS parport detected.
parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP(,...)]
eth1: no link during initialization.


Attachments:
.config (34.26 kB)
dmesg (14.33 kB)
Download all attachments

2006-10-18 15:40:50

by Prakash Punnoor

[permalink] [raw]
Subject: Re: PCI-DMA: Disabling IOMMU

Am Mittwoch 18 Oktober 2006 17:03 schrieben Sie:
> Hi,
>
> Linux ouputs some strange "PCI-DMA: Disabling IOMMU" on booting. It's a
> ALiveNF4G motherboard with an Athlon64 X2 running vanilla Linux 2.6.18.1
> (which supports all hardware out of the box, pretty cool).
>
> Should I worry about this IOMMU-disabling? All other Linux/IOMMU stuff I
> found had AGP or BIOS messages nearby, but I only get this single
> "PCI-DMA: Disabling IOMMU" line, without any hint.

Unless you have >=4GB of RAM using IOMMU makes no sense, thus it gets
disabled.

--
(?= =?)
//\ Prakash Punnoor /\\
V_/ \_V


Attachments:
(No filename) (624.00 B)
(No filename) (189.00 B)
Download all attachments

2006-10-18 15:52:13

by Sebastian Biallas

[permalink] [raw]
Subject: Re: PCI-DMA: Disabling IOMMU

Prakash Punnoor wrote:
> Am Mittwoch 18 Oktober 2006 17:03 schrieben Sie:
>> Linux ouputs some strange "PCI-DMA: Disabling IOMMU" on booting. It's a
>> ALiveNF4G motherboard with an Athlon64 X2 running vanilla Linux 2.6.18.1
>> (which supports all hardware out of the box, pretty cool).
>>
>> Should I worry about this IOMMU-disabling? All other Linux/IOMMU stuff I
>> found had AGP or BIOS messages nearby, but I only get this single
>> "PCI-DMA: Disabling IOMMU" line, without any hint.
>
> Unless you have >=4GB of RAM using IOMMU makes no sense, thus it gets
> disabled.

Thanks for the answer (I thought that IOMMU is also used by VMMs like
XEN, for direct hardware access of the guest. But I might have
misunderstood this).

So maybe this message should read:
PCI-DMA: Not more than 4GiB RAM: Disabling IOMMU
so that people like me don't have to worry.

Regards,
Sebastian

2006-10-18 21:15:15

by Muli Ben-Yehuda

[permalink] [raw]
Subject: Re: PCI-DMA: Disabling IOMMU

On Wed, Oct 18, 2006 at 05:03:36PM +0200, Sebastian Biallas wrote:

> Should I worry about this IOMMU-disabling? All other Linux/IOMMU stuff I
> found had AGP or BIOS messages nearby, but I only get this single
> "PCI-DMA: Disabling IOMMU" line, without any hint.

No, it's fine. Just a badly worded information message. Andi, how
about something like this?

Print a less alarming information message when we don't use GART

Signed-off-by: Muli Ben-Yehuda <[email protected]>

diff -r 3f7bc84201e7 arch/x86_64/kernel/pci-gart.c
--- a/arch/x86_64/kernel/pci-gart.c Wed Oct 18 09:14:19 2006 +0200
+++ b/arch/x86_64/kernel/pci-gart.c Wed Oct 18 23:13:05 2006 +0200
@@ -601,7 +601,7 @@ void __init gart_iommu_init(void)
(!force_iommu && end_pfn <= MAX_DMA32_PFN) ||
!iommu_aperture ||
(no_agp && init_k8_gatt(&info) < 0)) {
- printk(KERN_INFO "PCI-DMA: Disabling IOMMU.\n");
+ printk(KERN_INFO "PCI-DMA: Not using GART IOMMU.\n");
if (end_pfn > MAX_DMA32_PFN) {
printk(KERN_ERR "WARNING more than 4GB of memory "
"but IOMMU not available.\n"

2006-10-18 21:15:59

by Muli Ben-Yehuda

[permalink] [raw]
Subject: Re: PCI-DMA: Disabling IOMMU

On Wed, Oct 18, 2006 at 05:41:03PM +0200, Prakash Punnoor wrote:
> Am Mittwoch 18 Oktober 2006 17:03 schrieben Sie:
> > Hi,
> >
> > Linux ouputs some strange "PCI-DMA: Disabling IOMMU" on booting. It's a
> > ALiveNF4G motherboard with an Athlon64 X2 running vanilla Linux 2.6.18.1
> > (which supports all hardware out of the box, pretty cool).
> >
> > Should I worry about this IOMMU-disabling? All other Linux/IOMMU stuff I
> > found had AGP or BIOS messages nearby, but I only get this single
> > "PCI-DMA: Disabling IOMMU" line, without any hint.
>
> Unless you have >=4GB of RAM using IOMMU makes no sense, thus it gets
> disabled.

In some cases it certainly does (e.g, if it's an isolation capable
IOMMU), in others it doesn't matter even if you do have more than 4GB
of memory (e.g., if all of your devices are DAC capable).

Cheers,
Muli

2006-10-18 21:16:30

by Muli Ben-Yehuda

[permalink] [raw]
Subject: Re: PCI-DMA: Disabling IOMMU

On Wed, Oct 18, 2006 at 05:51:57PM +0200, Sebastian Biallas wrote:
> Prakash Punnoor wrote:
> > Am Mittwoch 18 Oktober 2006 17:03 schrieben Sie:
> >> Linux ouputs some strange "PCI-DMA: Disabling IOMMU" on booting. It's a
> >> ALiveNF4G motherboard with an Athlon64 X2 running vanilla Linux 2.6.18.1
> >> (which supports all hardware out of the box, pretty cool).
> >>
> >> Should I worry about this IOMMU-disabling? All other Linux/IOMMU stuff I
> >> found had AGP or BIOS messages nearby, but I only get this single
> >> "PCI-DMA: Disabling IOMMU" line, without any hint.
> >
> > Unless you have >=4GB of RAM using IOMMU makes no sense, thus it gets
> > disabled.
>
> Thanks for the answer (I thought that IOMMU is also used by VMMs like
> XEN, for direct hardware access of the guest. But I might have
> misunderstood this).

Nope, you got it right, that's one of the neater uses of an isolation
capable IOMMU.

Cheers,
Muli

2006-10-18 21:48:59

by Andi Kleen

[permalink] [raw]
Subject: Re: PCI-DMA: Disabling IOMMU

On Wednesday 18 October 2006 23:15, Muli Ben-Yehuda wrote:
> On Wed, Oct 18, 2006 at 05:03:36PM +0200, Sebastian Biallas wrote:
>
> > Should I worry about this IOMMU-disabling? All other Linux/IOMMU stuff I
> > found had AGP or BIOS messages nearby, but I only get this single
> > "PCI-DMA: Disabling IOMMU" line, without any hint.
>
> No, it's fine. Just a badly worded information message. Andi, how
> about something like this?

I think the original message is fine. I'm sure someone will be alarmed
about any possible message, but we can't help them.

-Andi

2006-10-19 05:15:32

by Muli Ben-Yehuda

[permalink] [raw]
Subject: Re: PCI-DMA: Disabling IOMMU

On Wed, Oct 18, 2006 at 11:48:44PM +0200, Andi Kleen wrote:
> On Wednesday 18 October 2006 23:15, Muli Ben-Yehuda wrote:
> > On Wed, Oct 18, 2006 at 05:03:36PM +0200, Sebastian Biallas wrote:
> >
> > > Should I worry about this IOMMU-disabling? All other Linux/IOMMU stuff I
> > > found had AGP or BIOS messages nearby, but I only get this single
> > > "PCI-DMA: Disabling IOMMU" line, without any hint.
> >
> > No, it's fine. Just a badly worded information message. Andi, how
> > about something like this?
>
> I think the original message is fine. I'm sure someone will be alarmed
> about any possible message, but we can't help them.

The original message is misleading - there may certainly be more than
one IOMMU and then we will end up "disabling IOMMU" and then
"reenabling IOMMU" later when we detect another one. Can we at least
make it "disabling GART IOMMU"?

Cheers,
Muli

2006-10-19 11:52:11

by Andi Kleen

[permalink] [raw]
Subject: Re: PCI-DMA: Disabling IOMMU


> The original message is misleading - there may certainly be more than
> one IOMMU and then we will end up "disabling IOMMU" and then
> "reenabling IOMMU" later when we detect another one. Can we at least
> make it "disabling GART IOMMU"?

Ok, although the printk is already guarded by a test for another IOMMU

-Andi

2006-10-19 12:06:16

by Alan

[permalink] [raw]
Subject: Re: PCI-DMA: Disabling IOMMU

Ar Mer, 2006-10-18 am 23:48 +0200, ysgrifennodd Andi Kleen:
> On Wednesday 18 October 2006 23:15, Muli Ben-Yehuda wrote:
> > On Wed, Oct 18, 2006 at 05:03:36PM +0200, Sebastian Biallas wrote:
> >
> > > Should I worry about this IOMMU-disabling? All other Linux/IOMMU stuff I
> > > found had AGP or BIOS messages nearby, but I only get this single
> > > "PCI-DMA: Disabling IOMMU" line, without any hint.
> >
> > No, it's fine. Just a badly worded information message. Andi, how
> > about something like this?
>
> I think the original message is fine. I'm sure someone will be alarmed
> about any possible message, but we can't help them.

Actually if you flip it around and print
"PCI-DMA: Enabling IOMMU"

and keep quiet if you disable it then users should be happy because its
turned something on and that is clearly always good 8)


2006-10-19 13:04:46

by Andi Kleen

[permalink] [raw]
Subject: Re: PCI-DMA: Disabling IOMMU


> Actually if you flip it around and print
> "PCI-DMA: Enabling IOMMU"
>
> and keep quiet if you disable it then users should be happy because its
> turned something on and that is clearly always good 8)

There already is a Using GART IOMMU message afterwards. The reason the
disabling message is there that one can distingush the case of IOMMU
working, but deciding that it's not needed and IOMMU not compiled
in (which unfortunately a few users do even when they need it)

Ok admittedly there is another warning when iommu is disabled, but
would be needed anyways so maybe it's obsolete. But I think it's better
to keep it for now.

-Andi