Bug 160799 - Kernel panic: pci_map_single: high address but no IOMMU.
Summary: Kernel panic: pci_map_single: high address but no IOMMU.
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: kernel
Version: 3.0
Hardware: ia32e
OS: Linux
medium
low
Target Milestone: ---
Assignee: Ernie Petrides
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks: 156320
TreeView+ depends on / blocked
 
Reported: 2005-06-17 12:23 UTC by Jeff Burke
Modified: 2007-11-30 22:07 UTC (History)
2 users (show)

Fixed In Version: RHSA-2005-663
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-09-28 15:23:50 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2005:663 0 qe-ready SHIPPED_LIVE Important: Updated kernel packages available for Red Hat Enterprise Linux 3 Update 6 2005-09-28 04:00:00 UTC

Description Jeff Burke 2005-06-17 12:23:15 UTC
Description of problem:
In RHEL3 while both Intel EM64T and AMD are x86_64. They require different
kernels. If infact you install the wrong kernel, the message is ambiguos to the
problem.

The kernel when booting can detect the incorrect situation and panic with a
meaningful message. Rather then the message that get printed now 
"Kernel panic: pci_map_single: high address but no IOMMU."

We could print a useful message "Hey dummy you installed the wrong kernel" or
something more politically correct.

Version-Release number of selected component (if applicable):
N/A

How reproducible:
Every Time

Steps to Reproduce:
1.On an EM64T system install the x86_64 kernel instead of the ia32e
  
