Big file copy problem

Matteo Canella canella.fe at gmail.com
Thu Apr 8 18:58:16 EST 2010


Hello,

I found out this strange behavior on my system.

I’m working on an embedded device with a linux kernel 2.6.24.6, we’re
using a modified Ångström distribution with BusyBox v1.13.2



I’m having problem when I try to copy files larger than 52 Megabytes.
The system hangs and I have a kernel panic.



If I create a 52 megs file:

# dd if=/dev/zero of=a.log bs=1M count=52

52+0 records in

52+0 records out



# ls -lh

-rw-r--r- 1 root root 52.0M Apr 7 09:32 a.log



# cp a.log b.log

# ls lh

-rw-r--r- 1 root root 52.0M Apr 7 09:32 a.log

rw-r--r- 1 root root 52.0M Apr 7 09:33 b.log



and this is good.

Now if a try with a larger file:

# dd if=/dev/zero of=a.log bs=1M count=53



And try to copy it:



# cp a.log b.log

[ 2130.744406] Bad page state in process 'cp'

[ 2130.744422] page:c060f2a0 flags:0x00000000 mapping:00000000
mapcount:1 count:0 [ 2130.744433] Trying to fix it up, but a reboot is
needed [ 2130.744443] Backtrace:

[ 2130.764626] Call Trace:

[ 2130.770277] [cd04bae0] [c000803c]  (unreliable) [ 2130.778301]
[cd04bb20] [c0050e44] [ 2130.782140] [cd04bb30] [c0051da8] [
2130.788572] [cd04bba0] [c0051ee0] [ 2130.795085] [cd04bc00]
[c004bd88] [ 2130.798925] [cd04bc30] [c00de4b4] [ 2130.805376]
[cd04bca0] [c004cf54] [ 2130.809206] [cd04bd30] [c004d734] [
2130.815687] [cd04bda0] [c004da20] [ 2130.822253] [cd04bdd0]
[c00dd158] [ 2130.826090] [cd04be30] [c00691a0] [ 2130.832440]
[cd04bef0] [c0069b48] [ 2130.836296] [cd04bf10] [c006a134] [
2130.842845] [cd04bf40] [c000fb0c] [ 2130.849256] --- Exception:
c01<0>Bad page state in process 'cp'

[ 2130.858964] page:c060f3e0 flags:0x00000000 mapping:00000000
mapcount:1 count:0 [ 2130.858982] Trying to fix it up, but a reboot is
needed [ 2130.858991] Backtrace:

[ 2130.878082] Call Trace:

[ 2130.883516] [cd04bae0] [c000803c]  (unreliable) [ 2130.891486]
[cd04bb20] [c0050e44] [ 2130.895321] [cd04bb30] [c0051da8] [
2130.901771] [cd04bba0] [c0051ee0] [ 2130.905611] [cd04bc00]
[c004bd88] [ 2130.912044] [cd04bc30] [c00de4b4] [ 2130.915886]
[cd04bca0] [c004cf54] [ 2130.922466] [cd04bd30] [c004d734] [
2130.928907] [cd04bda0] [c004da20] [ 2130.932751] [cd04bdd0]
[c00dd158] [ 2130.939215] [cd04be30] [c00691a0] [ 2130.945655]
[cd04bef0] [c0069b48] [ 2130.949492] [cd04bf10] [c006a134] [
2130.955967] [cd04bf40] [c000fb0c] [ 2130.962463] --- Exception:
c01<1>Unable to handle kernel paging request for data at address
0x00000004 [ 2130.972445] Faulting instruction address: 0xc004fd78 [
2130.977442] Oops: Kernel access of bad area, sig: 11 [#1] [
2130.982879] PREEMPT MPC5121 ADS [ 2130.986044] NIP: c004fd78 LR:
c0050444 CTR: 00000006

[ 2130.991055] REGS: cd04ba10 TRAP: 0300   Tainted: G    B
(2.6.24.6-svn-458:464M)

