panic: pmap_mapdev: Couldn't alloc kernel virtual memory on
mpt_attach
Pawel Worach
pawel.worach at telia.com
Thu Dec 9 13:26:25 PST 2004
Booting an IBM x345 box without ACPI (see other problem) generates this
panic during
the scsi controller probe. It sits on the line before the panic message
for about 1-2 minutes.
I got a similar/the same panic with ACPI before the other ACPI problem
showed up.
FreeBSD 6.0-CURRENT #0: Wed Dec 8 17:58:20 CET 2004
root at zero:/usr/obj/usr/src/sys/ZERO
MPTable: <IBM ENSW GEODE SMP >
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Xeon(TM) CPU 2.80GHz (2793.90-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0xf29 Stepping = 9
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,
PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PB
E>
real memory = 1073590272 (1023 MB)
avail memory = 1046147072 (997 MB)
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
cpu0 (BSP): APIC ID: 0
cpu1 (AP): APIC ID: 6
ioapic0: Assuming intbase of 0
ioapic1: Assuming intbase of 16
ioapic2: Assuming intbase of 32
ioapic2 <Version 1.1> irqs 32-47 on motherboard
ioapic1 <Version 1.1> irqs 16-31 on motherboard
ioapic0 <Version 1.1> irqs 0-15 on motherboard
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <MPTable Host-PCI bridge> pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
pci0: <display, VGA> at device 6.0 (no driver attached)
atapci0: <ServerWorks CSB5 UDMA100 controller> port 0x700-0x70f,0x376,0x170-
0x177,0x3f6,0x1f0-0x1f7 at device 15.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
pci0: <serial bus, USB> at device 15.2 (no driver attached)
isab0: <PCI-ISA bridge> at device 15.3 on pci0
isa0: <ISA bus> on isab0
pcib1: <ServerWorks host to PCI bridge> pcibus 1 on motherboard
pci1: <PCI bus> on pcib1
pcib2: <MPTable Host-PCI bridge> pcibus 2 on motherboard
pci2: <PCI bus> on pcib2
fxp0: <Intel 82550 Pro/100 Ethernet> port 0x2500-0x253f mem 0xfbfc0000-
0xfbfdffff,0xfbfff000-0xfbffffff irq 20 at device 3.0 on pci2
miibus0: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> on miibus0
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: Ethernet address: 00:0e:0c:2e:98:88
pcib4: <ServerWorks host to PCI bridge(unknown chipset)> pcibus 4 on motherboard
pci4: <PCI bus> on pcib4
pcib6: <MPTable Host-PCI bridge> pcibus 6 on motherboard
pci6: <PCI bus> on pcib6
em0: <Intel(R) PRO/1000 Network Connection, Version - 1.7.35> port 0x2540-
0x257f mem 0xf9fe0000-0xf9ffffff irq 29 at device 8.0 on pci6
em0: Ethernet address: 00:0d:60:1a:4f:c6
em0: Speed:N/A Duplex:N/A
em1: <Intel(R) PRO/1000 Network Connection, Version - 1.7.35> port 0x2580-
0x25bf mem 0xf9fc0000-0xf9fdffff irq 30 at device 8.1 on pci6
em1: Ethernet address: 00:0d:60:1a:4f:c7
em1: Speed:N/A Duplex:N/A
pcib8: <MPTable Host-PCI bridge> pcibus 8 on motherboard
pci8: <PCI bus> on pcib8
mpt0: <LSILogic 1030 Ultra4 Adapter> port 0x2600-0x26ff mem 0xf7fe0000-
0xf7feffff,0xf7ff0000-0xf7ffffff irq 27 at device 7.0 on pci8
mpt0: [GIANT-LOCKED]
mpt1: <LSILogic 1030 Ultra4 Adapter> port 0x2700-0x27ff mem 0xf7fc0000-
0xf7fcffff,0xf7fd0000-0xf7fdffff irq 28 at device 7.1 on pci8
panic: pmap_mapdev: Couldn't alloc kernel virtual memory
cpuid = 0
KDB: enter: panic
[thread pid 0 tid 0 ]
Stopped at kdb_enter+0x32: leal 0(%esi),%esi
db> tr
Tracing pid 0 tid 0 td 0xc06eda40
kdb_enter(c06a75b3,0,c06b9a7d,c0820a20,0) at kdb_enter+0x32
panic(c06b9a7d,10000,c1f5eb00,0,0) at panic+0x1f3
pmap_mapdev(f7fd0000,10000,c1f5eb88,c1fcea80,c1f5eb84) at pmap_mapdev+0xd2
nexus_activate_resource(c1ee6e00,c1f5eb00,3,14,c1f79980) at nexus_activate_resource+0xa4
pci_alloc_resource(c1f5ed00,c1f5eb00,3,c1fdee90,0,ffffffff,0,2) at pci_alloc_resource+0x597
bus_alloc_resource(c1f5eb00,3,c1fdee90,0,ffffffff) at bus_alloc_resource+0x7d
mpt_attach(c1f5eb00,c1f5eb00,ffffffff,c06a8919,0) at mpt_attach+0x453
device_attach(c1f5eb00,8,c0820bdc,c04b088a,c1f5ed00) at device_attach+0x2c9
bus_generic_attach(c1f5ed00,8,78,c0820bd0,8) at bus_generic_attach+0x18
pci_attach(c1f5ed00,c1f5ed00,ffffffff,c06a8919,0) at pci_attach+0x8a
device_attach(c1f5ed00,c1ee6d80,c0820c4c,c0678171,c1ee6a00) at device_attach+0x2c9
bus_generic_attach(c1ee6a00,c06b6d31,8,c0820c40,8) at bus_generic_attach+0x18
mptable_hostb_attach(c1ee6a00,c1ee6a00,ffffffff,c06a8919,0) at mptable_hostb_attach+0x81
device_attach(c1ee6a00,c1ee6dcc,c0820cbc,c0670bff,c1ee6d80) at device_attach+0x2c9
bus_generic_attach(c1ee6d80,c1f373c0,c06bf6bc,c1ee6d80,c1ee6dcc) at bus_generic_attach+0x18
legacy_attach(c1ee6d80,c1f3904c,c06bf6bc,c06a8919,0) at legacy_attach+0x1f
device_attach(c1ee6d80,c1ee6e00,c0820d18,c067852a,c1ee6e00) at device_attach+0x2c9
bus_generic_attach(c1ee6e00,c1ee6e4c,c0820d54,c051eb59,c1ee6e00) at bus_generic_attach+0x18
nexus_attach(c1ee6e00,c1f3f04c,c06bf6bc,c06a8919,0) at nexus_attach+0x1a
device_attach(c1ee6e00,c06dbb50,c0820d78,c0665758,c1e7f500) at device_attach+0x2c9
root_bus_configure(c1e7f500,c06b95b7,0,c0820d98,c04d06a6) at root_bus_configure+0x19
configure(0,0,c06bc314,81ec00,81e000) at configure+0x28
mi_startup() at mi_startup+0xd6
begin() at begin+0x2c
db>
(kgdb) l *pmap_mapdev+0xd2
0xc067d342 is at /usr/src/sys/i386/i386/pmap.c:2877.
2872 if (pa < KERNLOAD && pa + size <= KERNLOAD)
2873 va = KERNBASE + pa;
2874 else
2875 va = kmem_alloc_nofault(kernel_map, size);
2876 if (!va)
2877 panic("pmap_mapdev: Couldn't alloc kernel virtual
memory");
2878
2879 for (tmpva = va; size > 0; ) {
2880 pmap_kenter(tmpva, pa);
2881 size -= PAGE_SIZE;
(kgdb) l *nexus_activate_resource+0xa4
0xc06788f4 is in nexus_activate_resource (/usr/src/sys/i386/i386/nexus.
c:419).
414
415 paddr = rman_get_start(r);
416 psize = rman_get_size(r);
417
418 poffs = paddr - trunc_page(paddr);
419 vaddr = (caddr_t) pmap_mapdev(paddr-poffs,
psize+poffs) + poffs;
420 }
421 rman_set_virtual(r, vaddr);
422 #ifdef PC98
423 /* PC-98: the type of bus_space_handle_t is the
structure. */
(kgdb) l *pci_alloc_resource+0x597
0xc04b1e87 is in pci_alloc_resource (/usr/src/sys/dev/pci/pci.c:1705).
1700 rman_get_size(rle->res), *rid,
type,
1701 rman_get_start(rle->res));
1702 if ((flags & RF_ACTIVE) &&
1703 bus_generic_activate_resource(dev,
child, type,
1704 *rid, rle->res) != 0)
1705 return NULL;
1706 return (rle->res);
1707 }
1708 }
1709 return (resource_list_alloc(rl, dev, child, type, rid,
(kgdb) l *bus_alloc_resource+0x7d
0xc051c7ed is in bus_alloc_resource (/usr/src/sys/kern/subr_bus.c:3179).
3174 {
3175 if (dev->parent == 0)
3176 return (0);
3177 return (BUS_ALLOC_RESOURCE(dev->parent, dev, type, rid,
start, end,
3178 count, flags));
3179 }
3180
3181 /**
3182 * @brief Wrapper function for BUS_ACTIVATE_RESOURCE().
3183 *
(kgdb) l *mpt_attach+0x453
0xc04aaf93 is in mpt_attach (/usr/src/sys/dev/mpt/mpt_pci.c:309).
304 }
305
306 /* Set up the memory regions */
307 /* Allocate kernel virtual memory for the 9x9's Mem0 region
*/
308 mpt->pci_reg_id = MEM_MAP_REG;
309 mpt->pci_reg = bus_alloc_resource(dev, SYS_RES_MEMORY,
310 &mpt->pci_reg_id, 0, ~0, 0, RF_ACTIVE);
311 if (mpt->pci_reg == NULL) {
312 device_printf(dev, "unable to map any ports\n");
313 goto bad;
(kgdb)
--
Pawel
More information about the freebsd-current
mailing list