All pastes #440775 Raw Edit

Something

public text v1 · immutable
#440775 ·published 2007-04-15 08:49 UTC
rendered paste body
Hello, I have an IXP420 with 256MiB SDRAM and USB EHCI controller on the PCI bus.  Using kernel 2.6.18-4.  I have serial console and ssh login.  The root fs is mounted to a USB device /dev/sda1.

The USB driver gets a page allocation error (USB EHCI controller on PCI bus), after this occurs.

oom-killer: gfp_mask=0x200d2, order=0
memtest: page allocation failure. order:0, mode:0x200d2
ehci_hcd 0000:00:01.2: alloc_safe_buffer: could not alloc dma memory (size=8192)
ehci_hcd 0000:00:01.2: map_single: unable to map unsafe buffer cff04000!

When doing a "memtest 256m 1", I get a dump of the messages above to the console (serial) and similar messages (different buffer address).

The message below indicates a problem with DMA transfers when using >64MB RAM, and using DMA_BOUNCE:
http://bugzilla.kernel.org/show_bug.cgi?id=7760

I have pasted the complete process here, including all debugging I could imagine (if necessary):
http://pastebin.ca/440753

Please let me know what I can do to help debug this problem.

Here is /proc/iomem (for addresses of devices):
NSLU2:/proc# cat iomem
00000000-0fffffff : System RAM
  0001f000-0020636f : Kernel text
  00208000-002842a7 : Kernel data
48000000-4bffffff : PCI Memory Space
  48000000-48000fff : 0000:00:01.0
    48000000-48000fff : ohci_hcd
  48001000-48001fff : 0000:00:01.1
    48001000-48001fff : ohci_hcd
  48002000-480020ff : 0000:00:01.2
    48002000-480020ff : ehci_hcd
50000000-50ffffff : IXP4XX-Flash.0
  50000000-50ffffff : IXP4XXFlash
60000000-60003fff : ixp4xx_qmgr.0
  60000000-60003fff : ixp_qmgr
c8000000-c8000fff : serial8250.0
  c8000000-c800001f : serial
c8001000-c8001fff : serial8250.0
  c8001000-c800101f : serial
c8007000-c8007fff : ixp4xx_npe.1
  c8007000-c8007fff : NPE-B
c8008000-c8008fff : ixp4xx_npe.2
  c8008000-c8008fff : NPE-C
c8009000-c80091ff : ixp4xx_mac.0
  c8009000-c80091ff : ixp4xx_mac

Here is the complete dump of the error message (from serial console):
NSLU2:/proc# oom-killer: gfp_mask=0x201d2, order=0
Mem-info:
DMA per-cpu:
cpu 0 hot: high 18, batch 3 used:0
cpu 0 cold: high 6, batch 1 used:5
DMA32 per-cpu:
cpu 0 hot: high 90, batch 15 used:0
cpu 0 cold: high 30, batch 7 used:6
Normal per-cpu: empty
HighMem per-cpu: empty
Free pages:        1008kB (0kB HighMem)
Active:33222 inactive:28814 dirty:0 writeback:0 unstable:0 free:252 slab:857 mapped:7 pagetables:216
DMA free:1008kB min:512kB low:640kB high:768kB active:29984kB inactive:31572kB present:65536kB pages_scanned:137512 all_unreclaimable? yes
lowmem_reserve[]: 0 192 192 192
DMA32 free:0kB min:1536kB low:1920kB high:2304kB active:102904kB inactive:83684kB present:196608kB pages_scanned:271001 all_unreclaimable? yes
lowmem_reserve[]: 0 0 0 0
Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
HighMem free:0kB min:128kB low:128kB high:128kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
DMA: 0*4kB 0*8kB 1*16kB 1*32kB 1*64kB 1*128kB 1*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 1008kB
DMA32: 0*4kB 0*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 0kB
Normal: empty
HighMem: empty
Swap cache: add 187052, delete 125513, find 300/490, race 0+0
Free swap  = 5336kB
Total swap = 257024kB
Free swap:         5336kB
65536 pages of RAM
406 free pages
1236 reserved pages
857 slab pages
60 pages shared
61539 pages swap cached

other related links:
http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2003-June/015758.html
http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2004-March/020737.html
http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2005-January/026346.html
http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2006-June/034900.html
http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2007-January/037844.html
http://thread.gmane.org/gmane.comp.misc.nslu2.devel/1486/focus=1488