Actual results:
Bootdata ok (command line is ro root=LABEL=/RHEL3 hda=ide-scsi console=ttyS0,960
0 console=tty0)                        Linux version 2.4.21-32.8.ELsmp
(bhcompile.redhat.com) (gcc version
3.2.3 20030502 (Red Hat Linux 3.2.3-52)) #1 SMP Tue Jun 14 20:56:40 EDT 2005
BIOS-provided physical RAM map:        BIOS-e820: 0000000000000000 -
00000000000a0000 (usable)
BIOS-e820: 0000000000100000 - 00000000bffc0000 (usable)
BIOS-e820: 00000000bffc0000 - 00000000bffcfc00 (ACPI data)
BIOS-e820: 00000000bffcfc00 - 00000000bffff000 (reserved)
BIOS-e820: 00000000e0000000 - 00000000fec90000 (reserved)
BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee10000 (reserved)
BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
kernel direct mapping tables upto 10140000000 @ 8000-e000
No NUMA configuration found
Faking a node at 0000000000000000-0000000140000000
Bootmem setup node 0 0000000000000000-0000000140000000
found SMP MP-table at 000fe710
hm, page 000fe000 reserved twice.
hm, page 000ff000 reserved twice.
hm, page 000f0000 reserved twice.
setting up node 0 0-140000
On node 0 totalpages: 1310720
zone(0): 4096 pages.
zone(1): 1306624 pages.
zone(2): 0 pages.
ACPI: RSDP (v000 DELL                       ) @ 0x00000000000fd6c0
ACPI: RSDT (v001 DELL   PE BKC   00000.00001) @ 0x00000000000fd6d4
ACPI: FADT (v001 DELL   PE BKC   00000.00001) @ 0x00000000000fd708
ACPI: MADT (v001 DELL   PE BKC   00000.00001) @ 0x00000000000fd77c
ACPI: SPCR (v001 DELL   PE BKC   00000.00001) @ 0x00000000000fd824
ACPI: HPET (v001 DELL   PE BKC   00000.00001) @ 0x00000000000fd874
ACPI: DSDT (v001 DELL   PE BKC   00000.00001) @ 0x0000000000000000
ACPI: BIOS passes blacklist
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 15:4 APIC version 16
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x06] enabled)
Processor #6 15:4 APIC version 16
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x01] enabled)
Processor #1 15:4 APIC version 16
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x07] enabled)
Processor #7 15:4 APIC version 16
ACPI: LAPIC_NMI (acpi_id[0x01] polarity[0x1] trigger[0x1] lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] polarity[0x1] trigger[0x1] lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] polarity[0x1] trigger[0x1] lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x04] polarity[0x1] trigger[0x1] lint[0x1])
ACPI: IOAPIC (id[0x08] address[0xfec00000] global_irq_base[0x0])
IOAPIC[0]: Assigned apic_id 8
IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, IRQ 0-23
ACPI: IOAPIC (id[0x09] address[0xfec80000] global_irq_base[0x20])
IOAPIC[1]: Assigned apic_id 9
IOAPIC[1]: apic_id 9, version 32, address 0xfec80000, IRQ 32-55
ACPI: IOAPIC (id[0x0a] address[0xfec83000] global_irq_base[0x40])
IOAPIC[2]: Assigned apic_id 10
IOAPIC[2]: apic_id 10, version 32, address 0xfec83000, IRQ 64-87
ACPI: INT_SRC_OVR (bus[0] irq[0x0] global_irq[0x2] polarity[0x0] trigger[0x0])
ACPI: INT_SRC_OVR (bus[0] irq[0x9] global_irq[0x9] polarity[0x1] trigger[0x3])
acpi: HPET id: 0xffffffff base: 0xfed00000
Using ACPI (MADT) for SMP configuration information
Setting APIC routing to flat
Checking aperture...
Kernel command line: ro root=LABEL=/RHEL3 hda=ide-scsi console=ttyS0,9600 consol
e=tty0
ide_setup: hda=ide-scsi
Initializing CPU#0
time.c: Detected 14.318180 MHz HPET timer.
time.c: Detected 3591.136 MHz TSC timer.
Console: colour VGA+ 80x25
Calibrating delay loop... 7156.53 BogoMIPS
Page-cache hash table entries: 2097152 (order: 12, 16384 KB)
Page-pin hash table entries: 524288 (order: 9, 2048 KB)
Dentry cache hash table entries: 1048576 (order: 12, 16384 KB)
Inode cache hash table entries: 524288 (order: 11, 8192 KB)
Buffer cache hash table entries: 524288 (order: 10, 4096 KB)
Memory: 4004396k/5242880k available (1813k kernel code, 0k reserved, 1878k data,
228k init)
Mount cache hash table entries: 256 (order: 0, 4096 bytes)
CPU: Trace cache: 12K uops<6>CPU: L2 cache: 1024K
CPU: Physical Processor ID: 0
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
POSIX conformance testing by UNIFIX
mtrr: v2.02 (20020716))
CPU: Trace cache: 12K uops<6>CPU: L2 cache: 1024K
CPU: Physical Processor ID: 0
CPU0:                   Intel(R) Xeon(TM) CPU 3.60GHz stepping 01
per-CPU timeslice cutoff: 5118.77 usecs.
task migration cache decay timeout: 10 msecs.
CPU present map: c3
Booting processor 1/6 rip 6000 page 0000010013c40000
Setting warm reset code and vector.
1.
2.
3.
Asserting INIT.
Waiting for send to finish...
+Deasserting INIT.
Waiting for send to finish...
+#startup loops: 2.
Sending STARTUP #1.
After apic_write.
target apic 6000000
after target chip
after eip write
Initializing CPU#1
CPU#1 (phys ID: 6) waiting for CALLOUT
Startup point 1.
Waiting for send to finish...
+Sending STARTUP #2.
After apic_write.
target apic 6000000
after target chip
after eip write
Startup point 1.
Waiting for send to finish...
+After Startup.
Before Callout 1.
After Callout 1.
CALLIN, before setup_local_APIC().
Calibrating delay loop... 7156.53 BogoMIPS
Stack at about 0000010013c41fd4
CPU: Trace cache: 12K uops<6>CPU: L2 cache: 1024K
CPU: Physical Processor ID: 3
Intel machine check reporting enabled on CPU#1.
OK.
CPU1:                   Intel(R) Xeon(TM) CPU 3.60GHz stepping 01
CPU has booted.
Booting processor 2/1 rip 6000 page 000001000c0a6000
Setting warm reset code and vector.
1.
2.
3.
Asserting INIT.
Waiting for send to finish...
+Deasserting INIT.
Waiting for send to finish...
+#startup loops: 2.
Sending STARTUP #1.
After apic_write.
target apic 1000000
after target chip
after eip write
Initializing CPU#2
CPU#2 (phys ID: 1) waiting for CALLOUT
Startup point 1.
Waiting for send to finish...
+Sending STARTUP #2.
After apic_write.
target apic 1000000
after target chip
after eip write
Startup point 1.
Waiting for send to finish...
+After Startup.
Before Callout 2.
After Callout 2.
CALLIN, before setup_local_APIC().
Calibrating delay loop... 7156.53 BogoMIPS
Stack at about 000001000c0a7fd4
CPU: Trace cache: 12K uops<6>CPU: L2 cache: 1024K
CPU: Physical Processor ID: 0
Intel machine check reporting enabled on CPU#2.
OK.
CPU2:                   Intel(R) Xeon(TM) CPU 3.60GHz stepping 01
CPU has booted.
Booting processor 3/7 rip 6000 page 0000010013e4a000
Setting warm reset code and vector.
1.
2.
3.
Asserting INIT.
Waiting for send to finish...
+Deasserting INIT.
Waiting for send to finish...
+#startup loops: 2.
Sending STARTUP #1.
After apic_write.
target apic 7000000
after target chip
after eip write
Initializing CPU#3
CPU#3 (phys ID: 7) waiting for CALLOUT
Startup point 1.
Waiting for send to finish...
+Sending STARTUP #2.
After apic_write.
target apic 7000000
after target chip
after eip write
Startup point 1.
Waiting for send to finish...
+After Startup.
Before Callout 3.
After Callout 3.
CALLIN, before setup_local_APIC().
Calibrating delay loop... 7156.53 BogoMIPS
Stack at about 0000010013e4bfd4
CPU: Trace cache: 12K uops<6>CPU: L2 cache: 1024K
CPU: Physical Processor ID: 3
Intel machine check reporting enabled on CPU#3.
OK.
CPU3:                   Intel(R) Xeon(TM) CPU 3.60GHz stepping 01
CPU has booted.
Before bogomips.
Total of 4 processors activated (28626.12 BogoMIPS).
Before bogocount - setting activated=1.
Boot done.
cpu_sibling_map[0] = 2
cpu_sibling_map[1] = 3
cpu_sibling_map[2] = 0
cpu_sibling_map[3] = 1
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 pin1=2 pin2=0
testing the IO APIC........................................................... done.
Using local APIC timer interrupts.
Detected 12.469 MHz APIC timer.
cpu: 0, clocks: 1995067, slice: 399013
CPU0<T0:1995056,T1:1596032,D:11,S:399013,C:1995067>
cpu: 2, clocks: 1995067, slice: 399013
cpu: 1, clocks: 1995067, slice: 399013
cpu: 3, clocks: 1995067, slice: 399013
CPU1<T0:1995056,T1:1197024,D:6,S:399013,C:1995067>
CPU3<T0:1995056,T1:398992,D:12,S:399013,C:1995067>
CPU2<T0:1995056,T1:798016,D:1,S:399013,C:1995067>
checking TSC synchronization across CPUs: passed.
time.c: Using HPET based timekeeping.
Setting commenced=1, go go go
Starting migration thread for cpu 0
Starting migration thread for cpu 1
Starting migration thread for cpu 2
Starting migration thread for cpu 3
ACPI: Subsystem revision 20030619
PCI: Using configuration type 1
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: System [ACPI] (supports S0 S4 S5)
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Ignoring BAR0-3 of IDE controller 00:1f.1
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11 12)
ACPI: PCI Interrupt Link [LNKB] (IRQs *3 4 5 6 7 10 11 12)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 *7 10 11 12)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 *10 11 12)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 10 *11 12)
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 *10 11 12)
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 10 11 12, disabled)
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 *5 6 7 10 11 12)
ACPI: PCI Interrupt Link [LNKG] enabled at IRQ 5
PCI: No IRQ known for interrupt pin A of device 00:1f.1
PCI: Using ACPI for IRQ routing
Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 4938M
PCI-DMA: Disabling IOMMU.
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
VFS: Disk quotas vdquot_6.5.1
aio_setup: num_physpages = 327680
aio_setup: sizeof(struct page) = 104
Hugetlbfs mounted.
Total HugeTLB memory allocated, 0
IA32 emulation $Id: sys_ia32.c,v 1.56 2003/04/10 10:45:37 ak Exp $
pty: 2048 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS MULTIPORT SHARE_IRQ SER
IAL_PCI SERIAL_ACPI enabled
ttyS0 at 0x03f8 (irq = 4) is a 16550A
register_serial(): autoconfig failed
Real Time Clock Driver v1.10e
NET4: Frame Diverter 0.46
RAMDISK driver initialized: 256 RAM disks of 8192K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH5: IDE controller at PCI slot 00:1f.1
PCI: Device 00:1f.1 not available because of resource collisions
PCI: No IRQ known for interrupt pin A of device 00:1f.1
ICH5: Not fully BIOS configured!
ICH5: chipset revision 2
ICH5: not 100% native mode: will probe irqs later
   ide0: BM-DMA at 0xfc00-0xfc07, BIOS settings: hda:DMA, hdb:pio
   ide1: BM-DMA at 0xfc08-0xfc0f, BIOS settings: hdc:pio, hdd:pio