[ 2130.998687] MSR: 00001032 <ME,IR,DR>  CR: 22222448  XER: 20000000 [
2131.004836] DAR: 00000004, DSISR: 22000000 [ 2131.008964] TASK =
cfa57b40[1624] 'cp' THREAD: cd04a000 [ 2131.014056] GPR00: c060f418
cd04bac0 cfa57b40 000000dc c060f400 00000010 00000005 00100100 [
2131.022486] GPR08: c060f418 00000000 00000000 00200200 22222448
100be260 00000000 001200d2 [ 2131.030916] GPR16: c02f7848 00000044
00000000 00000000 00089cf1 00200200 00100100 c02f7054 [ 2131.039347]
GPR24: 00024000 cd04a000 c02f7030 00000000 00000000 00000002 00000000
c02f7030 [ 2131.047954] Call Trace:

[ 2131.050414] [cd04bac0] [00004c00]  (unreliable) [ 2131.054980]
[cd04bad0] [10000000] [ 2131.058404] [cd04bb00] [c0050880] [
2131.061830] [cd04bb30] [c0051dd4] [ 2131.065255] [cd04bba0]
[c0051ee0] [ 2131.068679] [cd04bc00] [c004bd88] [ 2131.072104]
[cd04bc30] [c00de4b4] [ 2131.075529] [cd04bca0] [c004cf54] [
2131.078954] [cd04bd30] [c004d734] [ 2131.082379] [cd04bda0]
[c004da20] [ 2131.085804] [cd04bdd0] [c00dd158] [ 2131.089229]
[cd04be30] [c00691a0] [ 2131.092654] [cd04bef0] [c0069b48] [
2131.096078] [cd04bf10] [c006a134] [ 2131.099504] [cd04bf40]
[c000fb0c] [ 2131.102928] --- Exception: c01Instruction dump:

[ 2131.107495] 38210010 4e800020 7d251a14 3ce00010 7d29fa14 3d600020
81090040 60e70100 [ 2131.115309] 616b0200 3888ffe8 8144001c 81240018
<91490004> 912a0000 7d43fa14 9164001c [ 2131.123314] ---[ end trace
ae01d3c49bf93795 ]--- [ 2131.127959] note: cp[1624] exited with
preempt_count 2 [ 2131.133311] BUG: scheduling while atomic:
cp/1624/0x10000003 [ 2131.138978] Call Trace:

