|
最近在调一个PCI转SATA的卡,装上驱动后,在SATA硬盘的两个分区内进行文拷贝,发现小文件复制时很正常,但对大文操作时,第一次正常,第二次就出现问题,导致死机。实在不明白是为什么,希望得到高手指点,不胜感激!
siimage3512 pci-sata转接卡,内存:128M。
# free
total used free shared buffers
Mem: 127324 28052 99272 0 20536
Swap: 104 0 104
Total: 127428 28052 99376
# cp /mnt/usb1/fc9.iso /mnt/usb2/fc9.iso.bak //第一次可正常复制
# free
total used free shared buffers
Mem: 127324 124580 2744 0 20544
Swap: 104 0 104
Total: 127428 124580 2848
# rm /mnt/usb2/fc9.iso.bak
# cp /mnt/usb1/fc9.iso /mnt/usb2/fc9.iso.bak
kblockd/0: page allocation failure. order:1, mode:0x21
[<c0023a34>] (dump_stack+0x0/0x14) from [<c0050f34>] (__alloc_pages+0x294/0x2a8)
[<c0050ca0>] (__alloc_pages+0x0/0x2a8) from [<c0025580>] (__dma_alloc+0x1b4/0x40c)
[<c00253cc>] (__dma_alloc+0x0/0x40c) from [<c00257fc>] (dma_alloc_coherent+0x24/0x2c)
[<c00257d8>] (dma_alloc_coherent+0x0/0x2c) from [<c00297ac>] (dma_map_sg+0x214/0x340)
[<c0029598>] (dma_map_sg+0x0/0x340) from [<c01214e0>] (ata_qc_issue+0x1e0/0x364)
[<c0121300>] (ata_qc_issue+0x0/0x364) from [<c0125098>] (ata_scsi_translate+0xac/0xec)
[<c0124fec>] (ata_scsi_translate+0x0/0xec) from [<c012620c>] (ata_scsi_queuecmd+0x15c/0x17c)
[<c01260b0>] (ata_scsi_queuecmd+0x0/0x17c) from [<c0113f28>] (scsi_dispatch_cmd+0x1e8/0x268)
r6 = C6D85000 r5 = C6F881C0 r4 = 80000013
[<c0113d40>] (scsi_dispatch_cmd+0x0/0x268) from [<c0119728>] (scsi_request_fn+0x264/0x30c)
r8 = C6FA9318 r7 = C6F881C0 r6 = C6D85000 r5 = C6FAAB38
r4 = C6ED2000
[<c01194c4>] (scsi_request_fn+0x0/0x30c) from [<c00ce0bc>] (__generic_unplug_device+0x30/0x34)
[<c00ce08c>] (__generic_unplug_device+0x0/0x34) from [<c00ce0dc>] (generic_unplug_device+0x1c/0x2c)
r4 = C4142A20
[<c00ce0c0>] (generic_unplug_device+0x0/0x2c) from [<c00ce128>] (blk_unplug_work+0x14/0x18)
[<c00ce114>] (blk_unplug_work+0x0/0x18) from [<c003f2e0>] (run_workqueue+0xb4/0x108)
[<c003f22c>] (run_workqueue+0x0/0x108) from [<c003f448>] (worker_thread+0x114/0x16c)
r7 = C4142A20 r6 = C6E3DF90 r5 = C4142A28 r4 = C4142A30
[<c003f334>] (worker_thread+0x0/0x16c) from [<c0042c28>] (kthread+0xec/0x11c)
r7 = C003F334 r6 = C4153F0C r5 = C6E3C000 r4 = C4142A20
[<c0042b3c>] (kthread+0x0/0x11c) from [<c0031750>] (do_exit+0x0/0x7b8)
Mem-info:
DMA per-cpu:
cpu 0 hot: high 18, batch 3 used:0
cpu 0 cold: high 6, batch 1 used:0
DMA32 per-cpu:
cpu 0 hot: high 18, batch 3 used:0
cpu 0 cold: high 6, batch 1 used:0
Normal per-cpu: empty
HighMem per-cpu: empty
Free pages: 1760kB (0kB HighMem)
Active:3485 inactive:25347 dirty:2996 writeback:0 unstable:0 free:440 slab:1840 mapped:341 pagetables:28
DMA free:1036kB min:724kB low:904kB high:1084kB active:0kB inactive:58056kB present:65536kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 64 64 64
DMA32 free:724kB min:724kB low:904kB high:1084kB active:13940kB inactive:43332kB present:65536kB pages_scanned:0 all_unreclaimable? no
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: 225*4kB 1*8kB 0*16kB 0*32kB 0*64kB 1*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1036kB
DMA32: 1*4kB 2*8kB 0*16kB 0*32kB 1*64kB 1*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 724kB
Normal: empty
HighMem: empty
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 104kB
Total swap = 104kB
Free swap: 104kB
32768 pages of RAM
636 free pages
1104 reserved pages
1840 slab pages
12658 pages shared
0 pages swap cached
sata_sil 0000:00:04.0: alloc_safe_buffer: could not alloc dma memory (size=8192)
sata_sil 0000:00:04.0: map_single: unable to map unsafe buffer c742e000!
kblockd/0: page allocation failure. order:1, mode:0x21
[<c0023a34>] (dump_stack+0x0/0x14) from [<c0050f34>] (__alloc_pages+0x294/0x2a8)
[<c0050ca0>] (__alloc_pages+0x0/0x2a8) from [<c0025580>] (__dma_alloc+0x1b4/0x40c)
[<c00253cc>] (__dma_alloc+0x0/0x40c) from [<c00257fc>] (dma_alloc_coherent+0x24/0x2c)
[<c00257d8>] (dma_alloc_coherent+0x0/0x2c) from [<c00297ac>] (dma_map_sg+0x214/0x340)
[<c0029598>] (dma_map_sg+0x0/0x340) from [<c01214e0>] (ata_qc_issue+0x1e0/0x364)
[<c0121300>] (ata_qc_issue+0x0/0x364) from [<c0125098>] (ata_scsi_translate+0xac/0xec)
[<c0124fec>] (ata_scsi_translate+0x0/0xec) from [<c012620c>] (ata_scsi_queuecmd+0x15c/0x17c)
[<c01260b0>] (ata_scsi_queuecmd+0x0/0x17c) from [<c0113f28>] (scsi_dispatch_cmd+0x1e8/0x268)
r6 = C6D85000 r5 = C6F881C0 r4 = 80000013
[<c0113d40>] (scsi_dispatch_cmd+0x0/0x268) from [<c0119728>] (scsi_request_fn+0x264/0x30c)
r8 = C6FA9318 r7 = C6F881C0 r6 = C6D85000 r5 = C6FAAB38
r4 = C6ED2000
[<c01194c4>] (scsi_request_fn+0x0/0x30c) from [<c00ce0bc>] (__generic_unplug_device+0x30/0x34)
[<c00ce08c>] (__generic_unplug_device+0x0/0x34) from [<c00ce0dc>] (generic_unplug_device+0x1c/0x2c)
r4 = C4142A20
[<c00ce0c0>] (generic_unplug_device+0x0/0x2c) from [<c00ce128>] (blk_unplug_work+0x14/0x18)
[<c00ce114>] (blk_unplug_work+0x0/0x18) from [<c003f2e0>] (run_workqueue+0xb4/0x108)
[<c003f22c>] (run_workqueue+0x0/0x108) from [<c003f448>] (worker_thread+0x114/0x16c)
r7 = C4142A20 r6 = C6E3DF90 r5 = C4142A28 r4 = C4142A30
[<c003f334>] (worker_thread+0x0/0x16c) from [<c0042c28>] (kthread+0xec/0x11c)
r7 = C003F334 r6 = C4153F0C r5 = C6E3C000 r4 = C4142A20
[<c0042b3c>] (kthread+0x0/0x11c) from [<c0031750>] (do_exit+0x0/0x7b8)
Mem-info:
DMA per-cpu:
cpu 0 hot: high 18, batch 3 used:0
cpu 0 cold: high 6, batch 1 used:0
DMA32 per-cpu:
cpu 0 hot: high 18, batch 3 used:0
cpu 0 cold: high 6, batch 1 used:0
Normal per-cpu: empty
HighMem per-cpu: empty
Free pages: 1760kB (0kB HighMem)
Active:3485 inactive:25347 dirty:2996 writeback:0 unstable:0 free:440 slab:1840 mapped:341 pagetables:28
DMA free:1036kB min:724kB low:904kB high:1084kB active:0kB inactive:58056kB present:65536kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 64 64 64
DMA32 free:724kB min:724kB low:904kB high:1084kB active:13940kB inactive:43332kB present:65536kB pages_scanned:0 all_unreclaimable? no
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: 225*4kB 1*8kB 0*16kB 0*32kB 0*64kB 1*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1036kB
DMA32: 1*4kB 2*8kB 0*16kB 0*32kB 1*64kB 1*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 724kB
Normal: empty
HighMem: empty
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 104kB
Total swap = 104kB
Free swap: 104kB
32768 pages of RAM
636 free pages
1104 reserved pages
1840 slab pages
12658 pages shared
0 pages swap cached
sata_sil 0000:00:04.0: alloc_safe_buffer: could not alloc dma memory (size=8192)
sata_sil 0000:00:04.0: map_single: unable to map unsafe buffer c44ca000!
----------------------------------------
然后死机。。。
说是swap的问题,可第一次正常复制后,swap区好像根本没有用到。第二次却因为分不到交换区,真是奇怪。。。。 |
|