SiI680: IDE controller at PCI slot 09:06.0
SiI680: chipset revision 2
SiI680: BASE CLOCK == 100
SiI680: 100% native mode on irq 23
   ide2: MMIO-DMA , BIOS settings: hde:pio, hdf:pio
   ide3: MMIO-DMA , BIOS settings: hdg:pio, hdh:pio
hda: HL-DT-STCD-RW/DVD-ROM GCC-4243N, ATAPI CD/DVD-ROM drive
hde: VIRTUALFLOPPY DRIVE Floppy, ATAPI FLOPPY drive
hdf: VIRTUALCDROM DRIVE, ATAPI CD/DVD-ROM drive
hde: set_drive_speed_status: status=0x40 { DriveReady }
hdf: set_drive_speed_status: status=0x40 { DriveReady }
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide2 at 0xffffff0000014c80-0xffffff0000014c87,0xffffff0000014c8a on irq 23
ide-floppy driver 0.99.newide
hde: attached ide-floppy driver.
ide-floppy: Can't get floppy parameters
ide-floppy driver 0.99.newide
md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
Initializing Cryptographic API
NET4: Linux TCP/IP 1.0 for NET4.0
IP: routing cache hash table of 32768 buckets, 512Kbytes
TCP: Hash tables configured (established 262144 bind 65536)
Linux IP multicast router 0.06 plus PIM-SM
Initializing IPsec netlink socket
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem).
SCSI subsystem driver Revision: 1.00
megaraid: v2.10.8.2-RH1 (Release Date: Mon Jul 26 12:15:51 EDT 2004)
megaraid: found 0x1028:0x0013:bus 2:slot 14:func 0
scsi0:Found MegaRAID controller at 0xffffff000001e000, IRQ:46
Kernel panic: pci_map_single: high address but no IOMMU. 

Expected results:
We should detect that it is a intel chipset and the config has IA32E disabled.

Additional info:
I spoke with Ernie. He agreed we could handle this better. He requested this
ticket be put in.

Comment 1 Ernie Petrides 2005-06-24 01:28:01 UTC
Test build with tentative patch in progress.  RPMs should be available on
porkchop later tonight under here:

  /mnt/redhat/beehive/comps/dist/3.0E-scratch/kernel/2.4.21-32.9.EL.ernie.1


Comment 2 Ernie Petrides 2005-06-24 17:32:52 UTC
Patch posted for review on 24-Jun-2005.  Test RPMs on porkchop have been removed.


Comment 4 Ernie Petrides 2005-07-12 01:03:38 UTC
A fix for this problem has just been committed to the RHEL3 U6
patch pool this evening (in kernel version 2.4.21-32.10.EL).


Comment 7 Red Hat Bugzilla 2005-09-28 15:23:50 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2005-663.html



Note You need to log in before you can comment on or make changes to this bug.