[ 2131.141426] [cd04b7f0] [c000803c]  (unreliable) [ 2131.145979]
[cd04b830] [c001abf0] [ 2131.149403] [cd04b840] [c0275744] [
2131.152829] [cd04b880] [c001ae20] [ 2131.156253] [cd04b890]
[c0275d60] [ 2131.159678] [cd04b8a0] [c005b95c] [ 2131.163103]
[cd04b920] [c005f45c] [ 2131.166528] [cd04b950] [c001d848] [
2131.169953] [cd04b960] [c0021a74] [ 2131.173378] [cd04b980]
[c00236f0] [ 2131.176825] [cd04b9c0] [c000dad4] [ 2131.180227]
[cd04b9f0] [c0012540] [ 2131.183653] [cd04ba00] [c000ffac] [
2131.187076] --- Exception: 300[cd04bac0] [00004c00]  (unreliable) [
2131.193225] [cd04bad0] [10000000] [ 2131.196661] [cd04bb00]
[c0050880] [ 2131.200074] [cd04bb30] [c0051dd4] [ 2131.203501]
[cd04bba0] [c0051ee0] [ 2131.206924] [cd04bc00] [c004bd88] [
2131.210349] [cd04bc30] [c00de4b4] [ 2131.213774] [cd04bca0]
[c004cf54] [ 2131.217199] [cd04bd30] [c004d734] [ 2131.220624]
[cd04bda0] [c004da20] [ 2131.224048] [cd04bdd0] [c00dd158] [
2131.227474] [cd04be30] [c00691a0] [ 2131.230899] [cd04bef0]
[c0069b48] [ 2131.234324] [cd04bf10] [c006a134] [ 2131.237748]
[cd04bf40] [c000fb0c] [ 2131.241173] --- Exception: c01<1>Unable to
handle kernel paging request for data at address 0x00000004 [
2131.251024] Faulting instruction address: 0xc004fd78 [ 2131.256035]
Oops: Kernel access of bad area, sig: 11 [#2] [ 2131.261470] PREEMPT
MPC5121 ADS [ 2131.264635] NIP: c004fd78 LR: c0050444 CTR: 00000006

[ 2131.269646] REGS: cfbb7be0 TRAP: 0300   Tainted: G    B D
(2.6.24.6-svn-458:464M)

[ 2131.277279] MSR: 00001032 <ME,IR,DR>  CR: 22222448  XER: 20000000 [
2131.283427] DAR: 00000004, DSISR: 22000000 [ 2131.287556] TASK =
cfb123c0[410] 'watchdog' THREAD: cfbb6000 [ 2131.293086] GPR00:
c060f418 cfbb7c90 cfb123c0 000000dc c060f400 00000010 00000005
00100100 [ 2131.301516] GPR08: c060f418 00000000 00000000 00200200
22228448 10029a9c 00000000 001200d2 [ 2131.309947] GPR16: c02f7848
00000044 00000000 00000000 00089cf1 00200200 00100100 c02f7054 [
2131.318378] GPR24: 00024000 cfbb6000 c02f7030 00000000 00000000
00000002 00000000 c02f7030 [ 2131.326984] Call Trace:

[ 2131.329444] [cfbb7c90] [c0084610]  (unreliable) [ 2131.334010]
[cfbb7ca0] [cf9fb680] [ 2131.337435] [cfbb7cd0] [c0050880] [
2131.340860] [cfbb7d00] [c0051cc8] [ 2131.344284] [cfbb7d70]
[c0051ee0] [ 2131.347710] [cfbb7dd0] [c005ab60] [ 2131.351135]
[cfbb7e10] [c00128e8] [ 2131.354559] [cfbb7f40] [c000ff3c] [
2131.357984] --- Exception: 301Instruction dump:

[ 2131.362550] 38210010 4e800020 7d251a14 3ce00010 7d29fa14 3d600020
81090040 60e70100 [ 2131.370366] 616b0200 3888ffe8 8144001c 81240018
<91490004> 912a0000 7d43fa14 9164001c [ 2131.378361] ---[ end trace
ae01d3c49bf93795 ]--- [ 2131.383014] note: watchdog[410] exited with
preempt_count 2 [ 2131.388650] Eeek! page_mapcount(page) went
negative! (-1)

[ 2131.394077]   page pfn = 30f

[ 2131.396975]   page->flags = 4

[ 2131.399960]   page->count = ffffffff

[ 2131.403562]   page->mapping = 00000000

[ 2131.407357] ------------[ cut here ]------------ [ 2131.411993]
Kernel BUG at c0062ac8 [verbose debug info unavailable] [ 2131.418320]
Oops: Exception in kernel mode, sig: 5 [#3] [ 2131.423583] PREEMPT
MPC5121 ADS [ 2131.426748] NIP: c0062ac8 LR: c0062ac8 CTR: c015564c

[ 2131.431755] REGS: cfbb79b0 TRAP: 0700   Tainted: G    B D
(2.6.24.6-svn-458:464M)

[ 2131.439391] MSR: 00021032 <ME,IR,DR>  CR: 24224422  XER: 00000000 [
2131.445540] TASK = cfb123c0[410] 'watchdog' THREAD: cfbb6000 [
2131.451070] GPR00: c0062ac8 cfbb7a60 cfb123c0 0000002d 00005159
ffffffff c0318eb8 00004000 [ 2131.459502] GPR08: d1010b90 00000000
00005159 d1010b00 84224422 10029a9c 00103000 cfaa9000 [ 2131.467932]
GPR16: c0310000 cfb0b000 cfaa9000 cfb20340 c0315584 00000000 ffffffff
00000000 [ 2131.476362] GPR24: 00103000 0030f305 00007000 cfbb6000
00101000 fffffffd c05091e0 c05091e0 [ 2131.484968] Call Trace:

[ 2131.487428] [cfbb7a60] [c0062ac8]  (unreliable) [ 2131.491995]
[cfbb7a70] [c005b630] [ 2131.495420] [cfbb7af0] [c005f45c] [
2131.498845] [cfbb7b20] [c001d848]



And it continues to reset and print kernel oops.

This happens in all the partitions we have (an UBI partition on a NAND
flash device, on an USB stick FAT formatted or on the NFS filesistem).


Anyone can help me on this problem?
Are there any known issues?

Thank you very much.

 Matteo Canella


More information about the Linuxppc-dev mailing list